Module: Mesa Branch: main Commit: e111d3241a0cb769616de211b3a9fc1e1fcf9ce1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e111d3241a0cb769616de211b3a9fc1e1fcf9ce1
Author: Jordan Justen <[email protected]> Date: Fri Aug 4 12:55:15 2023 -0700 anvil,hasvk: Use intel_flush_range_no_fence to flush command buffers Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22379> --- src/intel/vulkan/anv_batch_chain.c | 5 +++-- src/intel/vulkan_hasvk/anv_batch_chain.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_batch_chain.c b/src/intel/vulkan/anv_batch_chain.c index 24d93a1c9a2..b3afc5ebd93 100644 --- a/src/intel/vulkan/anv_batch_chain.c +++ b/src/intel/vulkan/anv_batch_chain.c @@ -1456,9 +1456,10 @@ anv_cmd_buffer_clflush(struct anv_cmd_buffer **cmd_buffers, for (uint32_t i = 0; i < num_cmd_buffers; i++) { u_vector_foreach(bbo, &cmd_buffers[i]->seen_bbos) { - for (uint32_t l = 0; l < (*bbo)->length; l += CACHELINE_SIZE) - __builtin_ia32_clflush((*bbo)->bo->map + l); + intel_flush_range_no_fence((*bbo)->bo->map, (*bbo)->length); } } + + __builtin_ia32_mfence(); #endif } diff --git a/src/intel/vulkan_hasvk/anv_batch_chain.c b/src/intel/vulkan_hasvk/anv_batch_chain.c index a294b495b13..4dd013c485d 100644 --- a/src/intel/vulkan_hasvk/anv_batch_chain.c +++ b/src/intel/vulkan_hasvk/anv_batch_chain.c @@ -1903,10 +1903,10 @@ setup_execbuf_for_cmd_buffers(struct anv_execbuf *execbuf, __builtin_ia32_mfence(); for (uint32_t i = 0; i < num_cmd_buffers; i++) { u_vector_foreach(bbo, &cmd_buffers[i]->seen_bbos) { - for (uint32_t l = 0; l < (*bbo)->length; l += CACHELINE_SIZE) - __builtin_ia32_clflush((*bbo)->bo->map + l); + intel_flush_range_no_fence((*bbo)->bo->map, (*bbo)->length); } } + __builtin_ia32_mfence(); } struct anv_batch *batch = &cmd_buffers[0]->batch;
