anv: pull Wa_14016118574 out of some loop not changing state
The WA is meant to be here to apply some state that is not propagated
properly inside the HW. But if you have a loop like :
for ( ... ) {
emit(3DPRIMITIVE, some param);
}
You're not really changing any state, just push more draws into the
pipeline.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: f2645229c2 ("anv: implement Wa_14016118574")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21660>
This commit is contained in:
committed by
Marge Bot
parent
d82e8e01c8
commit
6ee7a2ecfa
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user