Mesa (main): zink/kopper: add a mechanism for checking swapchain status

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 27 22:20:25 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Apr 27 09:56:29 2022 -0400

zink/kopper: add a mechanism for checking swapchain status

Reviewed-by: Adam Jackson <ajax at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16038>

---

 src/gallium/drivers/zink/zink_kopper.c | 11 +++++++++++
 src/gallium/drivers/zink/zink_kopper.h |  3 ++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/zink/zink_kopper.c b/src/gallium/drivers/zink/zink_kopper.c
index 33de8bd17ea..53431b3d4ae 100644
--- a/src/gallium/drivers/zink/zink_kopper.c
+++ b/src/gallium/drivers/zink/zink_kopper.c
@@ -789,3 +789,14 @@ zink_kopper_fixup_depth_buffer(struct zink_context *ctx)
    zink_surface_reference(screen, &csurf->surf, cz->surf);
    pipe_surface_release(&ctx->base, &psurf);
 }
+
+bool
+zink_kopper_check(struct pipe_resource *pres)
+{
+   struct zink_resource *res = zink_resource(pres);
+   assert(pres->bind & PIPE_BIND_DISPLAY_TARGET);
+   if (!res->obj->dt)
+      return false;
+   struct kopper_displaytarget *cdt = kopper_displaytarget(res->obj->dt);
+   return !cdt->is_kill;
+}
diff --git a/src/gallium/drivers/zink/zink_kopper.h b/src/gallium/drivers/zink/zink_kopper.h
index 77c102a261d..6d5249ebb17 100644
--- a/src/gallium/drivers/zink/zink_kopper.h
+++ b/src/gallium/drivers/zink/zink_kopper.h
@@ -115,5 +115,6 @@ bool
 zink_kopper_update(struct pipe_screen *pscreen, struct pipe_resource *pres, int *w, int *h);
 void
 zink_kopper_fixup_depth_buffer(struct zink_context *ctx);
-
+bool
+zink_kopper_check(struct pipe_resource *pres);
 #endif



More information about the mesa-commit mailing list