Microsoft con DX12 Abbraccia L’ Open Source
Redattore per Q-Gin. Clicca su '// TUTTI_GLI_ARTICOLI' per esplorare le altre pubblicazioni scritte da // Staff.
Microsoft con DX12 Abbraccia L’ Open Source
Oggi il team di Direct3D e HLSL ha condiviso una notizia che potrebbe cambiare il futuro della programmabilità GPU: con il rilascio dello Shader Model 7, DirectX 12 accetterà shader compilati in SPIR-V™. Questa mossa segna un passaggio significativo verso l’adozione di tecnologie aperte e standardizzati, che mira a promuovere l’innovazione e a migliorare l’interoperabilità tra diverse piattaforme GPU.
Abbracciando Tecnologie Aperte e Standard
Negli ultimi otto anni, Direct3D e HLSL hanno registrato una crescita significativa in termini di funzionalità e adozione. Il rilascio di DXC su GitHub e il contributo di collaboratori open-source hanno ampliato notevolmente la base di utenti di HLSL, includendo sviluppatori che lavorano su Vulkan e Metal. Questo successo ha spinto il team di HLSL a concentrarsi sullo sviluppo di supporto per HLSL in Clang, con l’obiettivo di mantenere il passo con la domanda dell’industria per soluzioni aperte e nuove funzionalità.
Uno degli aspetti più importanti di questo nuovo approccio è la partecipazione diretta del team HLSL ai gruppi di lavoro SPIR e Vulkan del Khronos Group. Questa collaborazione permetterà una migliore integrazione e una più rapida adozione delle funzionalità di Vulkan, garantendo che HLSL rimanga il linguaggio migliore per scrivere shader per ogni ambiente runtime GPU.
Neil Trevett, presidente del Khronos Group, ha espresso il suo entusiasmo per l’adozione di SPIR-V da parte di Microsoft, sottolineando come questo cambiamento porterà benefici non solo a HLSL e Direct3D, ma all’intero ecosistema grafico. Collaborazioni come quella con Google, che ha contribuito allo sviluppo di funzionalità chiave di HLSL, dimostrano l’impegno di Microsoft a lavorare con partner strategici per il futuro delle tecnologie grafiche.
Il Percorso per Sostituire DXIL con Spir-V

Con l’introduzione dello Shader Model 7.0, SPIR-V sostituirà DXIL come formato di interscambio per Direct3D. Questa decisione segna una rottura con il passato, in cui l’IR (Intermediate Representation) proprietario basato su LLVM era alla base delle innovazioni introdotte dallo Shader Model 6, come il ray tracing e i work graph. Adottando SPIR-V, Microsoft intende abbracciare completamente le tecnologie aperte, facilitando la vita agli sviluppatori e unificando l’ecosistema attorno a un formato di interscambio comune.
Per agevolare questa transizione, Microsoft svilupperà strumenti di traduzione per convertire SPIR-V in DXIL e viceversa. Questi strumenti permetteranno agli sviluppatori e ai produttori di driver di adattarsi gradualmente ai nuovi flussi di lavoro senza interruzioni significative. Il core design di SPIR-V, con la sua capacità di estensibilità, consentirà una più rapida innovazione delle funzionalità API GPU, migliorando la produttività degli sviluppatori su più piattaforme.
Sbloccando l’Innovazione in Direct3D
I piani per lo Shader Model 7 rappresentano l’inizio di un nuovo capitolo di innovazione per Direct3D. Allineandosi con gli standard aperti e adottando le migliori tecnologie open-source, Microsoft accelera lo sviluppo di nuove funzionalità e permette di esporre rapidamente le capacità hardware più all’avanguardia. Utilizzando un formato di interscambio standard del settore, Microsoft e i produttori di hardware possono concentrare i propri sforzi ingegneristici su funzionalità differenzianti, alimentando la prossima generazione di applicazioni.
Questa transizione richiederà diversi anni, ma la trasparenza sui piani futuri permetterà agli sviluppatori e ai partner di pianificare adeguatamente con il massimo preavviso possibile. Con queste imminenti novità e l’investimento continuo in Direct3D, il futuro di DirectX non è mai stato così promettente.
Appendice: Una Breve Storia dei Formati di Interscambio GPU

A differenza delle CPU, le GPU non hanno adottato architetture comuni a lungo termine. Questo significa che, mentre il codice CPU di un’applicazione compilata dieci anni fa potrebbe funzionare su un dispositivo nuovo di zecca, il codice GPU non avrebbe la stessa portabilità se fosse compilato per l’ISA (Instruction Set Architecture) nativa della GPU.
Per risolvere questo problema, i modelli di programmazione GPU spesso rimandano la generazione dell’ISA nativa al runtime, quando il driver GPU può ottimizzare per le capacità hardware specifiche della GPU. Le API di programmazione grafica supportano l’invio di programmi shader in forma di codice sorgente o in una ISA virtuale che astrae le caratteristiche hardware comuni a un livello superiore. Entrambe le forme consentono al driver GPU di ottimizzare il programma in modo più efficiente, ma l’uso di una ISA virtuale riduce il tempo necessario al driver per generare codice nativo. Di conseguenza, le ISA virtuali sono diventate il metodo preferito per distribuire programmi shader per applicazioni ad alte prestazioni.
Direct3D ha supportato una ISA virtuale per i programmi shader fin dall’introduzione della programmabilità shader in Direct3D 8. La ISA virtuale originale, DirectX Bytecode (DXBC), si è evoluta ed è stata infine sostituita da DXIL, basato su LLVM. Con l’adozione di SPIR-V come formato di interscambio futuro, Microsoft punta a continuare questa tradizione di innovazione, ma all’interno di un contesto più aperto e collaborativo.
fonte: // microsoft