OpenGL ES 3.1: compute shader per GPU mobile moderne

Il Khronos Group ha presentato le OpenGL ES 3.1, nuova versione dell'API destinata al mondo mobile. Tante le novità ma spicca il supporto ai compute shader.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Il Khronos Group ha annunciato la versione 3.1 delle specifiche di OpenGL ES, l'API 3D (retrocompatibile con le OpenGL ES 2.0 e 3.0) destinata principalmente al mondo mobile. La principale novità riguarda il supporto ai compute shader, che consente alle applicazioni di usare la GPU per effettuare operazioni di calcolo generico. "I compute shader sono scritti in linguaggio shading GLSL ES e possono condividere dati con la pipeline grafica".

È un'integrazione abbastanza importante, che all'atto pratico può gestire solo una GPU mobile moderna come il core Kepler all'interno del SoC Tegra K1, a cui basterà un aggiornamento driver per ottenere il supporto OpenGL ES 3.1. Un'altra novità riguarda gli shader objects separati, che consentiranno alle applicazioni di programmare gli stadi vertex shader e fragment shader della GPU in modo indipendente, mischiando e abbinando programmi vertex e fragment senza un collegamento esplicito.

Il Khronos Group parla anche di "indirect draw commands" e spiega che la GPU può essere istruita a prendere in consegna comandi draw dalla propria memoria piuttosto che dalla CPU. "Ciò permette a un compute shader che gira sulla GPU di effettuare una simulazione fisica e poi generare i comandi draw necessari per visualizzare i risultati, senza intervento della CPU".

Le OpenGL ES 3.1 migliorano anche la funzionalità di texturing - includendo multisample texture, stencil texture e texture gather - e il linguaggio di shading, con nuove operazioni aritmetiche e bit field. Non mancano inoltre estensioni opzionali per lo shading "per sample", modalità avanzate di blending e così via.

"Le OpenGL ES 3.1 forniscono la maggior parte delle caratteristiche della versione desktop OpenGL 4.4 in una forma adatta ai dispositivi mobile", ha spiegato Tom Olson, a capo dell'OpenGL ES working group e direttore per la ricerca grafica di ARM. "Le API danno agli sviluppatori la possibilità di usare tecniche grafiche al passo con i tempi sui dispositivi che odierni".

Le novità per le OpenGL non sono finite qui. Alla Game Developers Conference che ha aperto i battenti in queste ore ci saranno diverse conferenze focalizzate sul futuro di questa API (e di riflesso su quello di OpenGL ES) che nei prossimi anni, insieme alle DirectX, si appresta a fare un grosso balzo in avanti sulla scia di Mantle, la soluzione di AMD pensata per sfruttare più a fondo i chip grafici, sviluppata per garantire maggiori prestazioni specie sulle piattaforme CPU-limited.