LiquidVR, la soluzione di AMD per una realtà virtuale che funziona

AMD ha presentato l'iniziativa LiquidVR, una serie di tecnologie atte a migliorare la realtà virtuale eliminando problemi come la latenza e l'effetto mal di mare.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

AMD ha annunciato LiquidVR. L'azienda statunitense ha deciso di entrare nel settore della realtà virtuale e il primo passo è un SDK (Software Development Kit), in versione alpha e limitata, distribuito ad alcuni sviluppatori e partner selezionati.

AMD LiquidVR logo

L'SDK fornisce accesso a una serie di soluzioni atte ad affrontare problemi quali la latenza, la compatibilità con i vari dispositivi (visori) e a offrire contenuti di maggiore qualità. Raja Koduri, direttore tecnico di AMD, ha dichiarato che "la realtà virtuale è la prossima frontiera del computing" e questo primo passo dell'azienda nel settore è solo l'inizio: AMD vuole guidare l'evoluzione della realtà virtuale e arrivare al fotorealismo.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

Per arrivarci servirà "una completa integrazione sensoriale", ma anche CPU, GPU e acceleratori hardware scalabili. L'intero ecosistema, dallo stack grafico al driver, dalle periferiche all'elaborazione dell'audio dovranno lavorare in armonia. Per questo per LiquidVR AMD ha coinvolto una serie di partner, tra cui Oculus e Crytek.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

Secondo Koduri il gaming sarà la "killer app" della realtà virtuale, ma le possibilità nei settori della simulazione, dell'allenamento, della medicina e dell'educazione, così come la visualizzazione di "big data" sono sconfinate. Insomma AMD ci crede e sta investendo diverse risorse in questo settore.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

LiquidVR permette cose come "Latest Data Latch, Asynchronous Shaders, Affinity Multi-GPU e Direct To Display". Gran parte di queste soluzioni rivedono il modo in cui le immagini sono renderizzate con l'obiettivo di eliminare millisecondi di latenza tra il movimento della testa e quanto visualizzato.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

Ad esempio "latest data latch" assicura che quando una GPU prende o mette insieme i dati stia usando l'ultimo pezzetto dell'informazione proveniente dal visore prima della sincronia (V-Sync). Layla Mah, head design engineer di AMD, ha spiegato che nel vecchio modo di fare il processo di rendering si prende qualsiasi dato presente, vecchio o nuovo, per visualizzarlo.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

Con le tecnologie di AMD gli sviluppatori possono invece avere la sicurezza che l'headset catturi e visualizzi il movimento più recente in assoluto. Gli shader possono accedere agli "asynchronous compute engine" nell'architettura GCN (Graphics Core Next) delle GPU AMD per processare immagini in realtà virtuale in parallelo con il rendering.

Così LiquidVR consente un "time warping asincrono", ossia la possibilità di riprogettare pixel per farli apparire nel modo giusto in base all'effettiva posizione della testa (permette anche cose come il ray tracing asincrono).

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

Nelle immagini qui sopra AMD ha illustrato l'evoluzione della realtà virtuale negli ultimi anni. Nella prima - senza "latest data latch" e calcolo asincrono - latenza e judder (movimenti improvvisi) erano all'ordine del giorno. Nell'immagine centrale vediamo la strada imboccata da Oculus (VR 2.0), senza un profondo accesso all'hardware o ad alcune caratteristiche.

In questo caso sono renderizzati e riprogettati gli ultimi dati disponibili riducendo la latenza, tuttavia il time warping è sincrono, quindi è necessario che il rendering delle immagini avvenga prima di VSync. Se avviene dopo l'esperienza ne risente e si ha un effetto "mosso" che, probabilmente, farà venire la nausea.

L'ultima immagine riguarda LiquidVR. La tecnologia di AMD permette il time warping in modo asincrono prima di VSync. Se il frame non è pronto, viene usato il "latest data latch", ossia l'ultima immagine o una vecchia se è quanto disponibile – e questo processo avviene sempre prima di VSync.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD rilancia inoltre con "Direct to display", una soluzione che promette di conferire al visore controllo diretto sull'applicazione - tramite la scheda video Radeon, ovviamente. AMD ha spiegato che non è importante chi realizzi il visore perché il tutto avviene fuori anche dall'SDK dell'headset. Direct to display permette anche un rendering diretto dal front buffer.

Il beneficio è che il time warp può essere spostato nel display al momento della scansione. Essenzialmente il time warp inizia durante la scansione, rimuovendo i casi in cui si aggancia un vecchio frame buffer.

La scansione avviene dopo VSync, quindi c'è più tempo per completare l'immagine - un millisecondo o più, secondo AMD – e ridurre ulteriormente la latenza. La latenza tipica di tutta la sequenza è circa 11 millisecondi a 90 Hz, quindi 1-2 millisecondi possono fare davvero la differenza.

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

AMD LiquidVR

AMD LiquidVR - clicca per ingrandire

"Affinity multi-GPU" assegna un chip grafico a ogni occhio. I comandi possono essere inviati a tutte le GPU o a ognuna separatamente prima che il driver componga l'immagine in uscita. Nell'ultima immagine potete vedere il processo di rendering. Anche in questo caso AMD permette di fare un time warp per GPU.

LiquidVR sarà compatibile con le principali API in circolazione, DirectX 12 e Vulkan (le nuove OpenGL), ma per ora l'iniziativa di AMD è basata sulle librerie DirectX 11.