Kuus kuud kestnud arendustööst on vĂ€lja lastud uus DXVK (Direct3D to Vulkan Translation Layer), avatud teek, mis muudab Direct3D 8, 9, 10 ja 11 API kutsed Vulkan kĂ€skudeks. See vĂ”imaldab kĂ€ivitada Windowsis loodud 3D rakendusi ja mĂ€nge sĂŒsteemides, kus native Direct3D tuge ei ole, kasutades samal ajal efektiivsema Vulkan API vĂ”imekusi.
Peamised muudatused
Uues versioonis on tehtud ĂŒleminek Vulkan 1.4 spetsifikatsioonide ja laienduste kasutamisele, mis nĂ”uab vastavalt ĂŒhilduvat draiverit.
DXVK kasutab nĂŒĂŒd dxbc-spirv kĂ”ikide toetatud ĆĄablooni mudelite jaoks shaderite kompileerimiseks. See kĂ”rvaldab mitmed probleemid, mida varem ei olnud vĂ”imalik lahendada:
MÀngudes esinevad renderdamisprobleemid, mis on pÔhjustatud kas mÀngude sÔltumisest mÀÀramatust kÀitumisest vÔi sellest, et FXC mÔnel juhul genereeris vale koodi, nagu Postal: Brain Damaged ja Snowrunner
Genereeritud kood on kompaktsam kui lihtsalt muundatud SPIR-V kood, mis vĂ€hendab oluliselt DXVK kasutatava mĂ€lu mahtu. Sellistes mĂ€ngudes nagu Overwatch vĂ”i God of War vĂ”imaldab see sÀÀsta umbes 1 GB sĂŒsteemimĂ€lu.
Shaderite kompileerimine on nĂŒĂŒd tĂ€ielikult ĂŒle viidud töövoogudesse, mis vĂ”ib lĂŒhendada laadimisaega sellistes mĂ€ngudes nagu Days Gone ja Final Fantasy XIV vĂ”i mĂ”nes juhuslikus olukorras vĂ€hendada viivitusi. Varem tegi DXVK SPIR-V tĂ”lke rakenduse trajektooris ja kompileeris ainult reaalsete Vulkan torujuhtmete töövoogasid.
DXVK kompileeritud shaderite vahepealne esitlus on nĂŒĂŒd kettale vahemĂ€llu salvestatud praeguse Wine'i prefiksi AppData/Local katalooge. See on vajalik, kuna kompileerimise aeg on vĂ”rreldes vanade kompilaatoritega suurenenud. VahemĂ€lu teed saab muuta keskkonnamuutuja DXVK_SHADER_CACHE_PATH abil.
Uut Vulkan laiendust VK_EXT_descriptor_heap kasutatakse nĂŒĂŒd vaikimisi draiverites, mis seda toetavad.
Oodatavasti annab see uus mudel, vÔrreldes vana VK_EXT_descriptor_buffer pÔhise sidumise mudeliga, ligikaudu sama taseme jÔudlust, mis on seotud CPU-ga, samas vÀltides Nvidia GPU-de jÔudluse langust (nvidia-drivers-595.84 ja uuemad on vajalikud)
D3D9 muudatused
Ette valgustada vananenud fikseeritud funktsioonidega kanali emuleerimist, mis vÔimaldab D3D8 ja D3D9 mÀngudel varjutamata renderdamist, genereeris DXVK varem omakooditud varjutajad reaalajas kanali oleku pÔhjal. MÔnes mÀngus, nagu Unreal Tournament 2004, vÔis see pÔhjustada mÀrkimisvÀÀrseid viivitusi isegi pÀrast pikka mÀngusessiooni.
Selle lahendamiseks rakendab DXVK nĂŒĂŒd fikseeritud funktsioonidega kanali kaht ĂŒliohjurit, mille optimeeritud versioonid kompileeritakse taustal.
Puhverdamise optimeerimine.
Kuna Windowsi kĂ€itumise tĂ€psemaks jĂ€ljendamiseks laaditakse erinevaid puhvertid, mis varem paiknesid otse VRAM-is, nĂŒĂŒd nĂ”udmise pĂ”hjal ja rakendati ka mĂ€lu mahtude piiramise strateegiat, mis parandab aadressiruumi probleemidega seotud kokkujooksmisi paljudes 32-bitistes D3D9 mĂ€ngudes.
Need muudatused vĂ”ivad samuti parandada toimivust sĂŒsteemides, millel pole muudatava suurusega BAR-i, nagu GTA IV.
SĂŒsteemides, mis toetavad piisavalt VK_EXT_sample_locations ja VK_EXT_extended_dynamic_state3, töötab D3DRS_MULTISAMPLEANTIALIAS renderdamise seisund nĂŒĂŒd Ă”igesti, vĂ”imaldades rakendustel kasutada ĂŒhesampelset rasteriseerimist mitme valimisega renderdamise sihtobjektidele. See kĂ”rvaldab probleemid kasutajaliidese renderdamises Anno 1701, Men of War Assault Squad ja sarnastes mĂ€ngudes, kus on sisse lĂŒlitatud MSAA.
Ăldised ressursid töötavad nĂŒĂŒd originaalse Wine'i rakendusega ja ei vaja enam Protonile spetsiifilisi parandusi.
Samuti tuleks mainida hulga parandusi erinevates mĂ€ngudes, mis nĂŒĂŒd töötavad paremini.
Allikas: linux.org.ru
