Разработчик jlrouzies-fr выпустил крупное обновление утилиты DLSS5-Feeder под номером 0.4.0, открывшее доступ к нейрорендерингу DLSS 5 для проектов эпохи DirectX 9. Ранее технология нового поколения от NVIDIA считалась принципиально несовместимой со старыми играми из-за архитектурных ограничений API и отсутствия встроенной поддержки временного сглаживания. Теперь продвинутая нейросетевая реконструкция изображения работает даже в культовых хитах двухтысячных годов.
DLSS5-Feeder — мод на DLSS 5 в игры без встроенной поддержки
Напрямую внедрить современные алгоритмы в нативный рендер DirectX 9 технически невозможно. В среде Direct3D 9 инжектор ReShade ограничен устаревшей моделью шейдеров Shader Model 3, из-за чего необходимые для работы DLSS алгоритмы оптического потока и векторов движения попросту не могут скомпилироваться. Кроме того, старый графический интерфейс лишен поддержки разделяемых системных дескрипторов и аппаратных барьеров синхронизации, без которых невозможна быстрая передача кадров нейросети.
Для обхода фундаментальных ограничений моддеры задействовали связку с транслятором dgVoodoo2, который перехватывает инструкции DirectX 9 и преобразует их в вызовы Direct3D 11 уровня Feature Level 11.0. Благодаря этому игра получает доступ к шейдерам Shader Model 5 и современным текстурным буферам. Сам ReShade в такой конфигурации устанавливается под именем системной библиотеки dxgi.dll, перехватывая уже преобразованный графический конвейер.
Дополнительную сложность создала разрядность исполняемых файлов, так как почти все классические игры создавались под 32-битные системы, тогда как библиотеки NVIDIA NGX и надстройки DLSS 5 существуют строго в 64-битном виде. Чтобы связать несовместимые архитектуры, автор разработал изолированный фоновый процесс dlss5-feed-host64. Встроенный в игру 32-битный модуль пересылает буфер глубины и кадры в 64-битный хост через именованные каналы видеопамяти напрямую на уровне драйвера, исключая перегон тяжелых массивов данных через оперативную память и процессор.
Настройка связки требует от игроков строгого соблюдения неочевидных параметров в конфигурационном файле dgVoodoo.conf. По умолчанию параметр сквозной передачи вызовов включен и блокирует работу транслятора, поэтому его необходимо принудительно отключать вручную. Также пользователям приходится аккуратно выставлять лимит виртуальной видеопамяти: стандартных 256 МБ недостаточно и игра вылетает с критической ошибкой, а значение 2 ГБ приводит к переполнению 32-битного знакового целого числа в движке, поэтому единственным стабильным вариантом остается ровно 1 ГБ.
Работоспособность метода уже подтвердили на практике в ролевой игре Fable Anniversary, где удалось добиться стабильных 60 кадров в секунду в разрешении 1440p с активным нейрорендерингом. При этом проект работает исключительно в нативном режиме DLAA, превращая нетребовательную классику в тяжелое испытание для современных видеокарт уровня GeForce RTX 5000. Из-за примерного расчета векторов движения в динамике сохраняются легкие шлейфы за тонкими объектами, а элементы двухмерного интерфейса подвергаются замыливанию вместе с трехмерной сценой.
