Vulkan, un’interfaccia di programmazione di applicazioni (API) open source e multi-vendor per grafica 3D / GPU ha ora un’implementazione effettiva e disponibile per gli sviluppatori. Vulkan era precedentemente nella fase di progettazione in cui l’interfaccia di programmazione è stata resa pubblica nel 2015, ma non c’era ancora alcuna implementazione. Ce ne sono alcuni ora e stanno uscendo i driver per Android 6.0, Windows 7-10 e Linux, con Windows in testa.

A cosa serve Vulkan?

Vulkan è un’API grafica creata per la grafica ad alte prestazioni. Il suo design consente all’app di controllare le risorse, rimuovendo un sacco di “indovinare lavoro” del driver grafico (indovinando l’intento dello sviluppatore), il che porta a un maggiore sovraccarico della CPU e a un utilizzo non ottimale dell’hardware.

Poiché lo sviluppatore è responsabile delle risorse (allocazione della memoria, costruzione del buffer di comando 3D …), Vulkan è molto più amichevole con il multi-threading che massimizza l’utilizzo di più core della CPU consentendo all’app di creare più buffer di comandi su diversi core (leggi: più core sono migliori?). Questo è molto difficile da fare con un’API della macchina a stati come OpenGL.

vulkan_1.0_multithread

Quali sono i pro e i contro?

I pro sono abbondanti: il più ovvio sono le alte prestazioni e il basso sovraccarico della CPU. Quest’ultimo potrebbe anche portare a una migliore durata della batteria, che è uno dei fattori sui cellulari.

Portabilità: Vulkan è multipiattaforma in modo che gli sviluppatori possano riutilizzare il codice destinato a Vulkan su Android, Windows e Linux. Vulkan ha gli stessi obiettivi e lo stesso livello di funzionalità grafiche di DirectX12.

Tuttavia, è compatibile con più sistemi operativi. Vulkan potrebbe anche semplificare il lavoro dei fornitori di middleware come Unity o Unreal Engine sostituendo OpenGL e OpenGL ES, anche se la mancanza di supporto per Mac e iOS lo impedirebbe nel mondo reale.

I contro consistono principalmente in una maggiore complessità, nel senso che una buona parte del lavoro precedentemente svolto dal conducente (gestione delle risorse) ora deve essere svolto dall’app. Non tutti possono, vogliono o hanno il tempo di costruire quel codice.

Vulkan è destinato a sostituire OpenGL?

In breve, no. Sebbene sia gestito da Khronos, lo stesso gruppo dietro OpenGL, non intende sostituire quell’API legacy.

OpenGL rimane ancora utile per motivi di compatibilità e semplicità. Esistono molti tipi di app in cui gli sviluppatori non devono essere particolarmente esigenti riguardo alla gestione delle risorse o al sovraccarico della CPU.

Anche le app di Computer Assisted Design (CAD) hanno un’enorme base di codice legacy e probabilmente non passeranno presto. Allo stato attuale, Vulkan è davvero una nuova API che vivrà insieme a OpenGL e ad altre per un bel po’ di tempo.

Con quale hardware è compatibile Vulkan?

In genere, Vulkan è compatibile con hardware recente in grado di eseguire OpenGL ES 3.1 – OpenGL 4.5. Per un fornitore come NVIDIA, ciò significherebbe la generazione “Kepler” di processori grafici (GPU) e oltre. Anche Tegra K1 e Tegra X1 farebbero parte di questo.

Qualcomm non ci ha ancora fornito un elenco, ma le GPU Adreno più recenti supportano OpenGL ES 3.1. Vulkan non offre nuove funzionalità, ma può supportare tutte quelle all’avanguardia esistenti.

Google si è impegnata a portare Vulkan su Android con un prossimo aggiornamento del sistema operativo. Al momento non sono state fornite ulteriori informazioni. Prevediamo che alcuni dei telefoni verranno annunciati al Mobile World Congres 2016 (MWC 2016) per supportare Vulkan.

Leave a Reply

Your email address will not be published. Required fields are marked *