12 hours ago
🎮 Vkd3d 2.1 a fost lansat: Suport extins pentru HLSL, inspecție avansată a shader-elor și optimizări Vulkan!A fost lansată versiunea 2.1 a bibliotecii Vkd3d, componenta esențială utilizată de proiectul Wine (și Proton) pentru a traduce apelurile grafice Direct3D (în special Direct3D 12) în instrucțiuni native Vulkan pe Linux. Această actualizare aduce peste 300 de modificări concentrate pe fidelitatea compilării shader-elor și pe îmbunătățirea compatibilității cu jocurile și aplicațiile Windows. ✨ Principalele noutăți din Vkd3d 2.1:🛠️ Corecții majore în compilatorul HLSL:• Eliminarea unui bug critic: A fost rezolvată o problemă la apelurile de funcții imbricate (nested function calls), unde argumente diferite evaluau eronat la același rezultat final.• Dead Store Elimination (DSE): A fost introdus o nouă pasă de optimizare ce elimină datele/uniformele neutilizate. Aceasta ajută compilatorul să genereze o structură de date identică cu cea produsă de compilatorul oficial Microsoft (d3dcompiler/fxc), prevenind erorile în jocurile care se așteaptă la un anumit layout în memorie.• Aritmetică Half-Precision: S-a extins suportul pentru operații pe 16-biți (half) pentru Shader Model 4 și 5. 🔍 Extinderea capabilităților de Shader Reflection:• Proiectul aduce îmbunătățiri majore pentru modul în care aplicațiile pot inspecta (reflect) variabilele, resursele și intrările/ieșirile unui shader compilat la runtime.• Suportul pentru interfețele de inspecție a fost extins dincolo de Direct3D 12, adăugând implementări complete pentru Direct3D 10 și Direct3D 11 (ID3D10ShaderReflection și ID3D11ShaderReflection). 🌋 Îmbunătățiri pe backend-urile Vulkan, SPIR-V și GLSL:• Conversii numerice SPIR-V: Suport extins pentru conversia numerelor cu virgulă mobilă în întregi pe 64 de biți, extrem de util pentru shader-ele provenite din formatul DXIL.• Generare experimentală GLSL: Suportă acum concepte avansate de compute shaders, precum operații atomice, memorie partajată (thread group shared memory), bariere de sincronizare și acces indirect. 🧰 Utilitare în linia de comandă:• Instrumentul vkd3d-compiler include opțiuni noi pentru compatibilitatea variabilelor half, iar utilitarul dxbc permite înlocuirea secțiunilor individuale din fișierele shader fără a fi necesară reconstrucția completă a containerului. 📌 Ce înseamnă asta pentru jucătorii de pe Linux?Aceste optimizări la nivel de compilator și reflexie reduc riscul de artefacte vizuale, erori de randare și blocaje la lansare (crashes) în jocurile moderne DirectX 12, aducând performanța și compatibilitatea pe Linux tot mai aproape de mediul nativ Windows. 🚀 #Vkd3d #Wine #Vulkan #DirectX12 #GamingOnLinux #Proton #OpenSource #Linuxiac #TechNews #FOSS