Le Next Generation OpenGL (glNext) hanno finalmente un nome, Vulkan. Come Mantle, DirectX 12 e Apple Metal, le nuove librerie - svelate alla GDC 2015 - diventano delle API di basso livello in grado di sfruttare meglio le caratteristiche dell'hardware, in modo da offrire maggiori prestazioni e funzionalità più avanzate.
Vulkan è una API grafica cross-platform aperta e, come tale, punta a offrire in un'unica entità ciò che finora era disponibile in modo separato con le OpenGL da una parte e le OpenGL ES dall'altra.
Vulkan - clicca per ingrandire
Al momento lo sviluppo dell'API non è ancora terminato (le specifiche arriveranno entro l'anno), ma il Khronos Group che ne presiede lo sviluppo ha già dichiarato che le librerie saranno compatibili con ogni piattaforma che supporta le OpenGL ES 3.1 e successive, quindi con tutti i prodotti grafici moderni.
Vulkan - clicca per ingrandire
I programmatori avranno a disposizione migliori strumenti di sviluppo, con layer di debug che potranno essere inseriti nella catena di rendering e usati durante lo sviluppo, in modo da effettuare un debugging approfondito.
Vulkan - clicca per ingrandire
Gli sviluppatori potranno anche eseguire test di conformità più efficaci. Secondo il Khronos Group l'API dovrebbe comportarsi in modo simile a Mantle e DX12, quindi chi sarà in grado di sfruttare tali librerie non avrà problemi a usare Vulkan.
Vulkan - clicca per ingrandire
Vulkan nasce, se così vogliamo dire, sulla base di AMD Mantle. Non si tratta della stessa API, ma AMD ha contribuito allo sviluppo di Vulkan permettendo di usare Mantle per avviare il processo di sviluppo e velocizzarlo.
Vulkan - clicca per ingrandire
Il Khronos Group ha poi lavorato sull'ottimizzazione, eliminando porzioni di codice inadatte (caratteristiche ne avrebbero limitato la compatibilità) e aggiungendo altre funzionalità ritenute necessarie o migliori.
SPIR-V - clicca per ingrandire
Vulkan supporterà più backend per gli shader. GLSL sarà il linguaggio di shading iniziale, ma sul lungo termine il Khronos Group vuole aggiungere altri linguaggi come C++. Il Khronos Group ha anche affermato che gli shader in Vulkan saranno compilati dagli sviluppatori in un bytecode derivato LLVM chiamato SPIR-V. In questo modo gli sviluppatori potranno scrivere in più linguaggi.
SPIR-V - clicca per ingrandire
L'annuncio di Vulkan è una buona notizia per tutti, soprattutto per il mondo del gaming Linux che nei prossimi mesi potrebbe crescere grazie al progetto SteamOS. "Eseguire il porting tra Vulkan e DirectX 12 non dovrebbe essere troppo difficile", ha dichiarato Neil Trevett, presidente del Khronos Group (e vicepresidente di Nvidia). "Il porting da DirectX 12 a Vulkan sarà più semplice del porting da DirectX 12 a OpenGL".
OpenCL 2.1 - clicca per ingrandire
Il Khronos Group ha scelto la GDC 2015 per svelare la versione 2.1 delle OpenCL. Due le principali novità: OpenCL (calcolo) e Vulkan (grafica) finiscono sotto lo stesso tetto grazie a SPIR-V.
![]() | Asus STRIX GeForce GTX 970 | |
![]() | Sapphire Vapor-X R9 290X 8 GB |
Gli sviluppatori potranno lavorare su grafica e altro codice con SPIR, creando un comune linguaggio frontend che permetta a Vulkan e OpenCL di accettare molti degli stessi linguaggi di alto livello. OpenCL, inoltre, ottiene il supporto a C++.
OpenCL 2.1 - clicca per ingrandire
Le nuove OpenCL 2.1 offriranno anche alcune caratteristiche per migliorare la flessibilità dell'API. La presenza di "device timer a bassa latenza" dovrebbe consentire un profiling del codice d'esecuzione più affidabile e accurato. Ci sono anche funzionalità di clonazione del kernel grazie al comando clCloneKernel.
OpenCL 2.1 - clicca per ingrandire
Le OpenCL 2.1 sono disponibili inizialmente come una specifica provvisoria. Non è chiaro quando saranno rilasciate in forma finale, ma probabilmente entro l'anno.