Wine-holdet har udgivet VKD3D 2.0 — en stor udgivelse af biblioteket, der muliggør driften af applikationer med Direct3D 12 ovenpå Vulkan. VKD3D bruges i den almindelige upstream Wine til at understøtte D3D12-applikationer; det skal ikke forveksles med VKD3D-Proton, en separat spilgren fra Valve, der anvendes i Proton/Steam Play.
Projektet distribueres under license GNU Lesser General Public License 2.1 eller senere version. Kildekoden til udgivelsen er offentliggjort på WineHQ-serveren, og koden er også tilgængelig gennem Wine-repositorier.
VKD3D 2.0 markerer overgangen fra grenen 1.19 direkte til en ny hovedversion. Den primære fokus er på udviklingen af shader-subsystemet og lavnivå-kompatibiliteten med Direct3D 12.
Nøgleændringer:
Behandlingen af HLSL-shaders er blevet forbedret. Understøttelsen af HLSL-sproget er blevet udvidet: flere operationer er blevet implementeret og behandles nu korrekt af VKD3D's compiler og translator. Det er vigtigt for at køre applikationer, der bruger deres egne HLSL-shaders, og ikke kun forudkompileret bytecode.
Understøttelsen af legacy Direct3D bytecode er blevet forbedret. Ydelsen med den gamle type af Direct3D's kildebytecode er forbedret for at sikre kompatibilitet med ældre shaderformater og værktøjer, der stadig findes i applikationer og motorer.
Ydelsen med DXIL er blevet forbedret. I VKD3D 2.0 fortsætter arbejdet med behandlingen af DXIL — den moderne mellemrepræsentation af DirectX-shaders. For D3D12 er dette en af de centrale formater, så sådanne ændringer påvirker direkte korrektheden af moderne applikationers funktion.
Forbedringer er tilføjet til effects. Udgivelsen inkluderer ændringer relateret til effects — mekanismer til beskrivelse og anvendelse af grafiske effekter i Direct3D-stakken. Dette er mere en infrastrukturel del, men den er vigtig for kompatibilitet med eksisterende grafisk kode.
Eksperimentel understøttelse af MSL er blevet introduceret. VKD3D 2.0 har fået eksperimentel understøttelse af generationen af MSL — Metal Shading Language. Denne retning er knyttet til portabiliteten af shader-delen til platforme, hvor Vulkan normalt bruges gennem ekstra lag af kompatibilitet.
Grænseflader og debuggingmuligheder er blevet udvidet. Udviklerne har tilføjet nye grænseflader og forbedret VKD3D's debugging-værktøjer, hvilket burde lette udviklingen, fejldiagnosen og den videre støtte til Direct3D 12 i Wine.
Det bør især fremhæves: for de fleste Steam-brugere på Linux forbliver den vigtigste D3D12-komponent VKD3D-Proton, og ikke blot en almindelig VKD3D. Alligevel forbliver VKD3D en vigtig del af Wine og fungerer som den grundlæggende implementering af Direct3D 12 over Vulkan i upstream-projektet.
Kilde: linux.org.ru
