DXVK 2.7: Подобрена поддръжка, оптимизирано управление на дескриптори и дефрагментиране

DXVK-1

Преди няколко дни беше обявено Издаване на новата версия на DXVK 2.7, който въвежда подобрения за Vulkan както в разширенията, така и в драйверите, както и подобрения в управлението на VRAM, корекции на съвместимостта и други.

За тези, които не знаят за DXVK, трябва да знаят, че може да се използва за стартиране на 3D приложения и игри на Linux с помощта на Wine, действайки като по-високопроизводителна алтернатива на базираната на Wine имплементация на Direct3D 11, работеща върху OpenGL. В някои игри производителността на пакета Wine + DXVK се различава от версията за Windows само с 10–20%, докато при използване на базираната на OpenGL имплементация на Direct3D 11 производителността намалява по-значително.

Основни нови функции на DXVK 2.7

Една от ключовите промени в DXVK 2.7 е задаване на разширението VK_KHR_maintenance5 като задължително изискване. Това означава, че Драйверите трябва да поддържат напълно Vulkan 1.3. Като резултат, DXVK вече няма да работи с по-стари версии на драйвери. Mesa 25.0 е необходима за графични процесори AMD и Intel (RADV и ANV) или драйвери на NVIDIA 550.54.14.

Тази промяна Това засяга особено потребителите на Windows с графични карти AMD Polaris и Vega., които вече не се поддържат официално от AMD. Считано от тази версия, DXVK приема, че платформата Windows с AMD драйвери се използва на ваш собствен риск.

Друга нова функция в DXVK 2.7 е модернизация на системата за дескриптор на засенчванеВключено с AMD или NVIDIA GPU, DXVK активира разширението VK_EXT_descriptor_buffer по подразбиране, технология, която драстично намалява работата, която процесорът трябва да извърши за управление на графичните ресурси. Това подобрение се превръща в осезаемо подобрение на производителността в взискателните игри, по-специално в системи, където процесорът е бил пречкатаЗа тези, които предпочитат да деактивират тази оптимизация, е включена опцията dxvk.enableDescriptorBuffer.

DXVK 2.7 Освен това подобрява използването на паметта, на Intel карти В Battlemage и Lunar Lake е активирана функция за дефрагментиране на паметта. Това намалява пиковото използване на RAM паметта по време на продължителни игрови сесии, връщайки повече ресурси на операционната система. Тази функция може да се контролира с помощта на опцията dxvk.enableMemoryDefrag.

Освен това, на специализирани графични процесори, DXVK вече ще прилага максимално ограничението на VRAM, отчетено от драйвера, което позволява по-ефективно освобождаване на неизползвани ресурси. Това води до по-плавен геймплей за игри като тези, разработени с Unity, особено на машини с ограничена видео памет.

Почистване на кода и целенасочени подобрения

Като част от усилията за поддържане на по-чист и по-модерен код, остарелите функции са премахнати като например опцията d3d9.forceSwapchainMSAA и кеша на съществуващите данни, който стана остарял след приемането на разширението VK_EXT_graphics_pipeline_library.

също Включени са специфични оптимизации за подобряване на стабилността и производителността. на игри, базирани на Source engine, както и по-безопасна инициализация на шейдъри в Direct3D 11 благодарение на автоматичното запълване на буфери и променливи.

Относно корекциите на грешки и подобренията:

  • Добавена е поддръжка за планарни изгледи на видео изход.
  • Шейдърите на D3D11 вече ще инициализират с нула всички променливи и ще групират споделена памет по подразбиране, за да предотвратят грешки в играта, които причиняват неопределено поведение.
  • Оптимизирано е използването на StretchRect в D3D9 в определени случаи на разрешаване на множество семплирани данни, срещани в Source Engine.
  • Поправено е невалидно използване на Vulkan в Modulus и евентуално други игри на Unity Engine, които използват видео API D3D11.
  • Внедрена е поддръжка за интерфейса ID3DDestructionNotifier.
  • Устройствата Vulkan, които нямат необходимите функции за работа с DXVK, вече няма да бъдат изброявани като DXGI/D3D9 адаптери.
  • Сега, опитът за компилиране на DXVK в MinGW среда с активиран AVX ще доведе до грешка по време на компилация.

Как да добавя поддръжка за DXVK?

Инсталирането на DXVK на Linux може да варира леко в зависимост от дистрибуцията и дали използвате Wine, Proton или Lutris, но ето ръководство за най-често срещаните случаи.

Инсталиране на DXVK с Wine

Можете да изтеглите DXVK от официалната му страница в GitHub. Изтеглете най-новия .tar.gz файл (в този случай версия 2.7).

wget https://github.com/doitsujin/dxvk/releases/download/v2.7/dxvk-2.7.tar.gz

След като приключихме с изтеглянето сега, ще разархивираме новополучения пакет, това може да стане от вашата работна среда или от самия терминал, като изпълните следната команда:

tar -xvf dxvk-2.7.tar.gz cd dxvk-2.7.tar.gz

Инсталирайте DXVK на вашия Wine префикс

Ако приемем, че използвате префикс Wine в ~/.wine:

експортиране на WINEPREFIX=~/.wine ./setup_dxvk.sh инсталиране

Това ще копира необходимите DLL файлове (d3d9.dll, d3d10.dll, d3d11.dll, dxgi.dll) в папките system32 и syswow64 във вашия префикс.

Монтаж с Lutris (по-лесен)

Отворете Lutris и изберете вашата игра:

  1. Щракнете с десния бутон > Конфигуриране > раздел Опции за бегач.
  2. Поставете отметка в квадратчето „Активиране на DXVK“.
  3. Можете да изберете предпочитаната от вас версия на DXVK оттам.
  4. Запазете промените и стартирайте играта.

Инсталиране в Steam (с помощта на Proton)

Ако използвате Steam Play (Proton):

  1. Активирайте Steam Play за всички заглавия на:
  2. Steam > Настройки > Съвместимост > Принудително възпроизвеждане в Steam.
  3. Можете да замените версията на DXVK, включена в Proton, с персонализирана (не се препоръчва, освен ако не знаете какво правите).
  4. Или просто оставете Proton да управлява DXVK автоматично – това е вградено по подразбиране.

Проверете дали DXVK работи

За да проверите дали DXVK е активен, можете да стартирате игра и да проверите папката, в която се изпълнява. Ако видите файлове като d3d11.log или dxgi.log, DXVK работи правилно.

Можете също да използвате инструменти като DXVK HUD, за да показвате статистика на екрана:

експортиране на DXVK_HUD=1

Задайте тази променлива, преди да стартирате играта с Wine или Lutris.


Добавяне като предпочитан източник