From 53db19b57d41a5e6beea5cb5dff4f7f638ca7b50 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 24 Aug 2009 10:50:07 -0600 Subject: mesa: _mesa_layout_parameters() returns a boolean value --- src/mesa/shader/prog_parameter_layout.c | 12 ++++++++---- src/mesa/shader/prog_parameter_layout.h | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/prog_parameter_layout.c b/src/mesa/shader/prog_parameter_layout.c index 8f2b306220..1c37b3a7a5 100644 --- a/src/mesa/shader/prog_parameter_layout.c +++ b/src/mesa/shader/prog_parameter_layout.c @@ -106,7 +106,11 @@ copy_indirect_accessed_array(struct gl_program_parameter_list *src, } -int +/** + * XXX description??? + * \return GL_TRUE for success, GL_FALSE for failure + */ +GLboolean _mesa_layout_parameters(struct asm_parser_state *state) { struct gl_program_parameter_list *layout; @@ -128,12 +132,12 @@ _mesa_layout_parameters(struct asm_parser_state *state) */ if (!inst->SrcReg[i].Symbol->pass1_done) { const int new_begin = - copy_indirect_accessed_array(state->prog->Parameters, layout, + copy_indirect_accessed_array(state->prog->Parameters, layout, inst->SrcReg[i].Symbol->param_binding_begin, inst->SrcReg[i].Symbol->param_binding_length); if (new_begin < 0) { - return 0; + return GL_FALSE; } inst->SrcReg[i].Symbol->param_binding_begin = new_begin; @@ -209,5 +213,5 @@ _mesa_layout_parameters(struct asm_parser_state *state) _mesa_free_parameter_list(state->prog->Parameters); state->prog->Parameters = layout; - return 1; + return GL_TRUE; } diff --git a/src/mesa/shader/prog_parameter_layout.h b/src/mesa/shader/prog_parameter_layout.h index 1686170bab..99a7b6c726 100644 --- a/src/mesa/shader/prog_parameter_layout.h +++ b/src/mesa/shader/prog_parameter_layout.h @@ -36,6 +36,7 @@ extern unsigned _mesa_combine_swizzles(unsigned base, unsigned applied); struct asm_parser_state; -extern int _mesa_layout_parameters(struct asm_parser_state *state); + +extern GLboolean _mesa_layout_parameters(struct asm_parser_state *state); #endif /* PROG_PARAMETER_LAYOUT_H */ -- cgit v1.2.3 From 4cf27608bc069225bf91d47585e344a2c122e940 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 24 Aug 2009 11:05:11 -0600 Subject: ARB prog parser: use correct context limits --- src/mesa/shader/program_parse.y | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 89e8850212..e2e83e484f 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -2287,12 +2287,12 @@ _mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str, ? & ctx->Const.VertexProgram : & ctx->Const.FragmentProgram; - state->MaxTextureImageUnits = 16; - state->MaxTextureCoordUnits = 8; - state->MaxTextureUnits = 8; - state->MaxClipPlanes = 6; - state->MaxLights = 8; - state->MaxProgramMatrices = 8; + state->MaxTextureImageUnits = ctx->Const.MaxTextureImageUnits; + state->MaxTextureCoordUnits = ctx->Const.MaxTextureCoordUnits; + state->MaxTextureUnits = ctx->Const.MaxTextureUnits; + state->MaxClipPlanes = ctx->Const.MaxClipPlanes; + state->MaxLights = ctx->Const.MaxLights; + state->MaxProgramMatrices = ctx->Const.MaxProgramMatrices; state->state_param_enum = (target == GL_VERTEX_PROGRAM_ARB) ? STATE_VERTEX_PROGRAM : STATE_FRAGMENT_PROGRAM; -- cgit v1.2.3 From d8a3ada7fb0f50ce9241c452364d9dcc94eef5de Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 24 Aug 2009 11:59:58 -0700 Subject: ARB prog parser: Regenerate parser from previous commit --- src/mesa/shader/program_parse.tab.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index dbed448113..5c604c2fd1 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -5156,12 +5156,12 @@ _mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str, ? & ctx->Const.VertexProgram : & ctx->Const.FragmentProgram; - state->MaxTextureImageUnits = 16; - state->MaxTextureCoordUnits = 8; - state->MaxTextureUnits = 8; - state->MaxClipPlanes = 6; - state->MaxLights = 8; - state->MaxProgramMatrices = 8; + state->MaxTextureImageUnits = ctx->Const.MaxTextureImageUnits; + state->MaxTextureCoordUnits = ctx->Const.MaxTextureCoordUnits; + state->MaxTextureUnits = ctx->Const.MaxTextureUnits; + state->MaxClipPlanes = ctx->Const.MaxClipPlanes; + state->MaxLights = ctx->Const.MaxLights; + state->MaxProgramMatrices = ctx->Const.MaxProgramMatrices; state->state_param_enum = (target == GL_VERTEX_PROGRAM_ARB) ? STATE_VERTEX_PROGRAM : STATE_FRAGMENT_PROGRAM; -- cgit v1.2.3 From 0a24e5011171d71ae88ef0a43b4625ea8d37a917 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Mon, 24 Aug 2009 11:43:02 -0600 Subject: glsl: Silence gcc uninitialized variable warning. --- src/mesa/shader/slang/slang_builtin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/slang/slang_builtin.c b/src/mesa/shader/slang/slang_builtin.c index ad2e306c19..bef0f85653 100644 --- a/src/mesa/shader/slang/slang_builtin.c +++ b/src/mesa/shader/slang/slang_builtin.c @@ -436,7 +436,7 @@ emit_statevars(const char *name, int array_len, struct gl_program_parameter_list *paramList) { if (type->type == SLANG_SPEC_ARRAY) { - GLint i, pos; + GLint i, pos = -1; assert(array_len > 0); if (strcmp(name, "gl_ClipPlane") == 0) { tokens[0] = STATE_CLIPPLANE; -- cgit v1.2.3 From 4bccd693a72a0b42dffc849034263a68e779ca91 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 24 Aug 2009 12:48:01 -0700 Subject: ARB prog: Set error instead of falling through with incorrect value If a fragment program only parameter was queried of a vertex program (e.g., GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB) no error would be set and a random value would be returned. This caused 'glxinfo -l' to show the same values for GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB, GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB as for GL_MAX_PROGRAM_ENV_PARAMETERS_ARB. This is confusing and incorrect. --- src/mesa/shader/arbprogram.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/arbprogram.c b/src/mesa/shader/arbprogram.c index 39136efada..4d8cff0700 100644 --- a/src/mesa/shader/arbprogram.c +++ b/src/mesa/shader/arbprogram.c @@ -1001,6 +1001,9 @@ _mesa_GetProgramivARB(GLenum target, GLenum pname, GLint *params) _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivARB(pname)"); return; } + } else { + _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivARB(pname)"); + return; } } -- cgit v1.2.3