Disponibile vkd3d 1.18: la libreria che porta Direct3D 12 su Vulkan si evolve

La libreria vkd3d è un progetto fondamentale dell’ecosistema Wine, il noto livello di compatibilità che consente di eseguire applicazioni e giochi sviluppati per Windows su sistemi Unix‑like come GNU/Linux, macOS e BSD. Il suo compito principale è tradurre le chiamate grafiche di Direct3D 12, l’API (Application Programming Interface, cioè un insieme di regole e funzioni che permettono ai programmi di comunicare con l’hardware e il sistema operativo) creata da Microsoft per sfruttare al massimo le capacità delle moderne schede grafiche, in Vulkan, uno standard aperto e multi-piattaforma per la grafica tridimensionale.
Per comprendere meglio, un’API grafica come Direct3D o Vulkan sono il linguaggio che i videogiochi e le applicazioni usano per dialogare con la scheda video. Direct3D 12 è proprietaria e disponibile solo su Windows e Xbox, mentre Vulkan è gestita dal consorzio Khronos Group ed è pensata per funzionare su diversi sistemi operativi e dispositivi. Vulkan offre un approccio a basso livello, che permette agli sviluppatori di avere un controllo diretto sull’hardware grafico, riducendo l’intermediazione dei driver e migliorando l’efficienza complessiva. In altre parole, Vulkan fornisce un linguaggio comune e indipendente per la programmazione grafica, rendendo possibile l’esecuzione di giochi e applicazioni su piattaforme differenti senza dover riscrivere il codice per ogni sistema.
Direct3D 12 segna un punto di svolta rispetto alle versioni precedenti della stessa API Direct3D, perché introduce un modello di programmazione più vicino all’hardware. Questo approccio consente agli sviluppatori di gestire direttamente molte operazioni grafiche, riducendo l’intervento dei driver e migliorando l’efficienza complessiva. Grazie a queste caratteristiche, Direct3D 12 è diventata la base tecnologica di numerosi videogiochi e applicazioni professionali moderni, che richiedono prestazioni elevate e un controllo accurato delle risorse grafiche.
Il limite principale di questa API è la sua natura proprietaria, che la rende disponibile soltanto su Windows e Xbox. Per chi utilizza sistemi alternativi come GNU/Linux o macOS, questa esclusività rappresenta un ostacolo significativo. È proprio per superare tale barriera che nasce la libreria vkd3d, la quale traduce le chiamate di Direct3D 12 in Vulkan, rendendo possibile l’esecuzione di giochi e applicazioni Windows anche su piattaforme che non supportano nativamente le API Direct3D.
Per i titoli e le applicazioni basati su versioni precedenti di Direct3D, come la 9, la 10 e la 11, esiste un altro progetto chiamato DXVK, che svolge un ruolo analogo traducendo le chiamate grafiche verso Vulkan. DXVK è oggi uno dei pilastri dell’ecosistema Proton, la tecnologia di Steam che consente di eseguire giochi Windows su GNU/Linux, ed è costantemente aggiornato per garantire compatibilità e prestazioni elevate anche con i titoli più datati. In questo modo, l’intera gamma delle interfacce grafiche di Microsoft è coperta: DXVK per i giochi più vecchi e vkd3d per quelli moderni basati su Direct3D 12.
Accanto al progetto principale esiste anche VKD3D‑Proton, una versione derivata e ottimizzata per il mondo del gioco su GNU/Linux. Questa variante è mantenuta dal team di Proton e integra modifiche e ottimizzazioni specifiche per garantire compatibilità con i titoli più recenti e graficamente complessi. Se vkd3d rappresenta la base tecnologica generale per la traduzione di Direct3D 12, VKD3D‑Proton è la sua declinazione specializzata, pensata per i giocatori e caratterizzata da aggiornamenti più rapidi e adattamenti mirati alle esigenze del mercato videoludico.
La libreria vkd3d è distribuita sotto licenza LGPL (GNU Lesser General Public License), che assicura libertà di utilizzo, modifica e ridistribuzione. È compatibile con GNU/Linux, dove è pienamente supportata e integrata nei principali sistemi, con macOS, dove è disponibile un supporto sperimentale che sfrutta il backend Metal, e con BSD, seppur con alcune limitazioni. Il pubblico di riferimento è ampio: gli utenti finali possono giocare a titoli Windows su GNU/Linux senza dover mantenere un sistema a doppio avvio, gli sviluppatori possono testare applicazioni grafiche in ambienti non‑Windows e le aziende possono ridurre i costi di migrazione garantendo la compatibilità con software già in uso.
Il progetto ha recentemente raggiunto un nuovo traguardo con la pubblicazione della versione vkd3d 1.18, avvenuta il 20 novembre 2025. Questa versione introduce miglioramenti significativi nella gestione degli shader, ottimizzazioni per il linguaggio HLSL (High‑Level Shading Language) e un supporto più esteso alle funzioni di Direct3D 12.
Novità in vkd3d 1.18
La nuova versione vkd3d 1.18 porta importanti aggiornamenti che migliorano la compatibilità con le ultime funzionalità grafiche e ottimizzano il supporto per i giochi e le applicazioni più vecchie. Vediamo insieme le novità principali:
Miglioramenti nel compilatore shader
Il compilatore shader è il componente che traduce le istruzioni grafiche scritte in HLSL (il linguaggio usato da Direct3D per creare effetti visivi come luci, ombre e texture) in un formato compatibile con Vulkan. In questa versione, sono stati introdotti 3 miglioramenti chiave:
- Semplificazione automatica delle operazioni matematiche: la libreria ora ottimizza in modo più intelligente le espressioni matematiche all’interno degli shader. Ad esempio, se uno shader contiene un calcolo come
2 + 3 * 4, vkd3d lo semplifica automaticamente in14durante la compilazione. Questo riduce il lavoro che la scheda grafica deve fare in tempo reale, migliorando le prestazioni senza modificare il risultato finale. - Gestione più efficiente delle condizioni “se/altrimenti”: nei vecchi shader (ad esempio quelli scritti per Direct3D 9 o versioni precedenti), le istruzioni condizionali come
ifeelsepossono causare problemi di compatibilità. vkd3d 1.18 trasforma automaticamente queste strutture in un formato più lineare, garantendo che anche gli shader più datati funzionino correttamente su Vulkan. - Supporto per shader vecchi (Shader Model 1–3): molti giochi e applicazioni sviluppati tra il 2000 e il 2010 utilizzano versioni obsolete di HLSL. Questa versione di vkd3d aggiunge il supporto per funzionalità specifiche di questi shader, come:
- StructuredBuffer: una struttura dati usata per organizzare grandi quantità di informazioni (ad esempio, le posizioni di migliaia di particelle in un effetto di fuoco).
- Funzioni intrinseche HLSL: operazioni predefinite come
dot(prodotto scalare) onormalize(normalizzazione di un vettore), ora gestite correttamente anche negli shader più vecchi.
Nuove istruzioni per bytecode legacy
Per far funzionare correttamente anche i giochi e le applicazioni più vecchie, vkd3d 1.18 introduce il supporto per nuove istruzioni del bytecode Direct3D legacy (il linguaggio di basso livello usato dalle schede grafiche per eseguire gli shader). Tra queste, spiccano:
- tex: consente di leggere i dati di una texture (ad esempio, un’immagine applicata a un oggetto 3D) in modo compatibile con gli shader più datati.
- texcoord: gestisce le coordinate delle texture, ovvero le informazioni che indicano dove e come applicare un’immagine su una superficie 3D.
- texbem e bem: sono istruzioni specializzate per gli effetti di bump mapping (una tecnica che simula rilievi e dettagli superficiali, come rugosità o incisioni, senza aumentare la complessità geometrica dell’oggetto).
Queste istruzioni sono fondamentali per tradurre correttamente gli shader dei giochi sviluppati tra la fine degli anni ’90 e i primi 2000, garantendo che anche i titoli più vecchi possano girare senza errori su sistemi moderni che utilizzano Vulkan.
Backend sperimentali: Metal e GLSL
vkd3d 1.18 estende il supporto anche ai backend grafici sperimentali, introducendo funzionalità avanzate che migliorano la compatibilità e le prestazioni su piattaforme diverse da Windows. Di seguito, le novità per i 2 principali backend supportati: Metal (macOS) e GLSL (Linux/OpenGL).
Metal Shading Language (MSL) per macOS
Il backend MSL, pensato per i sistemi Apple, introduce importanti novità:
- Supporto ai compute shader: ora è possibile eseguire calcoli complessi direttamente sulla scheda grafica, utile per effetti avanzati come simulazioni fisiche o elaborazioni di immagini.
- Nuove funzioni matematiche: sono state aggiunte operazioni di divisione e resto sia per numeri interi che decimali, fondamentali per algoritmi grafici precisi.
- Conversione diretta da HLSL a MSL: gli shader scritti in HLSL (il linguaggio di Direct3D) possono ora essere tradotti automaticamente in MSL, semplificando lo sviluppo per macOS.
GLSL (OpenGL Shading Language)
Anche il backend GLSL, utilizzato su sistemi GNU/Linux e in ambienti OpenGL, riceve aggiornamenti significativi:
- Derivate nello spazio schermo: funzioni che permettono di calcolare come cambiano i colori e le luci tra pixel vicini, essenziali per effetti come il blur (sfocatura) o il rilievo delle texture.
- Funzioni trigonometriche (sin/cos): ora supportate nativamente, utili per animazioni, distorsioni e calcoli di illuminazione.
- Divisione senza segno: operazioni matematiche che gestiscono solo numeri positivi, spesso usate in algoritmi di compressione o elaborazione delle texture.
- Offset dei texel: possibilità di spostare con precisione i pixel all’interno di una texture, utile per effetti di distorsione o mapping avanzato.
- Gestione avanzata degli input/output degli shader: miglioramenti nella comunicazione tra le diverse fasi di rendering, per una grafica più stabile e performante.
Altre ottimizzazioni
vkd3d 1.18 introduce miglioramenti tecnici che semplificano l’integrazione con altre API e offrono maggiori dettagli per gli sviluppatori:
- Formato testuale degli shader: gli shader generati da vkd3d includono ora un byte nullo finale (un carattere speciale che indica la fine di una stringa). Questo li rende compatibili con le API che richiedono stringhe terminate da zero, evitando errori di lettura e migliorando l’integrazione con altri strumenti di sviluppo.
- Metadati avanzati: le nuove interfacce forniscono dettagli aggiuntivi sugli shader, tra cui:
- Informazioni specifiche sugli shader D3DBC legacy (usati in vecchie applicazioni Direct3D).
- Dimensione dei thread group per i compute shader, un dato cruciale per ottimizzare le prestazioni su piattaforme come Metal (macOS).
- Parametri avanzati per il bump mapping, che permettono di regolare con precisione gli effetti di rilievo sulle superfici 3D.
Riferimenti e download
La versione vkd3d 1.18 può essere scaricata direttamente dal repository software ufficiale su GitLab, che mette a disposizione anche il changelog (registro delle modifiche) completo per seguire in dettaglio l’evoluzione del progetto.
L’annuncio ufficiale in forma estremamente sintetica è sul sito del progetto Wine.
Fonte: https://gitlab.winehq.org/wine/vkd3d/-/releases/vkd3d-1.18
Fonte: https://www.winehq.org/news/2025112001
Fonte: https://gitlab.winehq.org/wine/vkd3d
Fonte: https://www.phoronix.com/news/VKD3D-1.18-Released
Fonte: https://linuxiac.com/direct3d-to-vulkan-library-vkd3d-1-18-brings-hlsl-improvements/
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
[…] con giochi e applicazioni moderne. In sintesi, Wine 10.20 aggiorna la libreria vkd3d alla versione vkd3d 1.18, resa disponibile pochi giorni fa, che amplia il supporto ai reparse points (strumento di Windows […]