Популярное
Свежее
Моя лента
Сообщения
Рейтинг
Пополнить Steam
Низкая комиссия
Темы
Гайды
Игры
Офтоп
Вопросы
Кино и сериалы
Ночной музпостинг
Творчество
Музыка
Видео
Инди
Показать все
DTF
О проекте
Правила
Реклама
Приложения
Аккаунт удален
Гайды
26.08.2022

Статья удалена

Статья удалена

1. Зачем это нужно?

Предположим у вас есть любимая игра, которая со временем начинает работать все хуже и хуже на новых OC, видеокартах, процессорах, так как изначально она сделана на API DirectX 9/10 с расчетом на слабое железо, а разработчики игры уже давно отпраздновали ее десятилетие и вспоминают о ней исключительно в памятные дни, и именно для таких случаев и подойдет смена API на более новый, с ручными изменениями настроек.

Обратная ситуация, игра вышла относительно недавно, но ваше железо еле-еле тянет ее большие и красивые локации (привет Александрии из AC: Origins), или же просто даже на мощном железе DirectX ведет себя нестабильно, здесь тоже может помочь Vulkan. Сразу скажу, смена API может привести к отличному результату в одной игре, но может не оправдать ваши надежды в другой, так как этот процесс крайне непредсказуем. Однако, процесс установки и деинсталляции настолько прост, что внесенные изменения можно полностью отменить за 5 минут, не переживая за потраченное время. Я лишь кратко покажу обычную установку, базовые команды и один небольшой тест.(в будущем добавлю еще несколько игровых процессов)

Цель поста самая простая, показать нечто странное, но способное преподнести неплохой результат в некоторых играх, а не провести полномасштабное сравнение DirectX и прослойки на Vulkan.

2. Коротко о том, что представляет из себя замена DirectX на Vulkan.

Говоря простым языком, это прослойка предоставляющая реализацию DXGI (DirectX Graphics Infrastructure), Direct3D 9/10/11, работающую через трансляцию вызовов в API Vulkan. Изначально это было придумано для использования на Linux, для запуска 3D-приложений и игр при помощи Wine, выступая в качестве более высокопроизводительной альтернативы встроенных в Wine реализаций Direct3D 9/10/11, работающих поверх OpenGL.Данной прослойкой активно занимается пользователь doitsujin, который постоянно выпускает разного рода патчи, повышающие стабильность при использовании DXVK.

github.com
Releases · doitsujin/dxvk

Для Windows 10 мы будем использовать DXVK with Async patch, сделанную Sporif.

github.com
Releases · Sporif/dxvk-async

3. Установка и настройка

В первую очередь скачиваем с github нужные нам файлы.

github.com
Releases · Sporif/dxvk-async
Нажимаем на <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fgithub.com%2FSporif%2Fdxvk-async%2Freleases%2Fdownload%2F1.10.3%2Fdxvk-async-1.10.3.tar.gz&postId=1328572" rel="nofollow noreferrer noopener" target="_blank">dxvk-async-1.10.3.tar.gz</a>, после чего должна начаться загрузка.
Нажимаем на dxvk-async-1.10.3.tar.gz, после чего должна начаться загрузка.
Далее извлекаем содержимое в любое удобное место и переходим в dxvk-async-1.10.3\x64, там находятся нужные для установки файлы. (для более старых игр может потребоваться x32)
Далее извлекаем содержимое в любое удобное место и переходим в dxvk-async-1.10.3\x64, там находятся нужные для установки файлы. (для более старых игр может потребоваться x32)

Теперь определяем какой изначально API DirectX использует нужная вам игра. Обычно версия DirectX указана в системных требованиях, но можно посмотреть через MSI Afterburner во время игрового процесса. (Советую заранее скачать и настроить на отображение нужных показателей, для того, чтобы понять приносит ли пользу смена API)

Изначальный API в Batman: Arkham Knight Direct X11
Изначальный API в Batman: Arkham Knight Direct X11

Далее мы открываем путь установки игры, и вставляем туда все файлы d3d и dxgi, так как это просто быстрее. (для некоторых игр необходимы файлы из папки x32)

Статья удалена

После этого создаем файл dxvk.conf.txt для более тонкой настройки, в которую можно добавить команды для API. В файл вписываем две строчки, которые полезны практически в любой игре:

d3d11.ignoreGraphicsBarriers = True

d3d11.relaxedBarriers = True

dxvk.enableAsync = true

При желании дополнительно (может вызвать нестабильность): d3d11.cachedDynamicResources = a

dxvk.numCompilerThreads = 0

Для некоторых игр, особенно на DirectX 9 стоит дополнительно увеличить доступную память командой, а иногда наоборот ограничить, это может помочь решить проблемы, связанные с потоковой передачей текстур в 64-разрядных играх, которые не поддерживают 4096 МБ или более видеопамяти

dxgi.maxDeviceMemory = *число*

dxgi.maxSharedMemory = *число*

Весь список команд большой и находится здесь:

github.com
dxvk/dxvk.conf at master · doitsujin/dxvk
Далее сохраняете файл и убираете .txt, после чего вставляете в папку установки с игрой. Если подобная инструкция для вас непонятна, вы всегда можете найти более подробное объяснение на YouTube.
Далее сохраняете файл и убираете .txt, после чего вставляете в папку установки с игрой. Если подобная инструкция для вас непонятна, вы всегда можете найти более подробное объяснение на YouTube.
Краткое видео пользователя PhazeDelta, который показывает шаги установки

4. Видеотест и вывод

Как я ранее упоминал, результат может быть крайне непредсказуем, и если изначально с игрой у вас что-то не получится, то стоит попробовать использовать команды (ссылка выше), кроме того, в первые минуты вашего игрового процесса, игра будет активно записывать данные в кэш, могут возникнуть сильные статтеры, но после этого в последующих игровых сессиях подобное происходить не будет (если игра адаптировалась под Vulkan), это обычное явление для данной прослойки. Записанный тест пока будет только в AC: Origins, так как больше всего именно в этой игре смена API на Vulkan приятно удивила.

Большинство игр, которые рассчитаны на быстрое передвижение (Mafia DE, Batman Arkham Knight и другие) могут наоборот ухудшить игровой процесс, так как необходимо создать достаточное количество кэша, и даже после этого могут возникать подлагивания, но попробовать никто не запрещает, в этих играх результат оказался лучше у DirectX.

Видеокарта: RX 6600XT Процессор: Ryzen 5 5600

Assassin's creed: Origins

DirectX 11

Игровой процесс записан в Александрии, частота кадров падает до 60, при этом видеокарта нагружается ниже 90% из-за неравномерной и чрезмерной нагрузки на процессор, что в свою очередь влияет на падение производительности.

VULKAN

Игровой процесс все также в Александрии, уже на API Vulkan. Как можно заметить, при тех же самых настройках графики, частота кадров выше, а загрузка видеокарты около 90-95%, благодаря снижению нагрузки на ЦП.Ухудшения качества изображения я не заметил, естественно некоторые процессы происходят иначе, чем на DirectX 11, но моему глазу это заметно не было.

Если у вас нет никаких проблем с DirectX, то нет никакого смысла использовать Vulkan, который реализован не разработчиком игры, однако если есть какие-то проблемы с производительностью, то в некоторых случаях подобная смена API имеет смысл.