Module: Mesa Branch: main Commit: 06816cccb9eb9276158b062ef9c3a64ec0962da5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=06816cccb9eb9276158b062ef9c3a64ec0962da5
Author: Mike Blumenkrantz <[email protected]> Date: Thu Oct 5 12:56:10 2023 -0400 zink: don't check submit count for unflushed usage unflushed usage is unflushed regardless of the submit count and is critical for detecting multi-context synchronization fixes Wolfenstein: The New Order load screen deadlock Fixes: db12b881c7f ("zink: track/check submit info on resource batch usage") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25572> --- src/gallium/drivers/zink/zink_bo.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_bo.h b/src/gallium/drivers/zink/zink_bo.h index 3ee2ebd7211..d017107f23a 100644 --- a/src/gallium/drivers/zink/zink_bo.h +++ b/src/gallium/drivers/zink/zink_bo.h @@ -145,14 +145,15 @@ zink_bo_commit(struct zink_screen *screen, struct zink_resource *res, unsigned l static ALWAYS_INLINE bool zink_bo_has_unflushed_usage(const struct zink_bo *bo) { - return (zink_batch_usage_is_unflushed(bo->reads.u) && bo->reads.submit_count == bo->reads.u->submit_count) || - (zink_batch_usage_is_unflushed(bo->writes.u) && bo->writes.submit_count == bo->writes.u->submit_count); + return zink_batch_usage_is_unflushed(bo->reads.u) || + zink_batch_usage_is_unflushed(bo->writes.u); } static ALWAYS_INLINE bool zink_bo_has_usage(const struct zink_bo *bo) { - return (zink_batch_usage_exists(bo->reads.u) && bo->reads.submit_count == bo->reads.u->submit_count) || + return zink_bo_has_unflushed_usage(bo) || + (zink_batch_usage_exists(bo->reads.u) && bo->reads.submit_count == bo->reads.u->submit_count) || (zink_batch_usage_exists(bo->writes.u) && bo->writes.submit_count == bo->writes.u->submit_count); }
