summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/gen6_gs_state.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-02-23 17:42:20 -0800
committerEric Anholt <eric@anholt.net>2010-02-25 10:53:08 -0800
commit078e7b62f69658e40aedea59cf6f005162a29f83 (patch)
tree79f068f88ab1fa68ab3cef652b49fdfdcf819526 /src/mesa/drivers/dri/i965/gen6_gs_state.c
parentc791f8a1e532834ae7a517c042e9efe262b62233 (diff)
i965: Emit SNB FF unit state after the unit's push constants.
There's a BUN for the WM unit that says WM_STATE must immediately follow PS_CONSTANTS, which this addresses. Presumably other units are roughly the same, too.
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen6_gs_state.c')
-rw-r--r--src/mesa/drivers/dri/i965/gen6_gs_state.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_gs_state.c b/src/mesa/drivers/dri/i965/gen6_gs_state.c
index 9a4a13810a..4032605a85 100644
--- a/src/mesa/drivers/dri/i965/gen6_gs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_gs_state.c
@@ -38,6 +38,17 @@ upload_gs_state(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
+ /* Disable all the constant buffers. */
+ BEGIN_BATCH(5);
+ OUT_BATCH(CMD_3D_CONSTANT_GS_STATE << 16 | (5 - 2));
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ ADVANCE_BATCH();
+
+ intel_batchbuffer_emit_mi_flush(intel->batch);
+
if (brw->gs.prog_bo) {
BEGIN_BATCH(7);
OUT_BATCH(CMD_3D_GS_STATE << 16 | (7 - 2));
@@ -69,17 +80,6 @@ upload_gs_state(struct brw_context *brw)
OUT_BATCH(0);
ADVANCE_BATCH();
}
-
- /* Disable all the constant buffers. */
- BEGIN_BATCH(5);
- OUT_BATCH(CMD_3D_CONSTANT_GS_STATE << 16 | (5 - 2));
- OUT_BATCH(0);
- OUT_BATCH(0);
- OUT_BATCH(0);
- OUT_BATCH(0);
- ADVANCE_BATCH();
-
- intel_batchbuffer_emit_mi_flush(intel->batch);
}
const struct brw_tracked_state gen6_gs_state = {