summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_state_invariant.c
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-03-07 01:53:42 -0800
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-03-07 13:28:02 -0800
commit826297462571350b7da7ae88bb4405212991c533 (patch)
treebc24bfa868ca6ac495e9f3a9a8c953af4fea5447 /src/gallium/drivers/r300/r300_state_invariant.c
parent460e5b11c98e07d12c655e5bf2f1e993d05bd7a1 (diff)
r300-gallium: Move a few registers.
These shouldn't be written if not on TCL HW.
Diffstat (limited to 'src/gallium/drivers/r300/r300_state_invariant.c')
-rw-r--r--src/gallium/drivers/r300/r300_state_invariant.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/r300_state_invariant.c b/src/gallium/drivers/r300/r300_state_invariant.c
index c7c20c2de5..5646d22835 100644
--- a/src/gallium/drivers/r300/r300_state_invariant.c
+++ b/src/gallium/drivers/r300/r300_state_invariant.c
@@ -34,9 +34,8 @@ void r300_emit_invariant_state(struct r300_context* r300)
struct r300_capabilities* caps = r300_screen(r300->context.screen)->caps;
CS_LOCALS(r300);
- BEGIN_CS(26);
- /* Amount of time to wait for vertex fetches in PVS */
- OUT_CS_REG(VAP_PVS_VTX_TIMEOUT_REG, 0xffff);
+ BEGIN_CS(24 + (caps->has_tcl ? 2: 0));
+
/* Various GB enables */
OUT_CS_REG(R300_GB_ENABLE, R300_GB_POINT_STUFF_ENABLE |
R300_GB_LINE_STUFF_ENABLE | R300_GB_TRIANGLE_STUFF_ENABLE);
@@ -69,5 +68,12 @@ void r300_emit_invariant_state(struct r300_context* r300)
OUT_CS_REG(R300_FG_FOG_COLOR_G, 0x00000000);
OUT_CS_REG(R300_FG_FOG_COLOR_B, 0x00000000);
OUT_CS_REG(R300_FG_DEPTH_SRC, 0x00000000);
+
+ /* TCL-only stuff */
+ if (caps->has_tcl) {
+ /* Amount of time to wait for vertex fetches in PVS */
+ OUT_CS_REG(VAP_PVS_VTX_TIMEOUT_REG, 0xffff);
+ }
+
END_CS;
}