Apple pigra, Khronos rimedia: API Vulkan su macOS e iOS

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Qualche tempo fa, era il 2014, Apple presentava la sua API (Application programming interface) proprietaria per iOS e macOS, Metal, e da allora si è sempre rifiutata di supportare l'API open source Vulkan (usate in giochi come l'ultimo Doom), l'antagonista delle DirectX12 di Microsoft.

Per questo il Khronos Group, il consorzio formato da grandi nomi dell'industria, ha annunciato il suo impegno per sopperire alla mancanza di Apple e portare Vulkan sui sistemi operativi della Mela. Che la casa di Cupertino approvi o no, poco importa, in quanto l'operazione avverrà tramite un translation layer e la Mela non potrà intervenire per bloccarla.

Khronos ha collaborato con Valve, LunarG e Brenwill Workshop per creare un SDK (LunarG) e delle librerie chiamate MoltenVK che permettano di usare giochi e contenuti Vulkan su macOS e iOS. Valve ha già testato il tutto con DOTA 2, creando una versione che funziona nettamente meglio sotto Vulkan su macOS rispetto a quanto possibile con le OpenGL supportate dal sistema operativo di Apple.

DOTA 2 Vulkan vs OpenGL

Clicca per ingrandire

L'immagine qui sopra confronta Vulkan con il codice nativo OpenGL su tre piattaforme diverse: Mac Pro con AMD FirePro D500 (2013), Nvidia GT 650M (2012 MacBook Pro) e un MacBook Pro con Intel Iris Pro (2014). Tutte le piattaforme, come vedete, ne beneficiano, anche se chiaramente è il Mac Pro con GPU dedicata a goderne di più. Interessante comunque l'accelerazione di 1,13 volte per la GPU integrata di Intel.

MoltenVK

Clicca per ingrandire

In questa immagine potete vedere, a grandi linee, come il codice è mappato e tradotto da Vulkan all'API Metal. Il risultato è un gioco che si comporta meglio rispetto alla variante OpenGL nativa, almeno in teoria. Per raggiungere l'obiettivo Khronos ha dovuto eliminare alcune caratteristiche, ma l'obiettivo a lungo termine è migliorare la compatibilità ed estendere il supporto all'interno del translation layer e comprendere altre API concorrenti, come DirectX 12.

Sì, nel caso più roseo il Vulkan translation layer potrebbe permettere di supportare con maggiore facilità i giochi DirectX 12 in ambienti diversi da Windows, cosa difficile da ottenere se non tramite strumenti come Wine non sempre efficaci. L'SDK e le librerie sono open source e possono essere scaricati da questo indirizzo o da GitHub.