Introdotta un mese fa in Vulkan 1.3.246 è stata la nuova estensione VK_EXT_shader_object su cui hanno lavorato gli sviluppatori da Activision a Valve. Lo sviluppatore principale di Zink, Mike Blumenkrantz di Valve, è stato impegnato nelle ultime settimane per ottenere il supporto di questo oggetto shader cablato per l’utilizzo da parte di questo driver OpenGL-on-Vulkan.
VK_EXT_shader_object aggiunge un nuovo tipo di oggetto shader per rappresentare una singola fase shader compilata. Gli oggetti shader Vulkan sono pensati per essere un’alternativa più flessibile ma con prestazioni comparabili agli oggetti pipeline.
All’inizio di questa settimana Blumenkrantz ha ottenuto la prima parte del suo codice da utilizzare di oggetti shader in Zink. Con quel codice di unione ha notato:
“questo reimplementa e utilizza EXT_shader_object per shader separati
…ma solo in Tomb Raider (2013) poiché altrimenti i cicli di feedback vengono interrotti
…e anche il proprietario nvidia andrà in crash quando lo proverai da allora hanno comunque molti bug
quindi in realtà questo implementa qualcosa che nessuno può usare, ma se lo usassero su un’implementazione di riferimento di EXT_shader_object che effettivamente funzionasse (cioè, lavapipe) allora funzionerebbe bene.”
Merged overnight è stata la seconda parte dell’EXT-shader_object di Zink implementazione:
“questo consente l’uso di EXT_shader_object per tutte le precompilazioni di shader separate
idealmente, una volta che i driver hanno recuperato il ritardo, ciò significa che dovrebbe essere possibile (finalmente) giocare a Tomb Raider (2013) senza intoppi.”
Poi finalmente raggiungere Mesa 23.2-devel anche oggi è la parte finale tre:
“questa è l’ultima parte, abilita l’uso degli oggetti shader per tutta la precompilazione quando possibile/disponibile
…
questo dovrebbe corrispondere alla funzionalità della GPL, ma dovrebbe anche (teoricamente) avere un sovraccarico della CPU significativamente inferiore, quindi ho abilitato questo come nuovo valore predefinito quando disponibileattualmente non sto modificando nessuno dei requisiti per l’abilitazione degli oggetti shader, quindi probabilmente è solo utilizzabile sui desktop”
A sua volta, questo dovrebbe contribuire a fornire un’esperienza di gioco fluida per i titoli OpenGL come Tomb Raider in esecuzione su Zink.
È nella mia lista TODO eseguire presto alcuni nuovi benchmark Zink almeno per l’hardware Intel Arc Graphics e AMD Radeon con i loro driver Linux open-source.