anv/cmd_buffer: skip vkCmdDraw*() on broken command buffers
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -1696,6 +1696,9 @@ void genX(CmdDraw)(
|
||||
struct anv_pipeline *pipeline = cmd_buffer->state.pipeline;
|
||||
const struct brw_vs_prog_data *vs_prog_data = get_vs_prog_data(pipeline);
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
|
||||
genX(cmd_buffer_flush_state)(cmd_buffer);
|
||||
|
||||
if (vs_prog_data->uses_basevertex || vs_prog_data->uses_baseinstance)
|
||||
@@ -1726,6 +1729,9 @@ void genX(CmdDrawIndexed)(
|
||||
struct anv_pipeline *pipeline = cmd_buffer->state.pipeline;
|
||||
const struct brw_vs_prog_data *vs_prog_data = get_vs_prog_data(pipeline);
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
|
||||
genX(cmd_buffer_flush_state)(cmd_buffer);
|
||||
|
||||
if (vs_prog_data->uses_basevertex || vs_prog_data->uses_baseinstance)
|
||||
@@ -1766,6 +1772,9 @@ void genX(CmdDrawIndirect)(
|
||||
struct anv_bo *bo = buffer->bo;
|
||||
uint32_t bo_offset = buffer->offset + offset;
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
|
||||
genX(cmd_buffer_flush_state)(cmd_buffer);
|
||||
|
||||
if (vs_prog_data->uses_basevertex || vs_prog_data->uses_baseinstance)
|
||||
@@ -1800,6 +1809,9 @@ void genX(CmdDrawIndexedIndirect)(
|
||||
struct anv_bo *bo = buffer->bo;
|
||||
uint32_t bo_offset = buffer->offset + offset;
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
|
||||
genX(cmd_buffer_flush_state)(cmd_buffer);
|
||||
|
||||
/* TODO: We need to stomp base vertex to 0 somehow */
|
||||
|
||||
Reference in New Issue
Block a user