From a8b71f2db86d63fb1dbc2da88b7e1e326b1b90b2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 6 Aug 2018 08:09:12 -0400 Subject: [PATCH] mesa: add ctx->Const.MaxGeometryShaderInvocations MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit radeonsi wants to report a different value Reviewed-by: Ian Romanick Tested-by: Dieter Nützel --- src/compiler/glsl/glsl_parser_extras.cpp | 3 ++- src/compiler/glsl/glsl_parser_extras.h | 1 + src/mesa/main/context.c | 1 + src/mesa/main/get_hash_params.py | 2 +- src/mesa/main/mtypes.h | 3 ++- 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp index 42ba88ffb9f..6c98290292a 100644 --- a/src/compiler/glsl/glsl_parser_extras.cpp +++ b/src/compiler/glsl/glsl_parser_extras.cpp @@ -118,6 +118,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx, this->Const.MaxVertexOutputComponents = ctx->Const.Program[MESA_SHADER_VERTEX].MaxOutputComponents; this->Const.MaxGeometryInputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxInputComponents; this->Const.MaxGeometryOutputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxOutputComponents; + this->Const.MaxGeometryShaderInvocations = ctx->Const.MaxGeometryShaderInvocations; this->Const.MaxFragmentInputComponents = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxInputComponents; this->Const.MaxGeometryTextureImageUnits = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits; this->Const.MaxGeometryOutputVertices = ctx->Const.MaxGeometryOutputVertices; @@ -1820,7 +1821,7 @@ set_shader_inout_layout(struct gl_shader *shader, &invocations, false)) { YYLTYPE loc = state->in_qualifier->invocations->get_location(); - if (invocations > MAX_GEOMETRY_SHADER_INVOCATIONS) { + if (invocations > state->Const.MaxGeometryShaderInvocations) { _mesa_glsl_error(&loc, state, "invocations (%d) exceeds " "GL_MAX_GEOMETRY_SHADER_INVOCATIONS", diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h index da44d37c15b..c80db42ea9b 100644 --- a/src/compiler/glsl/glsl_parser_extras.h +++ b/src/compiler/glsl/glsl_parser_extras.h @@ -493,6 +493,7 @@ struct _mesa_glsl_parse_state { unsigned MaxVertexOutputComponents; unsigned MaxGeometryInputComponents; unsigned MaxGeometryOutputComponents; + unsigned MaxGeometryShaderInvocations; unsigned MaxFragmentInputComponents; unsigned MaxGeometryTextureImageUnits; unsigned MaxGeometryOutputVertices; diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 7eea60f12a0..d82015dc936 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -633,6 +633,7 @@ _mesa_init_constants(struct gl_constants *consts, gl_api api) consts->Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS; consts->MaxGeometryOutputVertices = MAX_GEOMETRY_OUTPUT_VERTICES; consts->MaxGeometryTotalOutputComponents = MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS; + consts->MaxGeometryShaderInvocations = MAX_GEOMETRY_SHADER_INVOCATIONS; #ifdef DEBUG consts->GenerateTemporaryNames = true; diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py index 03409daa8e7..50046e4064e 100644 --- a/src/mesa/main/get_hash_params.py +++ b/src/mesa/main/get_hash_params.py @@ -642,7 +642,7 @@ descriptor=[ [ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM16(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_geometry_shader" ], # GL_ARB_gpu_shader5 / GL_OES_geometry_shader - [ "MAX_GEOMETRY_SHADER_INVOCATIONS", "CONST(MAX_GEOMETRY_SHADER_INVOCATIONS), extra_ARB_gpu_shader5_or_oes_geometry_shader" ], + [ "MAX_GEOMETRY_SHADER_INVOCATIONS", "CONTEXT_INT(Const.MaxGeometryShaderInvocations), extra_ARB_gpu_shader5_or_oes_geometry_shader" ], # GL_OES_primitive_bounding_box [ "PRIMITIVE_BOUNDING_BOX_ARB", "CONTEXT_FLOAT8(PrimitiveBoundingBox), extra_OES_primitive_bounding_box" ], diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 9fd577d9990..084510b2a24 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2451,7 +2451,7 @@ struct gl_shader_info GLint VerticesOut; /** * 0 - Invocations count not declared in shader, or - * 1 .. MAX_GEOMETRY_SHADER_INVOCATIONS + * 1 .. Const.MaxGeometryShaderInvocations */ GLint Invocations; /** @@ -3713,6 +3713,7 @@ struct gl_constants /** geometry shader */ GLuint MaxGeometryOutputVertices; GLuint MaxGeometryTotalOutputComponents; + GLuint MaxGeometryShaderInvocations; GLuint GLSLVersion; /**< Desktop GLSL version supported (ex: 120 = 1.20) */ GLuint GLSLVersionCompat; /**< Desktop compat GLSL version supported */ -- 2.30.2