summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe/lp_rast.h
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-12-04 11:50:40 -0700
committerBrian Paul <[email protected]>2009-12-04 11:50:43 -0700
commitb1659b9213f3eeee440590dfe379f0d193948307 (patch)
tree7aa9c3419c3debad517a3d9b33ff21989f9396b2 /src/gallium/drivers/llvmpipe/lp_rast.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.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.h15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h
index 435993d44d2..e9a1fa49add 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast.h
@@ -55,18 +55,13 @@ struct lp_rast_state {
};
-/* Coefficients necessary to run the shader at a given location:
+
+/**
+ * Coefficients necessary to run the shader at a given location.
+ * First coefficient is position.
+ * These pointers point into the bin data buffer.
*/
struct lp_rast_shader_inputs {
-
- /* Current rasterizer state:
- */
- const struct lp_rast_state *state;
-
- /* Attribute interpolation:
- * First coefficient is position.
- * These pointers point into the bin data buffer.
- */
float (*a0)[4];
float (*dadx)[4];
float (*dady)[4];