2 Commenti

Giochi a velocità warp

L’invasione Vulkaniana

di

thumbnail

03

mag

2016

I nuovi driver video strizzano l’occhio alle tendenze tecnologiche, a tutto vantaggio dei prodotti low-end.

Aggiornare i driver video del computer non è necessariamente un gesto esplicito. I gamer saranno sicuramente stati invogliati – tra una sessione e l’altra di gioco – a scaricare l’ultima release dal sito ufficiale del produttore della GPU; per gli altri l’aggiornamento può avvenire in modo più o meno automatico, su proposta o iniziativa del sistema operativo.

Ogni driver video porta con sé le nuove o riprogrammate istruzioni che uno sviluppatore può scegliere di utilizzare per sviluppare il proprio software, istruendo la GPU su come e che cosa inviare a schermo.

Potrebbe quindi anche esistere un mondo dove ogni driver/produttore di processori grafici fornisca un set di istruzioni diverso rispetto ai concorrenti. Questo comporterebbe ad ogni svilupatore di adeguare la propria produzione ad un unico e solo produttore o adattatore video, creando un mercato di sole esclusive.

In lotta per il video

Per accorpare le operazioni, proporre soluzioni comuni ma soprattutto allargare la base d’utenza esercitando pressione sul mercato, sono stati creati diversi livelli di astrazione fra il driver video ed il sistema operativo: le diverse API per il rendering 2D e 3D. Qui entrano in gioco i wrestler del settore: Microsoft con Direct3D 12, Apple con Metal (new entry) e Khronos Group con Vulkan (ex Mantle, ex OpenGL Next).

Direct3D 12

La versione 12 di Direct3D promette consistenti vantaggi in velocità.

Storicamente il campo di battaglia ha visto schierarsi Direct3D contro OpenGL a colpi di interfacce per le nuove feature (extension) delle GPU e protocolli di integrazione fra diversi sottosistemi multimediali; DirectX infatti è un contenitore di diverse API per lo sviluppo di applicazioni multimediali (tra le quali abbiamo Direct3D). Insomma una nuova plancia di comando – sempre più grande complessa e funzionale – per consentire al singolo operatore di manovrare una gru che si fa sempre più capace, grande e potente.

Si da il caso però che tecnologia e mercato non si stiano spostando solo verso device ancora più dotati, ma anche verso sistemi capaci di velocizzare, stando in metafora, il lavoro di gruista ponendo più operatori contemporaneamente in cabina. Basti pensare che oggi ben difficilmente acquisterete un PC o uno smartphone con processore non multi-core.

La comunicazione tra CPU e GPU avviene infatti tramite un canale dati che – per retaggio storico – non è ottimizzato per gestire più CPU. Oggi invece si parla di comunicazione tra le CPU e le GPU nello stesso sistema.

Le novità proposte negli aggiornamenti delle API dei tre concorrenti ruotano tutte attorno a questo cardine, cioè su come applicare il paradigma multithreading all’interfaccia dei driver video.

Vulkan e il multithreading

Per le nuove specifiche Vulkan, il multithreading è un fatto dato per scontato.

Sulla carta queste novità potrebbero apportare leggeri miglioramenti prestazionali – anche immediati – sui sistemi low-end (dove il collo di bottiglia CPU-GPU si fa più stretto) ma è attraverso le nuove soluzioni disponibili che potranno essere costruite le nuove autostrade.

È infatti solamente modificando i moduli di rendering degli attuali motori grafici high-end che potremo scoprire il vero potenziale di questa innovazione. Ma il lavoro non è semplice né immediato in quando per ottenere il massimo è necessario apportare una modifica non puntuale ma d’architettura, profonda, modificando il paradigma con cui le informazioni tra CPU e GPU vengono prodotte e scambiate.

C’è “solo” da scegliere

Le DirectX 12 sono stata rilasciate a luglio 2015 come esclusiva di Windows. Metal è disponibile per iOS da giugno 2015 e per OSX da settembre 2015 (non per tutti i modelli, in entrambi i casi). Le specifiche Vulkan sono state rilasciate nella loro versione iniziale il 16 febbraio 2016 e sono cross-platform.

Visto che per i motivi sopra detti il guadagno tecnologico è assicurato, ma necessita di un importante cambio architetturale, i vari produttori coinvolti (di videogiochi in primis) si stanno interrogando su quale sentiero sia meglio percorrere prima degli altri.

Metal

Metal si propone come campione di efficienza interna nell’elaborazione.

Sembra evidente che Vulkan ricopra una posizione elitaria. Primo, è cross-platform; secondo, gode della spinta di AMD (Vulkan è l’evoluzione di Mantle), di Valve, della comunità Linux ed OpenGL in generale (Android!). Microsoft, tuttavia, ha vinto sul tempo e sul market share (quasi tutti i giochi PC hanno come prima compatibilità Direct3D). Apple sembra invece confinata a godere di nuove ottimizzazioni per i prodotti storicamente affini e che hanno tenuto insieme la comunità della mela, conquistare passivamente dei potenziali nuovi utenti grazie all’allargamento della community di giocatori sui sistemi non Windows e vedere integrato Metal in una qualche implementazione di terze parti di Vulkan.

Secondo Valve proseguire in direzione Direct3D 12 quando esiste Vulkan è una scelta poco sensata, ma ovviamente stiamo parlando del produttore di Steam e SteamOS.

Leggendo invece le poche notizie rilasciate da chi può permettersi di sbirciare nelle camere R&D di chi i motori grafici li costruisce, pare che le scelte siano invece orientate verso una blanda compatibilità con DirectX12 (questione di etichetta), per dedicarsi ad un completo refactoring nella prossima major revision dell’engine, posticipando quindi a tale data il lancio della moneta tra Vulkan e la piena adozione di DirectX12.

Siamo di fronte all’embrione di una nuova generazione di game engine (che forse metteranno Vulkan davanti a Direct3D?) mentre sugli scaffali iniziamo a trovare dei prodotti compatibili DirectX 12, che probabilmente non ne sfruttano ancora il pieno potenziale.

Quanto è certo è che potremo essere testimoni di un salto software generazionale. Una buona notizia ulteriore è che, a questo giro, chi ne godrà di più saranno i sistemi low-end.




Giacomo Cappellini (@Arkanoid) è da cinque anni analista programmatore e tool-maker di applicazioni per smartphone e tablet, da dieci anni deviato nel multidisciplinare mondo dello sviluppo di videogiochi cross-platform. Nonostante una grave e particolare forma di ossessione verso lo how-it’s-done, trova ancora tempo e modo per parlarne.

Letto 2.535 volte | Tag: , , , , , , , , , ,

2 commenti

  1. Erix

    Ah bene, ci sarà ancora più attenzione verso la grafica e meno verso il gioco.
    (con le dovute eccezioni, ormai quasi solo in campo indie)

  2. Lucio Bragagnolo

    Se bastasse scrivere una nuova libreria per avere più intelligenza nel gioco…

Lascia il tuo commento