Module: Mesa
Branch: main
Commit: 4807c1e173e8aef4cba7ba60e6ed38248cb4d7a9
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4807c1e173e8aef4cba7ba60e6ed38248cb4d7a9

Author: Rob Clark <robdcl...@chromium.org>
Date:   Sun Nov 12 11:08:28 2023 -0800

freedreno: Always attach bo to submit

Even if app triggers undefined behaviour by using a rsc on multiple
contexts without a flush, we still should attach the bo to the batch.

Fixes: b43e5aec0d2c ("freedreno/batch: Move submit bo tracking to batch")
Signed-off-by: Rob Clark <robdcl...@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26162>

---

 src/gallium/drivers/freedreno/freedreno_batch.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_batch.c 
b/src/gallium/drivers/freedreno/freedreno_batch.c
index 6af2c7af5b0..9c458e33e7d 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch.c
+++ b/src/gallium/drivers/freedreno/freedreno_batch.c
@@ -549,8 +549,10 @@ fd_batch_resource_write(struct fd_batch *batch, struct 
fd_resource *rsc)
           * ctx dependencies and let the app have the undefined behavior
           * it asked for:
           */
-         if (track->write_batch->ctx != batch->ctx)
+         if (track->write_batch->ctx != batch->ctx) {
+            fd_ringbuffer_attach_bo(batch->draw, rsc->bo);
             return;
+         }
 
          flush_write_batch(rsc);
       }
@@ -599,6 +601,7 @@ fd_batch_resource_read_slowpath(struct fd_batch *batch, 
struct fd_resource *rsc)
           * by avoiding cross-ctx dependencies and let the app have the
           * undefined behavior it asked for:
           */
+         fd_ringbuffer_attach_bo(batch->draw, rsc->bo);
          return;
       }
 

Reply via email to