diff options
author | Neil Roberts <[email protected]> | 2015-01-29 14:59:49 +0000 |
---|---|---|
committer | Neil Roberts <[email protected]> | 2015-01-30 12:25:13 +0000 |
commit | a7eec6d620a333b722157cf1a2865b050d210aad (patch) | |
tree | b2e05e856daea0312b4282f7495458e1a26e3dc5 /src/mesa/drivers/dri/i965/gen7_vs_state.c | |
parent | 083fb215e1afeeed0d2483e6242b0d7313191923 (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]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen7_vs_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_vs_state.c | 7 |
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; } |