Rilasciato DXVK 2.5: Ottimizzazioni significative nella gestione della memoria e supporto migliorato per i giochi
DXVK, un livello di traduzione basato su Vulkan per le API Direct3D 9, 10 e 11, è stato aggiornato alla versione DXVK 2.5. Questo strumento è principalmente utilizzato per migliorare le prestazioni e la compatibilità dei giochi Windows su GNU/Linux tramite Wine o Proton. Questo aggiornamento arriva dopo 4 mese dal precedente DXVK 2.4. L’aggiornamento porta con sé una serie di miglioramenti significativi, specialmente nella gestione delle risorse e nelle performance complessive dei giochi.
Miglioramenti nella gestione della memoria
La nuova versione introduce un sistema di gestione della memoria completamente rivisitato, progettato per utilizzare in modo più efficiente la memoria video allocata. Questa modifica riduce la frammentazione della memoria, il che può portare a una diminuzione sostanziale dell’uso di memoria di picco in alcuni giochi. Ad esempio, “God of War” potrebbe sperimentare una riduzione fino a 1 GiB nell’uso della memoria durante scenari estremi.
Inoltre, la deframmentazione della memoria avviene ora periodicamente per restituire la memoria non utilizzata al sistema. Sebbene non si tratti di una drastica riduzione della memoria, si tratta di un’ottimizzazione conservativa che entra in gioco sotto pressione di memoria o quando viene rilevata una quantità significativa di memoria inutilizzata.
È importante notare che la funzionalità di deframmentazione della memoria è attualmente disabilitata per il driver ANV di Intel, che è un driver Vulkan progettato per le schede grafiche Intel. Questo driver consente l’interazione tra il sistema operativo e l’hardware grafico, gestendo le operazioni di rendering e ottimizzando le prestazioni grafiche. Sebbene gli utenti possano abilitare manualmente questa funzione attraverso il file di configurazione, è fondamentale comprendere che l’assenza di questa opzione attiva potrebbe influenzare negativamente la gestione della memoria durante l’esecuzione di giochi e applicazioni che richiedono elevate risorse grafiche.
Requisiti per risultati ottimali
Per ottenere risultati ottimali, il nuovo sistema di gestione della memoria di DXVK funziona meglio su driver che supportano sia VK_EXT_memory_budget che VK_KHR_maintenance5. Queste estensioni sono fondamentali per garantire una gestione più efficiente delle risorse grafiche. La prima, VK_EXT_memory_budget, consente di monitorare l’uso della memoria e di stabilire un budget per l’allocazione, migliorando la precisione nella gestione della memoria disponibile. La seconda, VK_KHR_maintenance5, introduce funzionalità aggiuntive per la manutenzione delle risorse, come la deframmentazione e la gestione delle allocazioni.
La pagina di supporto del driver DXVK è stata aggiornata per riflettere queste modifiche, evidenziando l’importanza di utilizzare driver che implementano queste estensioni per ottimizzare le prestazioni nei giochi. In particolare, i driver che non supportano queste funzionalità potrebbero non sfruttare appieno le nuove capacità di gestione della memoria introdotte in DXVK 2.5, limitando così l’esperienza di gioco e la stabilità complessiva delle applicazioni.
Supporto migliorato per i giochi D3D8 e D3D9
DXVK 2.5 apporta anche miglioramenti significativi ai giochi sviluppati con le API Direct3D 8 e 9, che sono standard di programmazione grafica utilizzati per il rendering 3D nei videogiochi su piattaforme Windows. Ora supporta i cursori emulati per l’API del cursore Direct3D 9, consentendo ai giochi di impostare qualsiasi immagine arbitraria come cursore del mouse. Questa funzionalità risolve problemi storici con i cursori in titoli come “Dungeon Siege 2”, “Act of War” e vari giochi più vecchi basati su Direct3D 8.
Un altro miglioramento importante riguarda i giochi sviluppati con Unreal Engine 3, un motore grafico ampiamente utilizzato per creare giochi 3D. Questi giochi, quando utilizzano la versione Direct3D 9, potevano in passato passare valori apparentemente non inizializzati come il bias del livello di dettaglio (LOD), un parametro che determina la qualità visiva delle texture in base alla distanza dalla telecamera. Questo problema portava alla creazione eccessiva di oggetti campionatori Vulkan, che sono strutture utilizzate per gestire le texture e gli effetti visivi. Per affrontare questo problema, DXVK 2.5 ora distrugge dinamicamente i campionatori Vulkan non utilizzati, assicurando l’uso corretto del bias LOD e migliorando così l’accuratezza visiva dei giochi. Questo approccio non solo ottimizza le risorse grafiche, ma contribuisce anche a una resa grafica più fedele e dettagliata, migliorando l’esperienza complessiva del giocatore.
Risoluzione dei bug e miglioramenti delle prestazioni
DXVK 2.5 include anche numerosi miglioramenti relativi alla risoluzione dei bug e alle prestazioni:
- Problemi di rendering risolti: Titoli come “Ascension to the Throne”, “Command & Conquer: Generals”, “King’s Bounty: Warriors of the North” e “Tomb Raider: Legend” hanno ricevuto correzioni mirate per affrontare problemi specifici nel rendering.
- Utenti Nvidia: Per le versioni del driver 565.57.01 e successive, l’emulazione dei numeri in virgola mobile è ora abilitata per impostazione predefinita per migliorare la correttezza. Inoltre, gli utenti potrebbero notare un potenziale incremento delle prestazioni nei giochi già ottimizzati.
- GPU mobili: Sono state apportate modifiche per migliorare le prestazioni su alcune GPU mobili, portando a un’esperienza di gioco più ottimizzata.
La gestione delle risorse è stata significativamente rivisitata anche per i giochi Direct3D 11 e DXGI. DXVK 2.5 ora limita la creazione, il caricamento e lo scarto delle risorse per ridurre la pressione sulla memoria, un aspetto particolarmente importante per la stabilità nei giochi a 32 bit come “Total War: Rome II”.
Inoltre, le texture di tipo DYNAMIC di grandi dimensioni, comunemente utilizzate per la riproduzione video e per effetti visivi dinamici, non utilizzeranno più i buffer di staging. I buffer di staging sono aree di memoria temporanea utilizzate durante il processo di trasferimento delle texture dalla memoria del sistema alla memoria della scheda grafica. Questo cambiamento porta a un uso della memoria più efficiente, poiché elimina la necessità di allocare spazio aggiuntivo per il buffering temporaneo delle texture. L’assenza dei buffer di staging consente una gestione più diretta delle texture, riducendo il carico sulla memoria e migliorando le prestazioni complessive nei giochi. Questa modifica è particolarmente vantaggiosa per i giochi che richiedono frequenti aggiornamenti delle texture, poiché diminuisce il tempo necessario per il caricamento e la visualizzazione delle immagini, contribuendo a un’esperienza di gioco più fluida e reattiva.
Ulteriori correzioni e nuove funzionalità
Questo aggiornamento porta anche diverse correzioni di bug aggiuntive, tra cui:
- Implementazione degli effetti swap SEQUENTIAL per le catene swap DXGI.
- Riduzione della contesa nei lock in alcuni giochi.
- Risoluzione dei problemi di rendering in titoli come “Call of Duty: Modern Warfare 2 Campaign Remastered”, “Diablo 4” e “The Sims 4”.
Infine, DXVK 2.5 introduce un backend SDL3 per dxvk-native, che è una libreria utilizzata per gestire la grafica e l’input nei giochi. Questo aggiornamento permette una maggiore compatibilità e prestazioni migliorate nelle applicazioni che utilizzano DXVK. Inoltre, la nuova versione risolve errori di validazione Vulkan in diversi giochi, garantendo che le applicazioni funzionino correttamente senza errori di comunicazione tra il software e l’hardware grafico.
DXVK 2.5 affronta anche problemi relativi a query di occlusione sovrapposte, che sono tecniche utilizzate per determinare quali oggetti in una scena 3D sono visibili e quali sono nascosti da altri oggetti. La correzione di questi problemi migliora ulteriormente l’efficienza del rendering e la qualità visiva dei giochi.
In aggiunta, è stata inclusa la compatibilità con VK_EXT_pageable_device_local_memory, un’estensione di Vulkan che consente una gestione più flessibile della memoria a livello driver. Questa estensione permette al driver di gestire in modo più efficiente la memoria locale della GPU, migliorando le performance complessive delle applicazioni grafiche e consentendo una migliore allocazione delle risorse durante l’esecuzione dei giochi.
Per ulteriori dettagli su tutte le modifiche apportate nella nuova versione DXVK 2.5, è possibile consultare il changelog (registro di sistema) disponibile sulla piattaforma ufficiale del progetto.
Fonte: https://github.com/doitsujin/dxvk/releases/tag/v2.5
Fonte: https://www.phoronix.com/news/DXVK-2.5-Released
Fonte: https://linuxiac.com/dxvk-2-5-released/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Una risposta
[…] Inoltre, DXVK (Direct3D to Vulkan) è un altro strumento che facilita l’uso di Vulkan in Wine. DXVK traduce le chiamate API Direct3D 9, 10 e 11 in chiamate Vulkan, consentendo agli sviluppatori di ottenere prestazioni migliori e una maggiore compatibilità con i giochi Windows. Questa combinazione di tecnologie rende Vulkan non solo un’opzione potente per lo sviluppo grafico, ma anche un elemento chiave per il gaming su Linux, poiché permette agli utenti di eseguire giochi ad alte prestazioni in modo più efficiente rispetto alle soluzioni precedenti. […]