From: Neil Roberts Date: Thu, 29 Jan 2015 14:59:49 +0000 (+0000) Subject: i965/skl: Force a BINDING_TABLE_POINTER_* after push constant command X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a7eec6d620a333b722157cf1a2865b050d210aad;p=mesa.git 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 Reviewed-by: Kenneth Graunke --- 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; }