DXVK 2.7: Poboljšana podrška, optimizovano upravljanje deskriptorima i defragmentacija

DXVK-1

Prije nekoliko dana je objavljeno Izlazak nove verzije DXVK 2.7, koji uvodi poboljšanja za Vulkan i u ekstenzijama i u drajverima, kao i poboljšanja u upravljanju VRAM-om, ispravke kompatibilnosti i još mnogo toga.

Za one koji ne znaju za DXVK, trebali biste znati da može se koristiti za pokretanje 3D aplikacija i igara na Linuxu koristeći Wine, djeluje kao alternativa visokih performansi implementaciji Direct3D 11 zasnovanoj na Wine-u koja radi preko OpenGL-a. U nekim igrama, performanse Wine + DXVK paketa se razlikuju od Windows izdanja za samo 10-20%, dok se pri korištenju implementacije Direct3D 11 zasnovane na OpenGL-u performanse značajnije smanjuju.

Glavne nove karakteristike DXVK 2.7

Jedna od ključnih promjena u DXVK 2.7 je postavljanje ekstenzije VK_KHR_maintenance5 kao obavezni zahtjev. To podrazumijeva da Drajveri moraju u potpunosti podržavati Vulkan 1.3. Kao rezultat, DXVK više neće raditi sa starijim verzijama drajvera. Za AMD i Intel GPU-ove (RADV i ANV) potreban je Mesa 25.0 ili NVIDIA drajveri 550.54.14.

Ova promjena To posebno pogađa korisnike Windowsa s AMD Polaris i Vega grafičkim karticama., koje AMD više zvanično ne podržava. Počevši od ovog izdanja, DXVK pretpostavlja da Windows platformu sa AMD drajverima koristite na vlastitu odgovornost.

Još jedna nova funkcija u DXVK 2.7 je modernizacija sistema deskriptora sjenčanjaUključeno sa AMD ili NVIDIA GPU, DXVK podrazumevano omogućava ekstenziju VK_EXT_descriptor_buffer, tehnologiju koja drastično smanjuje obim posla koji CPU mora obaviti za upravljanje grafičkim resursima. Ovo poboljšanje prevodi se u opipljivo poboljšanje performansi u zahtjevnim igramaposebno u sistemima gdje je CPU bio usko grloZa one koji preferiraju da onemoguće ovu optimizaciju, uključena je opcija dxvk.enableDescriptorBuffer.

DXVK 2.7 Takođe poboljšava korištenje memorije, na Intelovim grafičkim karticama U Battlemageu i Lunar Lakeu je omogućena funkcija defragmentacije memorije. Ovo smanjuje vršnu upotrebu RAM-a tokom produženih sesija igranja, vraćajući više resursa operativnom sistemu. Ova funkcija se može kontrolisati pomoću opcije dxvk.enableMemoryDefrag.

Osim toga, na namjenskim grafičkim procesorima, DXVK će sada što više primjenjivati ​​ograničenje VRAM-a koje prijavljuje upravljački program, omogućavajući efikasnije oslobađanje neiskorištenih resursa. Ovo rezultira glatkijim igranjem igara poput onih razvijenih pomoću Unityja, posebno na mašinama s ograničenom video memorijom.

Čišćenje koda i ciljana poboljšanja

Kao dio napora za održavanje čistijeg i modernijeg koda, zastarjele funkcije su uklonjene kao što su opcija d3d9.forceSwapchainMSAA i keš stanja naslijeđenog stanja, koji je postao zastario nakon usvajanja ekstenzije VK_EXT_graphics_pipeline_library.

Takođe Ugrađene su specifične optimizacije za poboljšanje stabilnosti i performansi igara zasnovanih na Source engine-u, kao i sigurnija inicijalizacija shadera u Direct3D 11 zahvaljujući automatskom popunjavanju bafera i varijabli.

Što se tiče ispravki grešaka i poboljšanja:

  • Dodana je podrška za planarne prikaze video izlaza.
  • D3D11 shaderi će sada prema zadanim postavkama inicijalizirati sve varijable i grupirati dijeljenu memoriju nultom inicijalizacijom, kako bi se spriječile greške u igri koje uzrokuju nedefinirano ponašanje.
  • Optimizovana je upotreba StretchRect-a u D3D9 u određenim slučajevima rješavanja više uzoraka koji se javljaju u Source Engine-u.
  • Ispravljena je nevažeća upotreba Vulkana u Modulusu i moguće drugim Unity Engine igrama koje koriste D3D11 video API.
  • Implementirana je podrška za ID3DDestructionNotifier interfejs.
  • Vulkan uređaji koji nemaju potrebne funkcije za pokretanje DXVK-a više neće biti navedeni kao DXGI/D3D9 adapteri.
  • Sada, pokušaj kompajliranja DXVK-a u MinGW okruženju sa omogućenim AVX-om će rezultirati greškom prilikom kompajliranja.

Kako dodati DXVK podršku?

Instaliranje DXVK-a na Linuxu može se neznatno razlikovati ovisno o distribuciji i o tome da li koristite Wine, Proton ili Lutris, ali evo vodiča za najčešće slučajeve.

Instaliranje DXVK-a pomoću Wine-a

DXVK možete preuzeti sa njegove službene GitHub stranice. Preuzmite najnoviju .tar.gz datoteku (u ovom slučaju, verziju 2.7).

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

Nakon što smo sada izvršili preuzimanje, raspakirat ćemo novostečeni paket, to se može učiniti iz vašeg okruženja radne površine ili sa samog terminala izvršavanjem sljedeće naredbe:

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

Instalirajte DXVK na vaš Wine prefiks

Pod pretpostavkom da koristite prefiks Wine u ~/.wine:

izvoz WINEPREFIX=~/.wine ./setup_dxvk.sh instalacija

Ovo će kopirati potrebne DLL datoteke (d3d9.dll, d3d10.dll, d3d11.dll, dxgi.dll) u foldere system32 i syswow64 unutar vašeg prefiksa.

Instalacija sa Lutrisom (lakša)

Otvorite Lutris i odaberite svoju igru:

  1. Desni klik > Konfiguriši > kartica Opcije runnera.
  2. Označite okvir "Omogući DXVK".
  3. Odatle možete odabrati svoju željenu DXVK verziju.
  4. Sačuvajte promjene i pokrenite igru.

Instalacija na Steamu (koristeći Proton)

Ako koristite Steam Play (Proton):

  1. Aktivirajte Steam Play za sve naslove na:
  2. Steam > Postavke > Kompatibilnost > Prisilno igranje na Steamu.
  3. Verziju DXVK-a uključenu u Proton možete zamijeniti prilagođenom (ne preporučuje se osim ako ne znate šta radite).
  4. Ili jednostavno pustite Proton da automatski upravlja DXVK-om – to je ugrađeno po defaultu.

Provjerite da li DXVK radi

Da biste provjerili je li DXVK aktivan, možete pokrenuti igru ​​i provjeriti mapu u kojoj se nalazi. Ako vidite datoteke poput d3d11.log ili dxgi.log, DXVK radi ispravno.

Također možete koristiti alate poput DXVK HUD-a za prikaz statistike na ekranu:

izvoz DXVK_HUD=1

Postavite ovu varijablu prije pokretanja igre s Wineom ili Lutrisom.