Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Il Khronos Group ha annunciato la versione 1.1 delle API Vulkan. Si tratta della prima grande revisione alle librerie alternative alle DirectX 12 di Microsoft e che sono alla base di alcuni giochi popolari come l'ultimo Doom.

La nuova revisione integra nello standard alcune funzionalità che in precedenza erano offerte come estensioni e migliora la compatibilità con le librerie Microsoft. Interessante il supporto Explicit multi-GPU, che permette a un software di suddividere il proprio lavoro su più GPU.

In poche parole, le GPU presenti nel sistema sono trattate come un unico dispositivo logico e in questo modo si accede a tutte le risorse disponibili come se fosse un unico grande insieme, un'unica grande e potente scheda video. Il tutto senza bisogno di passare per un protocollo come SLI o CrossFire.

vulkan 1 1 launch presentation march 2018 16

Clicca per ingrandire

Con SLI e CrossFire, le GPU hanno pool di memoria replicati che sono copie identiche di ognuna, mentre con le nuove librerie ogni GPU può avere un dato totalmente separato in memoria e persino pool di memoria di differenti dimensioni. Questo permette uno scaling migliore e prestazioni superiori.

In passato suddividere il carico di lavoro era compito principalmente dei driver, ma anche stavolta c'è un "però": l'implementazione di questa funzionalità dipende dagli sviluppatori.

vulkan 1 1 launch presentation march 2018 07

Clicca per ingrandire

Explicit Multi-GPU (o Explicit Multi-Adapter) è una soluzione presente anche nelle DirectX 12 di Microsoft e che tra l'altro permetterebbe di approntare configurazioni grafiche miste Radeon/GeForce o di usare GPU integrate e dedicate insieme. Ne abbiamo parlato in questi tre articoli:

Con le API Vulkan invece è necessario avere configurazioni di schede video omogenee, quindi ogni GPU deve essere simile all'altra, o quasi, e soprattutto sfruttare gli stessi driver. Per cui non è possibile approntare configurazioni miste per il momento.

Le API Vulkan 1.1 offrono anche un migliore supporto alla realtà virtuale, in quanto gli sviluppatori possono implementare "multiview", ossia usare un singolo insieme di comandi rendering per produrre uscite multiple e leggermente diverse con una singola chiamata.

È un approccio diverso a quello passato, più basato sulla "forza bruta delle GPU", in cui era necessario renderizzare due differenti prospettive della stessa scena 3D, una per ogni occhio, inviando prima tutti i comandi per disegnare la scena all'occhio sinistro e poi all'occhio destro, facendo così più chiamate.

vulkan 1 1 launch presentation march 2018 14

Clicca per ingrandire

Vulkan 1.1 può inoltre usare l'HLSL (High Level Shading Language) delle DirectX per gli shader programmabili nativamente. L'effetto concreto è che per gli sviluppatori sarà più semplice tradurre in Vulkan il codice Direct3D in quanto non dovranno più riscrivere la parte relativa agli shader programmabili. Per questo il consorzio ha pubblicato anche lo strumento SPIR-V 1.3.

Vulkan, infine, guadagna il supporto a nuovi formati colore (YUV/YCbCr) e permette la riproduzione e visualizzazione di contenuti protetti (DRM). Sia AMD che Nvidia hanno già rilasciato driver con supporto Vulkan 1.1. Qui trovate quelli di AMD e a quest'altro indirizzo quelli di Nvidia.