Mesa (master): tu: Fix DST_INCOHERENT_FLUSH copy/paste error

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 4 13:57:33 UTC 2020


Module: Mesa
Branch: master
Commit: 9e48e31fa544582682bf8fae26eabb9bba023dde
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9e48e31fa544582682bf8fae26eabb9bba023dde

Author: Connor Abbott <cwabbott0 at gmail.com>
Date:   Tue Jul  7 17:10:44 2020 +0200

tu: Fix DST_INCOHERENT_FLUSH copy/paste error

This was meant to handle incoherent accesses by always flushing them,
but it accidentally checked for the coherent variant instead. As a
result e.g. a vkCmdClearImage() followed by a renderpass using the image
didn't get any flushes, resulting in the same sort of corruption seen
with sysmem renderpass clears. This happened to be exposed via some
tests that used multiview.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6009>

---

 src/freedreno/vulkan/tu_cmd_buffer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index eb3f69a6e80..03130750d32 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -2317,8 +2317,8 @@ tu_flush_for_access(struct tu_cache_state *cache,
 #undef DST_FLUSH
 
 #define DST_INCOHERENT_FLUSH(domain, flush, invalidate) \
-   if (dst_mask & (TU_ACCESS_##domain##_READ |                 \
-                   TU_ACCESS_##domain##_WRITE)) {              \
+   if (dst_mask & (TU_ACCESS_##domain##_INCOHERENT_READ |      \
+                   TU_ACCESS_##domain##_INCOHERENT_WRITE)) {   \
       flush_bits |= TU_CMD_FLAG_##invalidate |                 \
           (cache->pending_flush_bits &                         \
            (TU_CMD_FLAG_ALL_FLUSH & ~TU_CMD_FLAG_##flush));    \



More information about the mesa-commit mailing list