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