mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
anv: Flush before invalidate aux map in copy and video engines
BSpec: 43904
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 46f5359238 ("anv: Invalidate aux map for copy/video engine")
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35700>
This commit is contained in:
parent
e68f81eaf6
commit
4618a99a4c
1 changed files with 13 additions and 8 deletions
|
|
@ -1607,12 +1607,6 @@ genX(invalidate_aux_map)(struct anv_batch *batch,
|
|||
lri.DataDWord = 1;
|
||||
}
|
||||
|
||||
/* Wa_16018063123 - emit fast color dummy blit before MI_FLUSH_DW. */
|
||||
if (intel_needs_workaround(device->info, 16018063123) &&
|
||||
engine_class == INTEL_ENGINE_CLASS_COPY) {
|
||||
genX(batch_emit_fast_color_dummy_blit)(batch, device);
|
||||
}
|
||||
|
||||
/* HSD 22012751911: SW Programming sequence when issuing aux invalidation:
|
||||
*
|
||||
* "Poll Aux Invalidation bit once the invalidation is set
|
||||
|
|
@ -1886,8 +1880,19 @@ genX(cmd_buffer_apply_pipe_flushes)(struct anv_cmd_buffer *cmd_buffer)
|
|||
if (anv_cmd_buffer_is_blitter_queue(cmd_buffer) ||
|
||||
anv_cmd_buffer_is_video_queue(cmd_buffer)) {
|
||||
if (bits & ANV_PIPE_INVALIDATE_BITS) {
|
||||
genX(invalidate_aux_map)(&cmd_buffer->batch, cmd_buffer->device,
|
||||
cmd_buffer->queue_family->engine_class, bits);
|
||||
if (bits & ANV_PIPE_AUX_TABLE_INVALIDATE_BIT) {
|
||||
if (anv_cmd_buffer_is_video_queue(cmd_buffer) || GFX_VERx10 == 125) {
|
||||
/* Wa_16018063123 - emit fast color dummy blit before MI_FLUSH_DW. */
|
||||
if (intel_needs_workaround(cmd_buffer->device->info, 16018063123) &&
|
||||
anv_cmd_buffer_is_blitter_queue(cmd_buffer))
|
||||
genX(batch_emit_fast_color_dummy_blit)(&cmd_buffer->batch, cmd_buffer->device);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MI_FLUSH_DW), mi_flush);
|
||||
}
|
||||
|
||||
genX(invalidate_aux_map)(&cmd_buffer->batch, cmd_buffer->device,
|
||||
cmd_buffer->queue_family->engine_class, bits);
|
||||
}
|
||||
bits &= ~ANV_PIPE_INVALIDATE_BITS;
|
||||
}
|
||||
cmd_buffer->state.pending_pipe_bits = bits;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue