Kronos Group ha da poco rilasciato la nuova versione della sua libreria API Vulkan, vale a dire la 1.3.296. La nuova versione aggiorna le specifiche e corregge diversi bug, oltre a introdurre una nuova importante estensione, denominata VK_EXT_device_generated_commands, sviluppata da Valve e altre aziende collaboratrici.
Vulkan 1.3.296: nuova estensione e diversi correttivi per l’ultima versione della libreria grafica
La nuova estensione che ora è stata integrata su Vulkan 1.3.296 è stata sviluppata da Valve, insieme a ingegneri di Intel, AMD, NVIDIA e altre aziende, e permette alla GPU di generare un numero di comandi per i buffer dei comandi. Si tratta di una novità che è stata in lavorazione per mesi ed è stata descritta da un ingegnere di Valve come l’aggiunta più importante che è stata fatta dal periodo del ray-tracing, aggiungendo anche che il lavoro è stato volto anche grazie alla collaborazione di altri ingegneri del settore, inclusi alcuni sviluppatori che vengono dall’ambito gaming.
Scendendo un po’ nel dettaglio, l’ingegnere di Valve spiega che la nuova estensione consente di registrare comandi dagli shader per poi eseguirli direttamente, risparmiando le continue comunicazioni da CPU a GPU, contribuendo molto nell’eliminazione di colli di bottiglia, con un impatto diretto a beneficio delle prestazioni. Inoltre, con il componente EXT DGC, è possibile cambiare da shader a shader. Questa cosa è agevolata dalla creazione di quello che viene chiamato “Indirect Execution Set”, con cui più set di shader possono essere raggruppati insieme per essere indicizzati.
Un’altra novità di Vulkan è “VK_EXT_depth_clamp_control”, la quale consente all’applicazione di controllare l’intervallo di clamp della profondità del viewport separatamente dal viewport stesso. Questo permette di limitare i valori di profondità a un intervallo definito dall’applicazione.
Si tratta quindi di una novità interessante che contribuirà sicuramente a rendere la libreria notevolmente più efficiente e prestazionale. Non mancano infine i classici correttivi per quanto riguarda i bug. Tutti i cambiamenti sono stati dettagliati nella pagina GitHub dedicata.