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;