Added a few new ctx->Const. fields for shader-related limits.
This commit is contained in:
@@ -1048,6 +1048,7 @@ _mesa_init_constants( GLcontext *ctx )
|
|||||||
ctx->Const.VertexProgram.MaxLocalParams = MAX_PROGRAM_LOCAL_PARAMS;
|
ctx->Const.VertexProgram.MaxLocalParams = MAX_PROGRAM_LOCAL_PARAMS;
|
||||||
ctx->Const.VertexProgram.MaxEnvParams = MAX_NV_VERTEX_PROGRAM_PARAMS;
|
ctx->Const.VertexProgram.MaxEnvParams = MAX_NV_VERTEX_PROGRAM_PARAMS;
|
||||||
ctx->Const.VertexProgram.MaxAddressRegs = MAX_VERTEX_PROGRAM_ADDRESS_REGS;
|
ctx->Const.VertexProgram.MaxAddressRegs = MAX_VERTEX_PROGRAM_ADDRESS_REGS;
|
||||||
|
ctx->Const.VertexProgram.MaxUniformComponents = MAX_VERTEX_UNIFORM_COMPONENTS;
|
||||||
init_natives(&ctx->Const.VertexProgram);
|
init_natives(&ctx->Const.VertexProgram);
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_ARB_fragment_program
|
#if FEATURE_ARB_fragment_program
|
||||||
@@ -1061,6 +1062,7 @@ _mesa_init_constants( GLcontext *ctx )
|
|||||||
ctx->Const.FragmentProgram.MaxLocalParams = MAX_PROGRAM_LOCAL_PARAMS;
|
ctx->Const.FragmentProgram.MaxLocalParams = MAX_PROGRAM_LOCAL_PARAMS;
|
||||||
ctx->Const.FragmentProgram.MaxEnvParams = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
|
ctx->Const.FragmentProgram.MaxEnvParams = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
|
||||||
ctx->Const.FragmentProgram.MaxAddressRegs = MAX_FRAGMENT_PROGRAM_ADDRESS_REGS;
|
ctx->Const.FragmentProgram.MaxAddressRegs = MAX_FRAGMENT_PROGRAM_ADDRESS_REGS;
|
||||||
|
ctx->Const.FragmentProgram.MaxUniformComponents = MAX_FRAGMENT_UNIFORM_COMPONENTS;
|
||||||
init_natives(&ctx->Const.FragmentProgram);
|
init_natives(&ctx->Const.FragmentProgram);
|
||||||
#endif
|
#endif
|
||||||
ctx->Const.MaxProgramMatrices = MAX_PROGRAM_MATRICES;
|
ctx->Const.MaxProgramMatrices = MAX_PROGRAM_MATRICES;
|
||||||
@@ -1087,6 +1089,11 @@ _mesa_init_constants( GLcontext *ctx )
|
|||||||
ctx->Const.MaxRenderbufferSize = MAX_WIDTH;
|
ctx->Const.MaxRenderbufferSize = MAX_WIDTH;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if FEATURE_ARB_vertex_shader
|
||||||
|
ctx->Const.MaxVertexTextureImageUnits = MAX_VERTEX_TEXTURE_IMAGE_UNITS;
|
||||||
|
ctx->Const.MaxVaryingFloats = MAX_VARYING_FLOATS;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* sanity checks */
|
/* sanity checks */
|
||||||
ASSERT(ctx->Const.MaxTextureUnits == MIN2(ctx->Const.MaxTextureImageUnits,
|
ASSERT(ctx->Const.MaxTextureUnits == MIN2(ctx->Const.MaxTextureImageUnits,
|
||||||
ctx->Const.MaxTextureCoordUnits));
|
ctx->Const.MaxTextureCoordUnits));
|
||||||
|
@@ -1863,7 +1863,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
|
|||||||
break;
|
break;
|
||||||
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
|
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
|
||||||
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
|
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
|
||||||
params[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS);
|
params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents);
|
||||||
break;
|
break;
|
||||||
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
|
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
|
||||||
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
|
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
|
||||||
@@ -1871,15 +1871,15 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
|
|||||||
break;
|
break;
|
||||||
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
|
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
||||||
params[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS);
|
params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxUniformComponents);
|
||||||
break;
|
break;
|
||||||
case GL_MAX_VARYING_FLOATS_ARB:
|
case GL_MAX_VARYING_FLOATS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
||||||
params[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS);
|
params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVaryingFloats);
|
||||||
break;
|
break;
|
||||||
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
|
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
||||||
params[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS);
|
params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVertexTextureImageUnits);
|
||||||
break;
|
break;
|
||||||
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
|
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
|
||||||
@@ -3687,7 +3687,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
|
|||||||
break;
|
break;
|
||||||
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
|
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
|
||||||
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
|
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
|
||||||
params[0] = (GLfloat)(MAX_FRAGMENT_UNIFORM_COMPONENTS);
|
params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents);
|
||||||
break;
|
break;
|
||||||
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
|
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
|
||||||
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
|
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
|
||||||
@@ -3695,15 +3695,15 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
|
|||||||
break;
|
break;
|
||||||
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
|
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
||||||
params[0] = (GLfloat)(MAX_VERTEX_UNIFORM_COMPONENTS);
|
params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxUniformComponents);
|
||||||
break;
|
break;
|
||||||
case GL_MAX_VARYING_FLOATS_ARB:
|
case GL_MAX_VARYING_FLOATS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
||||||
params[0] = (GLfloat)(MAX_VARYING_FLOATS);
|
params[0] = (GLfloat)(ctx->Const.MaxVaryingFloats);
|
||||||
break;
|
break;
|
||||||
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
|
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
||||||
params[0] = (GLfloat)(MAX_VERTEX_TEXTURE_IMAGE_UNITS);
|
params[0] = (GLfloat)(ctx->Const.MaxVertexTextureImageUnits);
|
||||||
break;
|
break;
|
||||||
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
|
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
|
||||||
@@ -5511,7 +5511,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
|
|||||||
break;
|
break;
|
||||||
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
|
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
|
||||||
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
|
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
|
||||||
params[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS;
|
params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;
|
||||||
break;
|
break;
|
||||||
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
|
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
|
||||||
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
|
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
|
||||||
@@ -5519,15 +5519,15 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
|
|||||||
break;
|
break;
|
||||||
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
|
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
||||||
params[0] = MAX_VERTEX_UNIFORM_COMPONENTS;
|
params[0] = ctx->Const.VertexProgram.MaxUniformComponents;
|
||||||
break;
|
break;
|
||||||
case GL_MAX_VARYING_FLOATS_ARB:
|
case GL_MAX_VARYING_FLOATS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
||||||
params[0] = MAX_VARYING_FLOATS;
|
params[0] = ctx->Const.MaxVaryingFloats;
|
||||||
break;
|
break;
|
||||||
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
|
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
||||||
params[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS;
|
params[0] = ctx->Const.MaxVertexTextureImageUnits;
|
||||||
break;
|
break;
|
||||||
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
|
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
|
||||||
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
|
||||||
|
@@ -978,17 +978,19 @@ StateVars = [
|
|||||||
|
|
||||||
# GL_ARB_fragment_shader
|
# GL_ARB_fragment_shader
|
||||||
( "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", GLint,
|
( "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", GLint,
|
||||||
["MAX_FRAGMENT_UNIFORM_COMPONENTS"], "", ["ARB_fragment_shader"] ),
|
["ctx->Const.FragmentProgram.MaxUniformComponents"], "",
|
||||||
|
["ARB_fragment_shader"] ),
|
||||||
( "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB", GLenum,
|
( "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB", GLenum,
|
||||||
["ctx->Hint.FragmentShaderDerivative"], "", ["ARB_fragment_shader"] ),
|
["ctx->Hint.FragmentShaderDerivative"], "", ["ARB_fragment_shader"] ),
|
||||||
|
|
||||||
# GL_ARB_vertex_shader
|
# GL_ARB_vertex_shader
|
||||||
( "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB", GLint,
|
( "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB", GLint,
|
||||||
["MAX_VERTEX_UNIFORM_COMPONENTS"], "", ["ARB_vertex_shader"] ),
|
["ctx->Const.VertexProgram.MaxUniformComponents"], "",
|
||||||
|
["ARB_vertex_shader"] ),
|
||||||
( "GL_MAX_VARYING_FLOATS_ARB", GLint,
|
( "GL_MAX_VARYING_FLOATS_ARB", GLint,
|
||||||
["MAX_VARYING_FLOATS"], "", ["ARB_vertex_shader"] ),
|
["ctx->Const.MaxVaryingFloats"], "", ["ARB_vertex_shader"] ),
|
||||||
( "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB", GLint,
|
( "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB", GLint,
|
||||||
["MAX_VERTEX_TEXTURE_IMAGE_UNITS"], "", ["ARB_vertex_shader"] ),
|
["ctx->Const.MaxVertexTextureImageUnits"], "", ["ARB_vertex_shader"] ),
|
||||||
( "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB", GLint,
|
( "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB", GLint,
|
||||||
["MAX_COMBINED_TEXTURE_IMAGE_UNITS"], "", ["ARB_vertex_shader"] )
|
["MAX_COMBINED_TEXTURE_IMAGE_UNITS"], "", ["ARB_vertex_shader"] )
|
||||||
]
|
]
|
||||||
|
@@ -2311,6 +2311,8 @@ struct gl_program_constants
|
|||||||
GLuint MaxNativeTemps;
|
GLuint MaxNativeTemps;
|
||||||
GLuint MaxNativeAddressRegs; /* vertex program only, for now */
|
GLuint MaxNativeAddressRegs; /* vertex program only, for now */
|
||||||
GLuint MaxNativeParameters;
|
GLuint MaxNativeParameters;
|
||||||
|
/* For shaders */
|
||||||
|
GLuint MaxUniformComponents;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -2360,6 +2362,9 @@ struct gl_constants
|
|||||||
/* GL_EXT_framebuffer_object */
|
/* GL_EXT_framebuffer_object */
|
||||||
GLuint MaxColorAttachments;
|
GLuint MaxColorAttachments;
|
||||||
GLuint MaxRenderbufferSize;
|
GLuint MaxRenderbufferSize;
|
||||||
|
/* GL_ARB_vertex_shader */
|
||||||
|
GLuint MaxVertexTextureImageUnits;
|
||||||
|
GLuint MaxVaryingFloats;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user