mesa: add ctx->Const.MaxGeometryShaderInvocations
radeonsi wants to report a different value Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
This commit is contained in:
@@ -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.MaxVertexOutputComponents = ctx->Const.Program[MESA_SHADER_VERTEX].MaxOutputComponents;
|
||||||
this->Const.MaxGeometryInputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxInputComponents;
|
this->Const.MaxGeometryInputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxInputComponents;
|
||||||
this->Const.MaxGeometryOutputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxOutputComponents;
|
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.MaxFragmentInputComponents = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxInputComponents;
|
||||||
this->Const.MaxGeometryTextureImageUnits = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits;
|
this->Const.MaxGeometryTextureImageUnits = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits;
|
||||||
this->Const.MaxGeometryOutputVertices = ctx->Const.MaxGeometryOutputVertices;
|
this->Const.MaxGeometryOutputVertices = ctx->Const.MaxGeometryOutputVertices;
|
||||||
@@ -1820,7 +1821,7 @@ set_shader_inout_layout(struct gl_shader *shader,
|
|||||||
&invocations, false)) {
|
&invocations, false)) {
|
||||||
|
|
||||||
YYLTYPE loc = state->in_qualifier->invocations->get_location();
|
YYLTYPE loc = state->in_qualifier->invocations->get_location();
|
||||||
if (invocations > MAX_GEOMETRY_SHADER_INVOCATIONS) {
|
if (invocations > state->Const.MaxGeometryShaderInvocations) {
|
||||||
_mesa_glsl_error(&loc, state,
|
_mesa_glsl_error(&loc, state,
|
||||||
"invocations (%d) exceeds "
|
"invocations (%d) exceeds "
|
||||||
"GL_MAX_GEOMETRY_SHADER_INVOCATIONS",
|
"GL_MAX_GEOMETRY_SHADER_INVOCATIONS",
|
||||||
|
@@ -493,6 +493,7 @@ struct _mesa_glsl_parse_state {
|
|||||||
unsigned MaxVertexOutputComponents;
|
unsigned MaxVertexOutputComponents;
|
||||||
unsigned MaxGeometryInputComponents;
|
unsigned MaxGeometryInputComponents;
|
||||||
unsigned MaxGeometryOutputComponents;
|
unsigned MaxGeometryOutputComponents;
|
||||||
|
unsigned MaxGeometryShaderInvocations;
|
||||||
unsigned MaxFragmentInputComponents;
|
unsigned MaxFragmentInputComponents;
|
||||||
unsigned MaxGeometryTextureImageUnits;
|
unsigned MaxGeometryTextureImageUnits;
|
||||||
unsigned MaxGeometryOutputVertices;
|
unsigned MaxGeometryOutputVertices;
|
||||||
|
@@ -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->Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
|
||||||
consts->MaxGeometryOutputVertices = MAX_GEOMETRY_OUTPUT_VERTICES;
|
consts->MaxGeometryOutputVertices = MAX_GEOMETRY_OUTPUT_VERTICES;
|
||||||
consts->MaxGeometryTotalOutputComponents = MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS;
|
consts->MaxGeometryTotalOutputComponents = MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS;
|
||||||
|
consts->MaxGeometryShaderInvocations = MAX_GEOMETRY_SHADER_INVOCATIONS;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
consts->GenerateTemporaryNames = true;
|
consts->GenerateTemporaryNames = true;
|
||||||
|
@@ -642,7 +642,7 @@ descriptor=[
|
|||||||
[ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM16(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_geometry_shader" ],
|
[ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM16(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_geometry_shader" ],
|
||||||
|
|
||||||
# GL_ARB_gpu_shader5 / GL_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
|
# GL_OES_primitive_bounding_box
|
||||||
[ "PRIMITIVE_BOUNDING_BOX_ARB", "CONTEXT_FLOAT8(PrimitiveBoundingBox), extra_OES_primitive_bounding_box" ],
|
[ "PRIMITIVE_BOUNDING_BOX_ARB", "CONTEXT_FLOAT8(PrimitiveBoundingBox), extra_OES_primitive_bounding_box" ],
|
||||||
|
@@ -2451,7 +2451,7 @@ struct gl_shader_info
|
|||||||
GLint VerticesOut;
|
GLint VerticesOut;
|
||||||
/**
|
/**
|
||||||
* 0 - Invocations count not declared in shader, or
|
* 0 - Invocations count not declared in shader, or
|
||||||
* 1 .. MAX_GEOMETRY_SHADER_INVOCATIONS
|
* 1 .. Const.MaxGeometryShaderInvocations
|
||||||
*/
|
*/
|
||||||
GLint Invocations;
|
GLint Invocations;
|
||||||
/**
|
/**
|
||||||
@@ -3713,6 +3713,7 @@ struct gl_constants
|
|||||||
/** geometry shader */
|
/** geometry shader */
|
||||||
GLuint MaxGeometryOutputVertices;
|
GLuint MaxGeometryOutputVertices;
|
||||||
GLuint MaxGeometryTotalOutputComponents;
|
GLuint MaxGeometryTotalOutputComponents;
|
||||||
|
GLuint MaxGeometryShaderInvocations;
|
||||||
|
|
||||||
GLuint GLSLVersion; /**< Desktop GLSL version supported (ex: 120 = 1.20) */
|
GLuint GLSLVersion; /**< Desktop GLSL version supported (ex: 120 = 1.20) */
|
||||||
GLuint GLSLVersionCompat; /**< Desktop compat GLSL version supported */
|
GLuint GLSLVersionCompat; /**< Desktop compat GLSL version supported */
|
||||||
|
Reference in New Issue
Block a user