summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_state_derived.h
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-02-13 17:17:52 -0700
committerBrian Paul <[email protected]>2009-02-13 17:18:36 -0700
commitc51c822ee02cb47ddba46da668577d51b7c02831 (patch)
tree905cafdc5a02f07aa67fc04e66a7fb1734abec20 /src/gallium/drivers/r300/r300_state_derived.h
parent74b6d55864b9264323a09856781f655e453b182b (diff)
i965: rewrite the code for handling shader subroutine calls
Previously, the prog_instruction::Data field was used to map original Mesa instructions to brw instructions in order to resolve subroutine calls. This was a rather tangled mess. Plus it's an obstacle to implementing dynamic allocation/growing of the instruction buffer (it's still a fixed size). Mesa's GLSL compiler emits a label for each subroutine and CAL instruction. Now we use those labels to patch the subroutine calls after code generation has been done. We just keep a list of all CAL instructions that needs patching and a list of all subroutine labels. It's a simple matter to resolve them. This also consolidates some redundant post-emit code between brw_vs_emit.c and brw_wm_glsl.c and removes some loops that cleared the prog_instruction::Data fields at the end. Plus, a bunch of new comments.
Diffstat (limited to 'src/gallium/drivers/r300/r300_state_derived.h')
0 files changed, 0 insertions, 0 deletions