Моды для Elden Ring "Запуск игры на DirectX11"

directx11_fix_by_tuffee88

Описание автора (перевод гугл) :

Совершенно наивное приложение, использующее переадресацию прокси/dll, чтобы попытаться запустить Elden Ring на оборудовании DX12 с уровнем функций 11_0 (например, графические процессоры Nvidia Kepler)

Честно говоря, я просто очень разозлился из-за того, что Elden Ring вылетает со знаменитым WSOD (белым экраном смерти) на моем графическом процессоре (NVIDIA Tesla K40 с использованием закадрового рендеринга),

Я никогда не думал, что у меня действительно что-то получится :-)

Итак, вот оно:

Некоторая отладка показала, что в моем случае белый экран смерти вызван неправильной инициализацией DX12 (и не удосужился проверить код возврата...)

Чтобы быть более конкретным: кажется, что игра вызывает D3D12CreateDevice с минимальным требуемым уровнем функций D3D_FEATURE_LEVEL_12, который больше, чем максимальный. поддерживаемый уровень функций на графических процессорах NVIDIA Kepler (11_0)

После этого все быстро идет вниз (главным образом потому, что игра, похоже, не выполняет правильную обработку ошибок)...

Таким образом, этот проект пытается сделать следующее, чтобы, возможно, заставить elden ring работать на вашем старом неподдерживаемом графическом процессоре D3D_FEATURE_LEVEL_11_0:

предоставить «поддельную» d3d12.dll, которая будет загружена вместо настоящей d3d12.dll с помощью elden ring (при размещении в папке с исполняемым файлом игры elden ring)

"подделка" d3d12.

dll просто перенаправляет все функции, кроме одной, в исходную dll d3d12 (которая должна быть помещена в ту же папку и переименована в d3d12_original.dll)

«поддельная» d3d12.dll обеспечивает другую реализацию D3D12CreateDevice (вызов функции, который не работает),

который просто вызывает исходную функцию D3D12CreateDevice с теми же параметрами, но для D3D_FEATURE_LEVEL установлено значение 11_0 вместо 12_0.

-> Обычно это приводит к успешной инициализации D3D12 и, к моему полному удивлению, попаданию в игру на моем графическом процессоре Nvidia Kepler.

-> Весь проект, скорее всего, не является хорошим примером того, как сделать что-то подобное,

так что используйте с осторожностью! Я просто подумал, что это может быть полезно для других людей, застрявших на графических процессорах серии Nvidia GTX 6xx или 7xx, никаких гарантий или чего-то еще!

В архиве уже есть оба нужных для запуска файла, которые нужно просто скопировать в корневой каталог игры, но на всякий случай, установка от автора:

Как это попробовать?

Возьмите настоящие d3d12.dll и d3d12core.dll из папки windows/system32, поместите обе dll в папку с игрой elden ring (где eldenring.

exe) И ПЕРЕИМЕНОВАТЬ настоящую d3d12.dll в d3d12_original.dll (ту, что находится в папке с игрой, а НЕ dll в windows/system32)

Поместите новую "поддельную" d3d12.dll в папку с игрой elden ring (там, где находится eldenring.exe)

Попробуйте запустить elden ring, теперь вы должны пройти мимо белого экрана :-)

Автор: tuffee88

6 мар. 2022 г.
Теги:

один комментарий

  1. -

    Эх где бы теперь взять такой же фаил только на 12 директ..

Оставьте ответ