gen8/cmd_buffer: Don't push CS constants if there aren't any

Issuing MEDIA_CURB_LOAD with a size of zero causes GPU hangs on BDW.
This commit is contained in:
Jason Ekstrand 2015-12-10 18:56:15 -08:00
parent 3893e11f4b
commit 21cf55ab54
1 changed files with 5 additions and 3 deletions

View File

@ -525,9 +525,11 @@ flush_compute_descriptor_set(struct anv_cmd_buffer *cmd_buffer)
unsigned reg_aligned_constant_size = ALIGN(push_constant_data_size, 32);
unsigned push_constant_regs = reg_aligned_constant_size / 32;
anv_batch_emit(&cmd_buffer->batch, GENX(MEDIA_CURBE_LOAD),
.CURBETotalDataLength = push_state.alloc_size,
.CURBEDataStartAddress = push_state.offset);
if (push_state.alloc_size) {
anv_batch_emit(&cmd_buffer->batch, GENX(MEDIA_CURBE_LOAD),
.CURBETotalDataLength = push_state.alloc_size,
.CURBEDataStartAddress = push_state.offset);
}
struct anv_state state =
anv_state_pool_emit(&device->dynamic_state_pool,