Dragon Age: Origins и DLSS 5 на RTX 40xx

Решил протестировать генератор нейрослопа в максимально некомфортных условиях: офицально не поддерживаемый GPU + древняя 32-битная игра на DirectX 9, разрешение 4K без апскейлера.
Как вы уже знаете, хотя DLSS 5 официально поддерживается только на RTX 50xx, но сами веса нейронки хранятся в fp8, что позволяет запускать ее на более старом железе. А моя старушка 4070 ti имеет больше тензорных ядер, чем младшие и средние карты 50xx, значит теоретически должна потянуть.
Основная вопрос был - можно ли это все добро впихнуть в старые 32-х битные игры? Ведь все библиотеки dlss скомпилированы под 64 бита.
Как оказалось, этот вопрос тоже уже решен, хотя и довольно наркоманским способом - запуском DLSS внутри отдельного 64-битного процесса, который делает свое черное дело, а потом отдает картинку обратно в игру.
В итоге я нашел почти готовое решение в виде одного архива, где уже есть reshade, генератор motion-векторов (старые игры ничего такого не умеют сами), renodx-dlss5 addon + обертка dgVoodoo2, которая транслирует вызовы DX9 в DX11 или Vulkan. Я скачал этот архив и просто заменил в нем nvngx_dlssnr.dll на пропатченный для RTX 40xx.
В принципе, это можно собрать и самостоятельно:
- Reshade с поддержкой всех аддонов (при установке убрать все галочки, которые только можно убрать)
- dgVoodoo2 (что бы вызовы DirectX9 транслировались в DirectX11 или Vulkan) - https://github.com/dege-diosg/dgVoodoo2
- DLSS5 Feeder (https://github.com/jlrouzies-fr/DLSS5-Feeder)
- ReshadeMotionEstimation (https://github.com/JakobPCoder/ReshadeMotionEstimation)
- RenoDX DLSS5 + файлы DLLS 5 + патченый nvngx_dlssnr.dll (все в дискорде RenoDX)
Учтите, что Windows Defender может определять dgVoodoo2 как вирус (на гитхабе об этом написано отдельно).
После запуска игры нажимаем кнопку Home, пропускаем туториал, ставим галочки на пунктах DLSS 5 Feed и DRME (опционально), после чего в настройках DLSS 5 Feed нужно его отдельно включить.
Получилось потерять много FPS: 144 -> 32 на разрешении 4K и 180 -> 62 на разрешении 2К. Это и не удивительно, потому что апскейлер до сих пор не прикрутили, поэтому нейрорендеринг вынужден работать в полном разрешении.
Включение любого варианта motion estimation убивает FPS еще больше, заметных улучшений картинки при этом нет.
Первый скрин везде без dlss, последующие - dlss5 с разными настройками/пресетами.
Игрался с настройками и приличного результата не получил. Технология имеет два состояния: эффект почти не заметен или явно видимый нейрослоп. Не впечатляет, а в динамике картинка становится хуже - тени и свет постоянно немного плывут из-за чего картинка выглядит стремно.
Если уменьшить разрешение до 2К, то получаем от 44 до 62 фпс.
Лично я с этим играть не буду, отсутствие motion-векторов от самого движка игры дает кучу артефактов в динамике, а синтетические motion-вектора через шейдер мало того, что убивают fps, так и все равно не позволяют получить качественное изображение.
Разумеется, если прикрутить апскейлер, то можно получить нормальный фпс даже на 4K, но мне это уже не интересно.
А для себе делайте выводы сами.