Първоначално създаден за Linux, DXVK може също да ви помогне да "поправите" стари игри на Windows и да повишите тяхната производителност. Ето защо и как.

Direct3D е част от Windows игрите от десетилетия, обединявайки сегментирания компютърен хардуерен пейзаж под един 3D-активиран чадър. Въпреки това, приложение, създадено основно за Linux, DXVK, понякога е много по-добър вариант за използване, дори ако сте на Windows.

Искате ли по-добра съвместимост и, което е по-важно, производителност за вашите приложения и игри? След това трябва да изпробвате DXVK.

Проблемът с DirectX в Windows

Microsoft създаде DirectX като "унифицирано решение", което помогна на програмистите да използват хардуерните възможности на всеки компютър. Вместо да пишат различен код за всяка хардуерна част, разработчиците на софтуер биха могли да се "насочат" към библиотеките DirectDraw (2D графика), Direct3D (хардуерно ускорено 3D) и DirectSound (аудио) на DirectX. След това оставете решението на Microsoft да "преведе" техния код на "родния език" на всяка хардуерна част.

instagram viewer

DirectX се превърна в незаменима основна технология в Windows и оттогава се развива. Има обаче малка уловка с Direct3D: той не е 100% обратно съвместим.

Microsoft и създателите на GPU, които поддържат Direct3D API (както в "Nvidia, AMD и Intel"), са от време на време отпада поддръжката на функции, въведени в предишни версии на Direct3D, но които никога не са придобили сцепление. По този начин някои по-стари игри може да не успеят да работят правилно на модерен GPU с най-новите версии на Direct3D.

Какво е Vulkan?

Предполага се, че е по-отворен отговор на Direct3D със затворен код на Microsoft, OpenGL е мутирала версия на 3D графичните библиотеки, използвани в графичните работни станции на Silicon Graphics.

OpenGL обаче винаги изоставаше по отношение на функциите в сравнение с Direct3D на Microsoft. В крайна сметка изглеждаше по-рационално да се рестартира усилието. Ето защо е създаден Vulkan, известен още като "OpenGL Next", предлагащ по-добра производителност и повишен контрол върху хардуера.

Подобно на OpenGL и за разлика от обвързания с Windows Direct3D на Microsoft, Vulkan е "отворен" и междуплатформен. Можете да използвате Vulkan на Windows, Linux и дори на смартфони. Въпреки че не се поддържа първоначално на Mac, може да се използва там чрез MoltenVK.

Това беше кратката версия. За да научите повече за Vulkan, вижте нашата статия за какво представляват библиотеките за време на изпълнение на Vulkan в Windows.

Какво е DXVK?

DXVK е обвивка, "превеждаща" Direct3D във Vulkan. В човешкия свят преводачът може да бъде посредник между говорещия английски и японски език, като им позволява да се разбират. По подобен начин „обвивки“ или „слоеве за превод“ могат да „вземат“ код, написан за конкретен хардуер, платформа или API, и да го преведат, за да работи на друг.

DXVK първоначално е разработен за Linux с поддръжка от Valve, който също го използва в SteamOS и Steam Deck. Можете да научите повече за това в нашата статия, където видяхме какво е Steam Proton и как стартира Windows игри на Steam Deck.

Защо трябва да използвате DXVK в Windows?

Ако дадена игра вече работи добре на вашия хардуер, няма причина да използвате DXVK. Но някои игри, написани за по-стари версии на DirectX, не работят "правилно" (ако изобщо) на по-нови версии на DirectX и модерен хардуер.

Чрез „превеждането“ на стария и бъги Direct3D код в по-модерния Vulkan API, има минимално влияние върху производителността (ако има такава). В същото време проблемни игри със счупена графика или липсващи функции може отново да станат напълно годни за игра.

Тъй като Vulkan е наравно с Direct3D 12, и двете са много по-добри (и по-бързи) от по-старите версии на Direct3D (както видяхме, когато сравнихме DirectX 11 VS DirectX 12), „превеждането“ на стари Direct3D игри на Vulkan понякога може да подобри производителността на играта.

Работата на Intel върху техните графични процесори Arc е доказателство за това. Intel може да опита да добави поддръжка за всяко едно по-старо заглавие в драйверите на Arc GPU. Вместо това Intel реши да работи върху по-нататъшното подобряване на DXVK. Първоначалните резултати от „експеримента“ на Intel водят до двукратно увеличение на производителността за по-стари заглавия, като десетки се възпроизвеждат „чрез“ DXVK.

Как да използвате DXVK в Windows

Използването на DXVK в Windows е лесно, тъй като няма какво да се променя или конфигурира. Трябва само да го изтеглите, да го разархивирате в правилната папка на играта и е готово за работа.

Трябва обаче да използвате правилната версия на DXVK, която съответства на версията на Direct3D, използвана от вашата игра.

Вероятно е по-лесно, ако преминем през целия процес заедно, за да видим как можете да изтеглите най-новата версия на DXVK, да идентифицирате „технологията“ на вашата игра и да инсталирате правилните DLL файлове в правилната папка.

Как да изтеглите DXVK

DXVK е софтуер с отворен код и е безплатен за използване. Можете да намерите най-новата му версия в GitHub.

  1. Посетете DXVK официална страница на GitHub и щракнете върху Последен връзка към версията вдясно на страницата, под Издания.
  2. Превъртете надолу на страницата с версиите и намерете Активи раздел на най-новата версия. Щракнете върху най-новия архив на DXVK tar.gz, за да го изтеглите. Към момента на писане беше версия 2.2.
  3. Съхранявайте изтегления архив някъде, тъй като ще трябва да извлечете съдържанието му в папката на всяка игра, която искате да стартирате с DXVK вместо Direct3D.

Как да изберете правилната версия на DXVK

Ако трябва да знаете коя версия на Direct3D използва вашата игра, уебсайтът PC Gaming Wiki може да ви помогне.

  1. Посетете Уики за компютърни игри с вашия браузър и използвайте полето за търсене горе вдясно, за да потърсите играта, към която искате да добавите DXVK.
  2. Когато намерите вашата игра, посетете нейната страница и превъртете надолу, за да стигнете до Друга информация раздел. Обърнете внимание на API таблиците. Там, на Технически спецификации и Поддържа се колони, ще видите версията на Direct3D, която вашата игра използва. Отдолу, на Изпълним файл, 32-битов, и 64-битов колоните ще ви "подскажат" коя архитектура трябва да изберете.

Как да добавите DXVK към вашите игри

Сега, след като знаете коя версия на Direct3D и CPU архитектура използва вашата игра, можете да добавите правилната версия на DXVK към нейната папка.

  1. Отворете DXVK архива с любимия си архивен мениджър (за тази статия използваме WinRAR) и влезте в единствената DXVK папка, която ще видите там.
  2. Вътре ще намерите две подпапки, по една за всяка компютърна архитектура. Въведете правилния за вашата игра. Дори ако вашата операционна система е 64-битова, както повечето версии на Windows днес, ако играта ви е 32-битова, трябва да изберете 32-битовата папка.
  3. Изберете DXGI.DLL плюс правилната DLL за версията на Direct3D вашата игра използва. Както ще видите, има още три DLL файлове, по една за всяка от предишните версии на Direct3D: 9, 10 и 11.
  4. Намерете локалната папка, в която е инсталирана вашата игра, и намерете подпапката с нейния изпълним файл („файлът, от който се изпълнява играта“). Извлечете DLL от предишната стъпка в тази папка.

Как да тествате и сравните вашата подобрена игра

Ако стартирате играта си сега, тя трябва да използва Vulkan вместо Direct3D и да се надяваме да работи по-добре.

Дори и да не виждате драматични промени в честотата на кадрите, понякога подобренията могат да се „почувстват“ по други начини. Например, опитахме DXVK с класическия Batman: Arkham City на компютър, оборудван с Ryzen 5900x, 64 GB RAM и Nvidia RTX 3070 GPU. Нашият хардуер вече беше над най-добрите спецификации на тази стара игра, постигайки много високи кадрови честоти. Дори и да станат по-високи с Vulkan, разликата няма да е лесно забележима.

Въпреки това действието на играта се чувстваше по-плавно. Преходите между екрани, нивата на зареждане и натискането на Alt + Tab бяха почти мигновени с DXVK.

Кога не трябва да използвате DXVK

DXVK има много предимства и може да пренесе производителността на по-стари игри в съвременната ера. Въпреки това, това не е сребърен куршум за подобрена производителност и понякога просто не си струва да го използвате.

1. DXVK не подобрява производителността на играта

Ако сте добавили DXVK DLL файловете към вашата игра, но след това не сте забелязали разлика, можете да ги премахнете отново, ако желаете. Можете да изтриете DLL файловете, които сте добавили към папката на играта, за да направите това.

2. DXVK причинява по-лоша производителност или въвежда нови проблеми

Понякога добавянето на DXVK към игра може да има обратен ефект. За съжаление, няма начин крайният потребител да коригира подобни проблеми.

Появиха ли се резервоар за производителност на игра или визуални проблеми след добавяне на DXVK? Излезте от играта и изтрийте DLL файловете на DXVK от нейната директория.

3. Искате да играете играта си онлайн

DXVK е слой за съвместимост и засяга само графичния изход на играта. Все пак някои компании са против каквито и да е модификации на техните игри, за да осигурят справедлива среда за всички.

DXVK може да не е "измама", но все пак е "модификация на играта" и може да бъде маркирана като такава.

4. Играта вече има вградена поддръжка на Vulkan

Ако една игра вече използва API на Vulkan, като Doom Eternal, няма причина да настроите нейния изход на Direct3D, за да го преведете на Vulkan.

5. Играта използва Direct3D 12

Тъй като Direct3D 12 е почти напълно равен на Vulkan, няма какво да спечелите от превода на един ултрамодерен графичен API в друг.

Подобрете старите си игри с "Преведено" 3D на Windows

Това, което започна като начин за игра на повече игри, обвързани с Windows на Linux, в крайна сметка се превърна в полезно решение за съвместимост и усилвател на производителността. Така че дръжте под ръка скорошен архив на DLL файловете на DXVK. Добавете ги към всяка игра, в която искате да премахнете проблемите, да подобрите нейната производителност, да получите по-плавно действие в играта и да подобрите нейната реакция.

Дори и в крайна сметка да не помогне, изпробването му ще отнеме само секунди и по-често може да се изненадате от резултатите.