summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2016-05-23 13:31:29 -0700
committerIan Romanick <[email protected]>2016-08-26 15:03:14 -0700
commit1a72fbf9e6743368dc8e7664adf095af8ec5b6d8 (patch)
treea68e16054e34d6d92552b06002ee8be9fafae0c7
parent658e90f9a8c0c68e0bee5007cf3f654cc95188b6 (diff)
mesa: Allow GL_EXT_geometry_shader and GL_EXT_geometry_point_size
Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/compiler/glsl/builtin_variables.cpp3
-rw-r--r--src/compiler/glsl/glsl_parser_extras.cpp2
-rw-r--r--src/compiler/glsl/glsl_parser_extras.h8
-rw-r--r--src/mapi/glapi/gen/es_EXT.xml10
-rw-r--r--src/mesa/main/extensions_table.h2
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp4
6 files changed, 27 insertions, 2 deletions
diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp
index cb5f7301c51..d4ea6607b46 100644
--- a/src/compiler/glsl/builtin_variables.cpp
+++ b/src/compiler/glsl/builtin_variables.cpp
@@ -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 ||
diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
index 2337eaea248..b5c5fdc574c 100644
--- a/src/compiler/glsl/glsl_parser_extras.cpp
+++ b/src/compiler/glsl/glsl_parser_extras.cpp
@@ -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),
diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h
index f8136092494..7092281a2b4 100644
--- a/src/compiler/glsl/glsl_parser_extras.h
+++ b/src/compiler/glsl/glsl_parser_extras.h
@@ -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;
diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml
index 929e0e7c0a8..6f2d6431fcd 100644
--- a/src/mapi/glapi/gen/es_EXT.xml
+++ b/src/mapi/glapi/gen/es_EXT.xml
@@ -881,6 +881,16 @@
</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 -->
diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
index c6fdd2c4cc6..9d0677af499 100644
--- a/src/mesa/main/extensions_table.h
+++ b/src/mesa/main/extensions_table.h
@@ -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)
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index a0bdd178cef..c0db287a028 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -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 },