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;

Reply via email to