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 <krh@bitplanet.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Neil Roberts
2015-01-29 14:59:49 +00:00
parent 083fb215e1
commit a7eec6d620

View File

@@ -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;
}