Zink, un'implementazione delle OpenGL su Vulkan

Zink, un'implementazione delle OpenGL su Vulkan

Zink è il nome di un ambizioso progetto che vede le OpenGL emulate tramite Vulkan. L'obiettivo è semplificare le cose e usare solo Vulkan, mantenendo le OpenGL come API legacy

di pubblicata il , alle 11:41 nel canale Scienza e tecnologia
Vulkan
 

Vulkan ha portato una ventata di novità nel mondo delle API grafiche e la sua collocazione a un livello molto basso fa sì che offra miglioramenti prestazionali anche significativi rispetto alle API precedenti. Tali miglioramenti permettono di emulare le API come DirectX e OpenGL senza un eccessivo compromesso in termini di prestazioni e proprio da tale considerazione - e da alcune altre - nasce Zink.

Zink è un'implementazione di OpenGL su Vulkan che punta a rendere disponibili le API OpenGL anche qualora queste non siano nativamente disponibili per la scheda video in uso. Un esempio di tale scenario è quello di una scheda video per la quale non siano stati rilasciati i driver OpenGL, ma solo i driver Vulkan - una situazione poco realistica al momento attuale, ma che è anche uno degli obiettivi del progetto.

Con le schede video meno recenti che ricevono però sempre meno supporto, e con lo sviluppo dei driver che deve dividersi tra OpenGL e Vulkan, permettere agli sviluppatori di concentrarsi sui soli driver Vulkan potrebbe portare a un miglioramento del supporto per un numero maggiore di schede video. Zink punta proprio a far sì che basti un driver Vulkan per eseguire anche applicazioni OpenGL.

Tra le altre motivazioni troviamo l'alleggerimento della pila grafica, che al momento fa spazio a due famiglie di API per ottenere - in fin dei conti - la stessa cosa. Utilizzando solamente Vulkan si otterrebbe una semplificazione notevole. Zink permetterebbe anche di sviluppare applicazioni implementando parti sia in Vulkan che in OpenGL in maniera più semplice.

Al momento attuale il progetto è ancora in fase di sviluppo iniziale e non offre prestazioni tali da essere utilizzabile in scenari d'uso reali, ma offre già molte funzionalità che includono l'implementazione di OpenGL 2.1, OpenGL ES1.1 e OpenGL ES 2.0.

Zink nasce come progetto open source per il mondo Linux, ma è aperto all'uso anche su altri sistemi operativi come macOS o Windows. Ulteriori dettagli sullo sviluppo e sul progetto sono disponibili in un articolo pubblicato dal principale autore, Erik Faye-Lund.

7 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
LukeIlBello08 Novembre 2018, 11:56 #1
questo progetto me piace... se emula pure le DX potrebbe essere un wine evoluto che viaggia a livello più basso e quindi con prestazioni migliori
Gyammy8508 Novembre 2018, 12:16 #2
Le amd volerebbero in questo modo anche con le opengl grazie a vulkan
LukeIlBello08 Novembre 2018, 12:19 #3
Originariamente inviato da: Gyammy85
Le amd volerebbero in questo modo anche con le opengl grazie a vulkan


si, a sto punto su unix sarebbero le schede più veloci
s-y08 Novembre 2018, 12:24 #4
salta all'occhio il nome... per me è una reazione alla recente rimozione di opengl da osx, in favore di metal
LukeIlBello08 Novembre 2018, 14:01 #5
Originariamente inviato da: Bellaz89
Esiste di già un progetto per fare il bridge DX->Vulkan e si chiama DXVK https://github.com/doitsujin/dxvk

Funziona molto bene. È la stessa implementare che Steam usa per far andare i giochi di Windows su Linux.

Hwupgrade ne aveva parlato tempo fa.


grazie, mi ci infogno subito
Cunctator8608 Novembre 2018, 20:47 #6
Originariamente inviato da: Gyammy85
Le amd volerebbero in questo modo anche con le opengl grazie a vulkan


Non funziona proprio così, i problemi delle OpenGL te li porti dietro in una eventuale reimplemetazione nel momento in cui cominci a sviluppare la parte di threading e contesti.
Il bello di Vulkan è che ti liberi di anni di sovrastrutture ormai senza senso (le OpenGL devono ancora esporre i contesti 1.x con le varie glVertex, glColor, glMatrix e compagnia cantando :rolleyes se ti metti a riscrivere le OpenGL devi anche reimplemetare quelle, che reintroducono i colli di bottiglia.
Il progetto non è teso a migliorare le prestazioni, ma a ridurre la complessità nella distribuzione delle librerie grafiche.
blackshard08 Novembre 2018, 22:59 #7
Originariamente inviato da: Cunctator86
Non funziona proprio così, i problemi delle OpenGL te li porti dietro in una eventuale reimplemetazione nel momento in cui cominci a sviluppare la parte di threading e contesti.
Il bello di Vulkan è che ti liberi di anni di sovrastrutture ormai senza senso (le OpenGL devono ancora esporre i contesti 1.x con le varie glVertex, glColor, glMatrix e compagnia cantando :rolleyes se ti metti a riscrivere le OpenGL devi anche reimplemetare quelle, che reintroducono i colli di bottiglia.
Il progetto non è teso a migliorare le prestazioni, ma a ridurre la complessità nella distribuzione delle librerie grafiche.


Concordo. In più le performance non possono essere migliori di un driver OpenGL allo stato dell'arte scritto appositamente, semplicemente perché c'è uno strato in più: Vulkan appunto.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^