i965/skl: Always emit 3DSTATE_BINDING_TABLE_POINTERS_* on Skylake.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 29 Apr 2014 22:32:40 +0000 (15:32 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 3 Nov 2014 23:32:53 +0000 (15:32 -0800)
On SKL, 3DSTATE_CONSTANT_* command is not committed until we give
the corresponding 3DSTATE_BINDING_TABLE_POINTERS_* command.  If we
fail to do so, the constant buffers wont be read and push constants
will be wrong.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/drivers/dri/i965/brw_binding_tables.c

index 709cb9c7b8266f7a5b84e16890e5410e45cad0ec..cb50d3b8ddf7bdcfb5ae2976a580629a101b4fa1 100644 (file)
@@ -61,7 +61,7 @@ brw_upload_binding_table(struct brw_context *brw,
 
    if (prog_data->binding_table.size_bytes == 0) {
       /* There are no surfaces; skip making the binding table altogether. */
-      if (stage_state->bind_bo_offset == 0)
+      if (stage_state->bind_bo_offset == 0 && brw->gen < 9)
          return;
 
       stage_state->bind_bo_offset = 0;