From 28b13038d84db1c4e1e56e15d310b30ddffcb7bd Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 22 Jul 2009 16:03:32 -0700 Subject: [PATCH] parser: Ensure that param_binding_type is set correctly --- src/mesa/shader/program_parse.tab.c | 4 ++++ src/mesa/shader/program_parse.y | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 40d48d597b9..0ea0e241066 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -4702,6 +4702,7 @@ initialize_symbol_from_state(struct gl_program *prog, memcpy(state_tokens, tokens, sizeof(state_tokens)); param_var->type = at_param; + param_var->param_binding_type = PROGRAM_STATE_VAR; /* If we are adding a STATE_MATRIX that has multiple rows, we need to * unroll it and call add_state_reference() for each row @@ -4753,6 +4754,8 @@ initialize_symbol_from_param(struct gl_program *prog, || (state_tokens[1] == STATE_LOCAL)); param_var->type = at_param; + param_var->param_binding_type = (state_tokens[1] == STATE_ENV) + ? PROGRAM_ENV_PARAM : PROGRAM_LOCAL_PARAM; /* If we are adding a STATE_ENV or STATE_LOCAL that has multiple elements, * we need to unroll it and call add_state_reference() for each row @@ -4792,6 +4795,7 @@ initialize_symbol_from_const(struct gl_program *prog, NULL, 0x0); param_var->type = at_param; + param_var->param_binding_type = PROGRAM_CONSTANT; if (param_var->param_binding_begin == ~0U) param_var->param_binding_begin = idx; diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 81b06ac13c9..a0bec96924a 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -1918,6 +1918,7 @@ initialize_symbol_from_state(struct gl_program *prog, memcpy(state_tokens, tokens, sizeof(state_tokens)); param_var->type = at_param; + param_var->param_binding_type = PROGRAM_STATE_VAR; /* If we are adding a STATE_MATRIX that has multiple rows, we need to * unroll it and call add_state_reference() for each row @@ -1969,6 +1970,8 @@ initialize_symbol_from_param(struct gl_program *prog, || (state_tokens[1] == STATE_LOCAL)); param_var->type = at_param; + param_var->param_binding_type = (state_tokens[1] == STATE_ENV) + ? PROGRAM_ENV_PARAM : PROGRAM_LOCAL_PARAM; /* If we are adding a STATE_ENV or STATE_LOCAL that has multiple elements, * we need to unroll it and call add_state_reference() for each row @@ -2008,6 +2011,7 @@ initialize_symbol_from_const(struct gl_program *prog, NULL, 0x0); param_var->type = at_param; + param_var->param_binding_type = PROGRAM_CONSTANT; if (param_var->param_binding_begin == ~0U) param_var->param_binding_begin = idx; -- 2.30.2