Valve migliora le prestazioni della libreria open-source Zink: OpenGL non è morta

0

È da qualche tempo che non parliamo di Valve, la compagnia dietro ad Half-life e Steam, ma siamo felici di farlo per dimostrare come stia ancora investendo su GNU/Linux: la settimana scorsa un loro dipendente, Mike Blumenkrantz, ha introdotto delle ottimizzazioni alla libreria Zink (descritte qui da Phoronix), migliorandone le prestazioni e avvicinandosi di più a re-implementare OpenGL 4.x attraverso Vulkan.

Per chi non lo sapesse, Vulkan è una libreria grafica “erede” di OpenGL, introdotta per risolvere alcuni problemi che affliggono l’illustre API, ossia:

  1. Prestazioni diverse a seconda dell’implementazione del driver.
  2. Più attenzione al multithreading.
  3. Superamento del concetto di Macchina a Stati Finiti.

Questi obiettivi non sono ottenuti in maniera indolore: Vulkan è un’API di basso livello. Così di basso livello che disegnare un triangolo al centro dello schermo richiede un migliaio di righe di codice, contro il centinaio previsto con OpenGL.

Questo perché le funzionalità di OpenGL sono implementate dal driver fornito dal costruttore e sono di alto livello. Giusto per dare un esempio, considerate che quando compilate uno shader nel vostro programma OpenGL, ricevete anche gli eventuali errori di compilazione in un formato leggibile ai comuni mortali.

A questo, inoltre, si aggiunge un ovvio problema: OpenGL e Vulkan sono incompatibili e i vecchi software non possono utilizzare Vulkan se un apposito sistema di rendering non viene realizzato per loro. Ora capite quanto importante può essere Zink, se avete un programma che usa OpenGL e di cui avete paura di perdere la compatibilità in futuro.

Ma non si tratta solo di salvare vecchi programmi: OpenGL, come abbiamo detto prima, è facile al confronto di Vulkan: se dobbiamo renderizzare lo stato di un braccio meccanico o visualizzare l’inclinazione di un aereo, con OpenGL possiamo ottenere questo risultato in davvero poche righe.

Se a questo aggiungiamo che Zink è open-source e che si può estendere (a patto di conoscere Vulkan) diventa, quindi, non solo un modo per avere ancora OpenGL come strumento di sviluppo nel nostro cassetto, ma anche un modo per aggiornare in maniera indolore una libreria grafica che è vicina agli sviluppatori e che è davvero più che sufficiente nella maggior parte dei casi.

Appassionato di GNU/Linux dal 2000, tento disperatamente di tenermi distante dalla programmazione web e di sviluppare in C/C++ e Python i software che mi vengono commissionati.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *