È disponibile il rilascio del layer DXVK 2.0, che fornisce un'implementazione di DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 e 11, operante attraverso la traduzione delle chiamate nell'API Vulkan. Per utilizzare DXVK è necessario avere driver compatibili con l'API Vulkan 1.3, come Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0 e AMDVLK. DXVK può essere utilizzato per eseguire applicazioni 3D e giochi su Linux tramite Wine, fungendo da alternativa più performante alle implementazioni integrate di Direct3D 9/10/11 presenti in Wine, che operano sopra OpenGL.
Principali modifiche:
- Sono aumentati i requisiti per la versione dell'API grafica Vulkan: ora è necessario un driver che supporti Vulkan 1.3 (precedentemente era necessario Vulkan 1.1), il che ha permesso di implementare supporto per nuove funzionalità legate alla compilazione degli shader. Nella pratica, DXVK 2.0 può essere eseguito su qualsiasi sistema che supporta l'uso del pacchetto Proton Experimental per l'esecuzione di giochi basati su D3D11 e D3D12. Per funzionare, winevulkan richiede almeno Wine 7.1.
- È stato integrato il codice del progetto dxvk-native, che consente di creare build native di DXVK per Linux (non legate a Wine), utilizzabili non solo per l'esecuzione di applicazioni Windows, ma anche in normali applicazioni Linux, risultando utile per la creazione di porting di giochi per Linux senza dover modificare il codice di rendering basato su D3D.
- È stata ampliata la supporto per Direct3D 9, inclusa una gestione della memoria migliorata (i file riflettenti in memoria vengono utilizzati per memorizzare copie delle texture), è stata implementata la corretta lettura dalle aree attive di rendering (risolvendo problemi di artefatti durante il gioco a GTA IV) e la verifica della trasparenza è stata riprogettata.
- Per Direct3D 10, non verranno più fornite le librerie d3d10.dll e d3d10_1.dll, che non erano installate automaticamente a causa della presenza in Wine di un'implementazione D3D10 più avanzata. Tuttavia, il supporto per l'API D3D10 continua nella libreria d3d10core.dll.
- Il supporto per Direct3D 11 è stato elevato al livello di funzionalità 12_1 (D3D11 Feature Level); per raggiungere questo obiettivo sono state implementate funzionalità come risorse a mosaico (Tiled Resources), rasterizzazione conservativa (Conservative Rasterization) e rendering ordinato nel rasterizzatore (Rasterizer Ordered Views).
- L'implementazione dell'interfaccia ID3D11DeviceContext, che rappresenta il contesto del dispositivo che genera comandi di rendering, è stata rielaborata e avvicinata al comportamento di Windows. Questa revisione ha migliorato la compatibilità con le librerie di terze parti e ridotto il carico sulla CPU. In particolare, è stato ridotto il carico sulla CPU nei giochi che utilizzano attivamente contesti differiti (ad esempio, il gioco Assassin’s Creed: Origins) o che richiamano frequentemente l'operazione ClearState (ad esempio, il gioco God of War).
- Sono state apportate modifiche alla compilazione degli shader. In presenza di driver Vulkan che supportano l'estensione VK_EXT_graphics_pipeline_library, è stata implementata la compilazione degli shader Vulkan durante il caricamento degli shader D3D da parte dei giochi, anziché durante il rendering, risolvendo i problemi di freeze causati dalla compilazione degli shader durante il gioco. L'estensione richiesta è attualmente supportata solo dai driver proprietari NVIDIA, a partire dalla versione 520.56.06.
- Nei shader D3D11 è stata utilizzata la model di memoria Vulkan.
- Rimosso il limite sul numero di risorse che possono essere collegate contemporaneamente.
- Risolti problemi riscontrati nei giochi:
- Alan Wake
- Alice Madness Returns
- Anomaly: Warzone Earth
- Beyond Good and Evil
- Dragon Age Origins
- Empire: Total War
- Final Fantasy XV
- Grand Theft Auto IV
- Heroes Of Annihilated Empires
- Limit King Of Fighters XIII
- Metal Gear Solid V: Ground Zeroes
- SiN Episodes: Emergence
- Sonic Generations
- Spider Man
- The Ship
- Warhammer Online
- Ys Seven
Fonte: opennet.ru
