diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 52f40c25680..9fc80fdda1e 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -4226,12 +4226,15 @@ void genX(CmdDrawMultiEXT)( prim.ExtendedParameter1 = firstInstance; prim.ExtendedParameter2 = i; } -#if GFX_VERx10 == 125 - genX(emit_dummy_post_sync_op)(cmd_buffer, draw->vertexCount); -#endif } #endif +#if GFX_VERx10 == 125 + genX(emit_dummy_post_sync_op)(cmd_buffer, + drawCount == 0 ? 0 : + pVertexInfo[drawCount - 1].vertexCount); +#endif + update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL); trace_intel_end_draw_multi(&cmd_buffer->trace, count); @@ -4434,12 +4437,15 @@ void genX(CmdDrawMultiIndexedEXT)( prim.ExtendedParameter1 = firstInstance; prim.ExtendedParameter2 = i; } -#if GFX_VERx10 == 125 - genX(emit_dummy_post_sync_op)(cmd_buffer, draw->indexCount); -#endif } #endif +#if GFX_VERx10 == 125 + genX(emit_dummy_post_sync_op)(cmd_buffer, + drawCount == 0 ? 0 : + pIndexInfo[drawCount - 1].indexCount); +#endif + update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, RANDOM); trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count); @@ -4686,7 +4692,7 @@ emit_indirect_draws(struct anv_cmd_buffer *cmd_buffer, } #if GFX_VERx10 == 125 - genX(emit_dummy_post_sync_op)(cmd_buffer, 1); + genX(emit_dummy_post_sync_op)(cmd_buffer, 1); #endif update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);