Mesa (main): d3d12: Don't wait for *all* batches when synchronizing a resource

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 9 18:44:52 UTC 2021


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

Author: Jesse Natalie <jenatali at microsoft.com>
Date:   Wed Nov  3 15:25:18 2021 -0700

d3d12: Don't wait for *all* batches when synchronizing a resource

Reviewed By: Bill Kristiansen <billkris at microsoft.com>

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

---

 src/gallium/drivers/d3d12/d3d12_resource.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/d3d12/d3d12_resource.cpp b/src/gallium/drivers/d3d12/d3d12_resource.cpp
index 7965865f786..4246001e698 100644
--- a/src/gallium/drivers/d3d12/d3d12_resource.cpp
+++ b/src/gallium/drivers/d3d12/d3d12_resource.cpp
@@ -90,9 +90,11 @@ d3d12_resource_wait_idle(struct d3d12_context *ctx,
       d3d12_flush_cmdlist_and_wait(ctx);
    } else {
       d3d12_foreach_submitted_batch(ctx, batch) {
-         d3d12_reset_batch(ctx, batch, PIPE_TIMEOUT_INFINITE);
-         if (!resource_is_busy(ctx, res))
-            break;
+         if (d3d12_batch_has_references(batch, res->bo)) {
+            d3d12_reset_batch(ctx, batch, PIPE_TIMEOUT_INFINITE);
+            if (!resource_is_busy(ctx, res))
+               break;
+         }
       }
    }
 }



More information about the mesa-commit mailing list