anv: add barrier flags handling for preprocess buffers

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31384>
This commit is contained in:
Lionel Landwerlin 2024-06-05 16:46:03 +03:00 committed by Marge Bot
parent 71732d79ac
commit d1ef313466

View file

@ -4599,6 +4599,12 @@ anv_pipe_flush_bits_for_access_flags(struct anv_cmd_buffer *cmd_buffer,
*/
pipe_bits |= ANV_PIPE_CS_STALL_BIT | ANV_PIPE_INVALIDATE_BITS;
break;
case VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT:
/* Preprocess writes are all going through the data cache */
pipe_bits |= ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT;
pipe_bits |= ANV_PIPE_HDC_PIPELINE_FLUSH_BIT;
pipe_bits |= ANV_PIPE_DATA_CACHE_FLUSH_BIT;
break;
default:
break; /* Nothing to do */
}
@ -4761,6 +4767,10 @@ anv_pipe_invalidate_bits_for_access_flags(struct anv_cmd_buffer *cmd_buffer,
case VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT:
pipe_bits |= ANV_PIPE_STATE_CACHE_INVALIDATE_BIT;
break;
case VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT:
/* Preprocess can generate push constant data */
pipe_bits |= ANV_PIPE_CONSTANT_CACHE_INVALIDATE_BIT;
break;
default:
break; /* Nothing to do */
}