summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast_priv.h
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-12-04 11:50:40 -0700
committerBrian Paul <brianp@vmware.com>2009-12-04 11:50:43 -0700
commitb1659b9213f3eeee440590dfe379f0d193948307 (patch)
tree7aa9c3419c3debad517a3d9b33ff21989f9396b2 /src/gallium/drivers/llvmpipe/lp_rast_priv.h
parent9dca0100489c7a7c02af77da42a39dbe1560d7e2 (diff)
llvmpipe: bin state-change commands
Previously, each triangle had a pointer to the state to use for shading. Now we insert state-change commands into the bins. When we execute one of those commands we just update a 'current state' pointer and use that pointer when calling the jit shader. When inserting state-change commands into a bin we check if the previous command was also a state-change command and simply replace it. This avoids accumulating useless/redundant state-change commands.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_rast_priv.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast_priv.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast_priv.h b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
index 4c0dfe2282..98111edff7 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast_priv.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
@@ -86,6 +86,8 @@ struct lp_rasterizer
unsigned y;
unsigned mask;
} blocks[256];
+
+ const struct lp_rast_state *current_state;
};