Mesa (master): st/mesa: expose OES_geometry_shader and OES_texture_cube_map_array

Ilia Mirkin imirkin at kemper.freedesktop.org
Thu Sep 1 00:13:55 UTC 2016


Module: Mesa
Branch: master
Commit: e3db41545676d0b7961ac4caa5ef645cdbf12691
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3db41545676d0b7961ac4caa5ef645cdbf12691

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat Aug 27 17:47:37 2016 -0400

st/mesa: expose OES_geometry_shader and OES_texture_cube_map_array

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 docs/features.txt                      |  4 ++--
 docs/relnotes/12.1.0.html              |  4 ++--
 src/mesa/state_tracker/st_extensions.c | 15 +++++++++++++++
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/docs/features.txt b/docs/features.txt
index d6c3240..690c160 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -260,7 +260,7 @@ GLES3.2, GLSL ES 3.2:
   GL_OES_copy_image                                     DONE (all drivers)
   GL_OES_draw_buffers_indexed                           DONE (all drivers that support GL_ARB_draw_buffers_blend)
   GL_OES_draw_elements_base_vertex                      DONE (all drivers)
-  GL_OES_geometry_shader                                DONE (i965/gen8+)
+  GL_OES_geometry_shader                                DONE (i965/gen8+, nvc0, radeonsi)
   GL_OES_gpu_shader5                                    DONE (all drivers that support GL_ARB_gpu_shader5)
   GL_OES_primitive_bounding_box                         DONE (i965/gen7+, nvc0, radeonsi)
   GL_OES_sample_shading                                 DONE (i965, nvc0, r600, radeonsi)
@@ -271,7 +271,7 @@ GLES3.2, GLSL ES 3.2:
   GL_OES_tessellation_shader                            started (Ken)
   GL_OES_texture_border_clamp                           DONE (all drivers)
   GL_OES_texture_buffer                                 DONE (i965, nvc0, radeonsi)
-  GL_OES_texture_cube_map_array                         DONE (i965/gen8+)
+  GL_OES_texture_cube_map_array                         DONE (i965/gen8+, nvc0, radeonsi)
   GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
   GL_OES_texture_storage_multisample_2d_array           DONE (all drivers that support GL_ARB_texture_multisample)
 
diff --git a/docs/relnotes/12.1.0.html b/docs/relnotes/12.1.0.html
index bb20e4f..3368ebc 100644
--- a/docs/relnotes/12.1.0.html
+++ b/docs/relnotes/12.1.0.html
@@ -58,9 +58,9 @@ Note: some of the new features are only available with certain drivers.
 <li>GL_KHR_blend_equation_advanced on i965</li>
 <li>GL_KHR_texture_compression_astc_sliced_3d on i965</li>
 <li>GL_OES_copy_image on nv50, nvc0, r600, radeonsi, softpipe, llvmpipe</li>
-<li>GL_OES_geometry_shader on i965/gen8+</li>
+<li>GL_OES_geometry_shader on i965/gen8+, nvc0, radeonsi</li>
 <li>GL_OES_primitive_bounding_box on i965/gen7+, nvc0, radeonsi</li>
-<li>GL_OES_texture_cube_map_array on i965/gen8+</li>
+<li>GL_OES_texture_cube_map_array on i965/gen8+, nvc0, radeonsi</li>
 </ul>
 
 <h2>Bug fixes</h2>
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 2238d1a..807fbfb 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -946,6 +946,16 @@ void st_init_extensions(struct pipe_screen *screen,
       extensions->ARB_tessellation_shader = GL_TRUE;
    }
 
+   /* What this is really checking for is the ability to support multiple
+    * invocations of a geometry shader. There is no separate cap for that, so
+    * we check the GLSLVersion.
+    */
+   if (consts->GLSLVersion >= 400 &&
+       screen->get_shader_param(screen, PIPE_SHADER_GEOMETRY,
+                                PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) {
+      extensions->OES_geometry_shader = GL_TRUE;
+   }
+
    if (screen->fence_finish) {
       extensions->ARB_sync = GL_TRUE;
    }
@@ -1211,6 +1221,11 @@ void st_init_extensions(struct pipe_screen *screen,
       extensions->ARB_gpu_shader5 &&
       extensions->EXT_shader_integer_mix;
 
+   extensions->OES_texture_cube_map_array =
+      extensions->ARB_ES3_1_compatibility &&
+      extensions->OES_geometry_shader &&
+      extensions->ARB_texture_cube_map_array;
+
    extensions->OES_primitive_bounding_box = extensions->ARB_ES3_1_compatibility;
    consts->NoPrimitiveBoundingBoxOutput = true;
 }




More information about the mesa-commit mailing list