summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Roberts <[email protected]>2015-01-29 14:59:49 +0000
committerNeil Roberts <[email protected]>2015-01-30 12:25:13 +0000
commita7eec6d620a333b722157cf1a2865b050d210aad (patch)
treeb2e05e856daea0312b4282f7495458e1a26e3dc5
parent083fb215e1afeeed0d2483e6242b0d7313191923 (diff)
i965/skl: Force a BINDING_TABLE_POINTER_* after push constant command
According to the SKL bspec the 3DSTATE_CONSTANT_* commands only take effect on the next corresponding 3DSTATE_BINDING_TABLE_POINTER_* command. This patch just makes it set the BRW_NEW_SURFACES state when uploading the push constants to ensure the binding tables will be updated. This fixes the fbo-blending-formats Piglit test and possibly others. Reviewed-by: Kristian Høgsberg <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/gen7_vs_state.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_vs_state.c b/src/mesa/drivers/dri/i965/gen7_vs_state.c
index 404dd20efec..0e9b4fe83ca 100644
--- a/src/mesa/drivers/dri/i965/gen7_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_vs_state.c
@@ -60,6 +60,13 @@ gen7_upload_constant_state(struct brw_context *brw,
}
ADVANCE_BATCH();
+
+ /* On SKL+ the new constants don't take effect until the next corresponding
+ * 3DSTATE_BINDING_TABLE_POINTER_* command is parsed so we need to ensure
+ * that is sent
+ */
+ if (brw->gen >= 9)
+ brw->state.dirty.brw |= BRW_NEW_SURFACES;
}