Module: Mesa Branch: asm-shader-rework-3 Commit: 8c7b09c8e1443f6216770f988c5ff3b652d22dff URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c7b09c8e1443f6216770f988c5ff3b652d22dff
Author: Ian Romanick <[email protected]> Date: Fri Oct 2 22:34:00 2009 -0700 ARB prog parser: Properly track address register bindings --- src/mesa/shader/program_parse.y | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 704382c..79a5bc9 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -782,7 +782,7 @@ instResultAddr: addrReg optionalMask optionalCcMask init_dst_reg(& $$); $$.File = PROGRAM_ADDRESS; - $$.Index = 0; + $$.Index = $1->binding; $$.WriteMask = $2.mask; $$.CondMask = $3.CondMask; $$.CondSwizzle = $3.CondSwizzle; @@ -799,6 +799,7 @@ addrUseVNS: addrReg { init_src_reg(& $$); $$.Base.File = PROGRAM_ADDRESS; + $$.Base.Index = $1->binding; $$.Symbol = $1; } ; @@ -977,6 +978,8 @@ srcReg: USED_IDENTIFIER /* temporaryReg | progParamSingle */ $$.Base.RelAddr = 1; $$.Base.Index = $3.Base.Index; + $$.Base.AddrReg = $3.Base.AddrReg; + $$.Base.AddrComponent = $3.Base.AddrComponent; $$.Symbol = $1; } else { $$.Base.Index = $1->param_binding_begin + $3.Base.Index; @@ -1057,12 +1060,10 @@ progParamArrayAbs: INTEGER progParamArrayRel: addrReg addrComponent addrRegRelOffset { - /* FINISHME: Add support for multiple address registers. - */ init_src_reg(& $$); $$.Base.RelAddr = 1; $$.Base.Index = $3; - $$.Base.AddrReg = 0; + $$.Base.AddrReg = $1->binding; $$.Base.AddrComponent = $2; } ; @@ -2531,8 +2532,7 @@ declare_variable(struct asm_parser_state *state, char *name, enum asm_type t, return NULL; } - /* FINISHME: Add support for multiple address registers. - */ + s->binding = state->prog->NumAddressRegs; state->prog->NumAddressRegs++; break; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
