mesa: Allow GL_EXT_geometry_shader and GL_EXT_geometry_point_size
authorIan Romanick <ian.d.romanick@intel.com>
Mon, 23 May 2016 20:31:29 +0000 (13:31 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 26 Aug 2016 22:03:14 +0000 (15:03 -0700)
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/compiler/glsl/builtin_variables.cpp
src/compiler/glsl/glsl_parser_extras.cpp
src/compiler/glsl/glsl_parser_extras.h
src/mapi/glapi/gen/es_EXT.xml
src/mesa/main/extensions_table.h
src/mesa/main/tests/dispatch_sanity.cpp

index cb5f7301c51759fa377869df4a901463ba710dcd..d4ea6607b461da9ab1583e60a426fe77eb7072c5 100644 (file)
@@ -1273,7 +1273,8 @@ builtin_variable_generator::generate_varyings()
       if (!state->es_shader ||
           state->stage == MESA_SHADER_VERTEX ||
           (state->stage == MESA_SHADER_GEOMETRY &&
-           state->OES_geometry_point_size_enable) ||
+           (state->OES_geometry_point_size_enable ||
+            state->EXT_geometry_point_size_enable)) ||
           ((state->stage == MESA_SHADER_TESS_CTRL ||
             state->stage == MESA_SHADER_TESS_EVAL) &&
            (state->OES_tessellation_point_size_enable ||
index 2337eaea2488fc97be4c8da357a89625ccaee5fb..b5c5fdc574c94afdcfa024c372ba62b2688b5e4c 100644 (file)
@@ -652,6 +652,8 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
    EXT(EXT_blend_func_extended),
    EXT(EXT_draw_buffers),
    EXT(EXT_clip_cull_distance),
+   EXT(EXT_geometry_point_size),
+   EXT(EXT_geometry_shader),
    EXT(EXT_gpu_shader5),
    EXT(EXT_separate_shader_objects),
    EXT(EXT_shader_framebuffer_fetch),
index f813609249441559d4a31d29997d79522470ee91..7092281a2b49a891423454be9c8f8af4beed2fd1 100644 (file)
@@ -277,6 +277,7 @@ struct _mesa_glsl_parse_state {
       return OES_shader_io_blocks_enable ||
              EXT_shader_io_blocks_enable ||
              OES_geometry_shader_enable ||
+             EXT_geometry_shader_enable ||
              OES_tessellation_shader_enable ||
              EXT_tessellation_shader_enable ||
 
@@ -285,7 +286,8 @@ struct _mesa_glsl_parse_state {
 
    bool has_geometry_shader() const
    {
-      return OES_geometry_shader_enable || is_version(150, 320);
+      return OES_geometry_shader_enable || EXT_geometry_shader_enable ||
+             is_version(150, 320);
    }
 
    bool has_tessellation_shader() const
@@ -701,6 +703,10 @@ struct _mesa_glsl_parse_state {
    bool EXT_clip_cull_distance_warn;
    bool EXT_draw_buffers_enable;
    bool EXT_draw_buffers_warn;
+   bool EXT_geometry_point_size_enable;
+   bool EXT_geometry_point_size_warn;
+   bool EXT_geometry_shader_enable;
+   bool EXT_geometry_shader_warn;
    bool EXT_gpu_shader5_enable;
    bool EXT_gpu_shader5_warn;
    bool EXT_separate_shader_objects_enable;
index 929e0e7c0a826135f4dd0f76fed35e5a72bc39f2..6f2d6431fcd291e826cdbed6a41e95b6d3348e2a 100644 (file)
 
 </category>
 
+<category name="GL_EXT_geometry_shader" number="177">
+    <!-- The rest of the bits for this are below in OES_geometry_shader. -->
+    <function name="FramebufferTextureEXT" alias="FramebufferTexture" es2="3.1">
+        <param name="target" type="GLenum"/>
+        <param name="attachment" type="GLenum"/>
+        <param name="texture" type="GLuint"/>
+        <param name="level" type="GLint"/>
+    </function>
+</category>
+
 <category name="GL_EXT_texture_border_clamp" number="182">
 
     <!-- The *TexParameter* functions are added in EXT_texture_integer -->
index c6fdd2c4cc669a8569c2e71ed4624ece01bc9ca6..9d0677af4991af9976ac3c392f17132292c1cb29 100644 (file)
@@ -209,6 +209,8 @@ EXT(EXT_framebuffer_multisample             , EXT_framebuffer_multisample
 EXT(EXT_framebuffer_multisample_blit_scaled , EXT_framebuffer_multisample_blit_scaled, GLL, GLC,  x ,  x , 2011)
 EXT(EXT_framebuffer_object                  , dummy_true                             , GLL,  x ,  x ,  x , 2000)
 EXT(EXT_framebuffer_sRGB                    , EXT_framebuffer_sRGB                   , GLL, GLC,  x ,  x , 1998)
+EXT(EXT_geometry_point_size                 , OES_geometry_shader                    ,  x ,  x ,  x ,  31, 2015)
+EXT(EXT_geometry_shader                     , OES_geometry_shader                    ,  x ,  x ,  x ,  31, 2015)
 EXT(EXT_gpu_program_parameters              , EXT_gpu_program_parameters             , GLL,  x ,  x ,  x , 2006)
 EXT(EXT_gpu_shader4                         , EXT_gpu_shader4                        , GLL, GLC,  x ,  x , 2006)
 EXT(EXT_gpu_shader5                         , ARB_gpu_shader5                        ,  x ,  x ,  x ,  31, 2014)
index a0bdd178cef6ed065756696b22a3ba36a6149423..c0db287a02885f564ea122dab1f42f53f323704a 100644 (file)
@@ -2600,6 +2600,10 @@ const struct function gles31_functions_possible[] = {
    /* GL_OES_geometry_shader */
    { "glFramebufferTextureOES", 31, -1},
 
+   /* GL_EXT_geometry_shader */
+   // We check for the aliased OES version above
+   // { "glFramebufferTextureEXT", 31, -1},
+
    /* GL_OES_tessellation_shader */
    { "glPatchParameteriOES", 31, -1 },