Lors de la conférence SIGGRAPH 2012, le groupe Khronos a annoncé la sortie des spécifications d'OpenGL 4.3 et d'OpenGL ES 3.0.
Cette nouvelle version apporte 27 nouvelles extensions, dont les suivantes :
- ajout d'une nouvelle extension nommée GL_ARB_compute_shader, permet d'utiliser un nouveau type de shader : les Compute Shaders. Ceux-ci permettent de réaliser des calculs complexes sur les images ou les volumes en bénéficiant de la puissance du parallélisme des cartes graphiques. Ils ont donc la même utilisation que ce que fournit OpenCL. La différence vient du fait que les Compute Shaders sont destinés aux calculs s'intégrant dans le pipeline graphique, alors qu'OpenCL est destiné aux calculs ne nécessitant pas le pipeline graphique ;
- ajout d'un nouveau type de Buffer Object : les shader storage buffer objects (extension GL_ARB_shader_storage_buffer_object). Ce sont des espaces mémoire accessibles en écriture et en lecture par tous les types de shaders. Ils facilitent donc la transmission de gros volumes d'informations entre les shaders ;
- les texture parameter queries permettent d'obtenir des informations sur le support des textures sur la plateforme d'exécution ;
- les compressions de texture haute qualité ETC2 / EAC (extension GL_ARB_ES3_compatibility) ;
- l'extension GL_ARB_arrays_of_arrays ajoute les tableaux multidimensionnels dans le GLSL (pour pouvoir écrire par exemple float f[4][3];) ;
- fonctionnalités de débogage pendant l'exécution ;
- texture views pour travailler sur les textures selon différentes manières, sans devoir les dupliquer ;
- les indirect multi-draws permettent de réaliser des instanciations multiples en deux temps, le premier temps permettant de faire des calculs et de stocker les paramètres dans un Buffer Object, puis de les réutiliser dans une seconde étape de rendu ;
- amélioration de l'utilisation d'OpenGL par plusieurs applications : sécurisation des espaces mémoire pour éviter qu'une application écrive dans l'espace mémoire d'une autre application (extension GL_ARB_robust_buffer_access_behavior) et éviter que le reset de la carte graphique déclenché par une application perturbe les autres applications.
Il ne reste plus qu'à attendre la sortie des drivers prenant en charge cette nouvelle spécification pour pouvoir tester !NVIDIA a sorti les drivers 305.53 pour Windows et 304.15.00.02 pour Linux supportant OpenGL 4.3. Télécharger ici.
Quelles sont les nouvelles fonctionnalités qui vous intéressent le plus ?
Que pensez-vous de l'ajout des Compute Shaders, en particulier font-ils double-emploi avec OpenCL ?
Spécifications :
- 3D : OpenGL Core profile 4.3 (06/08/2011), Compatibility profile 4.3 (06/08/2011) et OpenGL Shading Language 4.30.6 (06/08/2012)
- 3D embarqué : OpenGL ES 3.0.0 (06/08/2012) et OpenGL ES Shading Language 3.00.3 (06/08/2012)
Sources :
- OpenGL 4.3 Specifications Released, Advanced Computation with Compute Shaders!
- OpenGL 4.3 and OpenGL ES 3.0: Adaptive Scalable Texture Compression Extension (ASTC)
- OpenGL 4.3: Compute Shaders Details
EDIT : review des fonctionnalités d'OpenGL, par Christophe Riccio : 4.3
Partager