2

Vulkan su Wine, e questa è una cosa buona.

Vulkan su Wine è la prova di quando esattamente sia low-level, portabile e non dipendente dalla piattaforma.

Vulkan su Wine

Vulkan su Wine

Per capire cosa voglio dire, devo innanzitutto spiegare come funziona Wine: Wine, come il nome stesso (acronimo ricorsivo per Wine Is Not an Emulator) suggerisce, non è un emulatore. È uno strato di compatibilità. In pratica: piuttosto che emulare Windows, l’idea di base di Wine è di reimplementare tutte le funzionalità di Windows in modo da farle girare su Linux (ed anche altri sistemi operativi, eventualmente, in quanto Wine va anche su OSX e da poco anche su Android X86). Ora, tutti voi ben sapete che Windows ha una cosa chiamata “DirectX“, che molti ben sanno essere richiesto dalle applicazioni per le funzionalità grafiche. Il suo equivalente in Linux è OpenGL. Ora, Wine, per far funzionare DirectX su Linux, “traduce” le chiamate a DirectX in chiamate equivalenti ad OpenGL. Chiaramente c’è una perdita di performance in questo, come inevitabilmente c’è ogni volta che c’è uno strato di transizione tra due operazioni.

Qui entra in gioco Vulkan, perché con Vulkan questa cosa non succede, e spiego subito come.

L’implementazione Wine di Vulkan, altro non è che Vulkan stesso. L’unica cosa che viene tradotta sono le istruzioni relative appunto all’interfaccia stessa di Windows, che vengono passate ad X11. Il resto delle chiamate Vulkan, invece, passa direttamente per il driver video come avverrebbe per un’applicazione nativa. Niente conversione da DirectX a OpenGL o viceversa. Niente transizione. Solo un’interfaccia grafica che funziona nel medesimo modo su qualsiasi piattaforma tu decida di farla funzionare.

Ora, guardiamola al contrario.

Scrivere un gioco, e parlo di questi in quanto di questi principalmente parliamo, ma resta un ragionamento valido per qualsiasi programma, usando Vulkan, significa che l’unica cosa che dovrai riscrivere tra una piattaforma e l’altra è solo l’interfaccia, perché il resto puoi tranquillamente lasciarlo così com’è, e funzionerà, dunque sarà facilissimo effettuare porting nativi per Linux utilizzando Vulkan. Certo, detto così è un po’ semplicistico, ma la buona sostanza della questione è quella, e questa implementazione di Wine, in quanto passa già tutti i test di conformità del consorzio Khronos, ne è la prova.

Volete provarlo voi stessi?

Installatevi wine-staging e fateci girare sopra la versione Windows di The Talos Principle con interfaccia Vulkan. Perché sì, ci gira già.

Comments

comments