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

Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Apr 19 10:06:40 2022 -0400

zink: rework swapchain object check for acquires

this is more accurate

Reviewed-by: Adam Jackson <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16038>

---

 src/gallium/drivers/zink/zink_blit.c    |  2 +-
 src/gallium/drivers/zink/zink_clear.c   |  2 +-
 src/gallium/drivers/zink/zink_context.c | 12 ++++++------
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_blit.c 
b/src/gallium/drivers/zink/zink_blit.c
index 5a996202f73..d0d2c4e349d 100644
--- a/src/gallium/drivers/zink/zink_blit.c
+++ b/src/gallium/drivers/zink/zink_blit.c
@@ -293,7 +293,7 @@ zink_blit(struct pipe_context *pctx,
    struct zink_resource *src = zink_resource(info->src.resource);
    struct zink_resource *dst = zink_resource(info->dst.resource);
    bool needs_present_readback = false;
-   if (dst->obj->dt)
+   if (zink_is_swapchain(dst))
       zink_kopper_acquire(ctx, dst, UINT64_MAX);
 
    if (src_desc == dst_desc ||
diff --git a/src/gallium/drivers/zink/zink_clear.c 
b/src/gallium/drivers/zink/zink_clear.c
index 50fcae752bb..afbc3c5ad57 100644
--- a/src/gallium/drivers/zink/zink_clear.c
+++ b/src/gallium/drivers/zink/zink_clear.c
@@ -154,7 +154,7 @@ clear_color_no_rp(struct zink_context *ctx, struct 
zink_resource *res, const uni
    color.uint32[2] = pcolor->ui[2];
    color.uint32[3] = pcolor->ui[3];
 
-   if (res->obj->dt)
+   if (zink_is_swapchain(res))
       zink_kopper_acquire(ctx, res, UINT64_MAX);
    if (zink_resource_image_needs_barrier(res, VK_IMAGE_LAYOUT_GENERAL, 0, 0) &&
        zink_resource_image_needs_barrier(res, 
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 0, 0))
diff --git a/src/gallium/drivers/zink/zink_context.c 
b/src/gallium/drivers/zink/zink_context.c
index 6e8b4b582a5..85eca16ada4 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -806,7 +806,7 @@ zink_create_sampler_view(struct pipe_context *pctx, struct 
pipe_resource *pres,
          templ.u.tex.last_layer = state->u.tex.last_layer;
       }
 
-      if (res->obj->dt)
+      if (zink_is_swapchain(res))
          zink_kopper_acquire(ctx, res, UINT64_MAX);
 
       ivci = create_ivci(screen, res, &templ, state->target);
@@ -2160,7 +2160,7 @@ setup_framebuffer(struct zink_context *ctx)
       if (!ctx->fb_state.cbufs[i])
          continue;
       struct zink_resource *res = 
zink_resource(ctx->fb_state.cbufs[i]->texture);
-      if (res->obj->dt) {
+      if (zink_is_swapchain(res)) {
          has_swapchain = true;
          zink_kopper_acquire(ctx, res, UINT64_MAX);
          zink_surface_swapchain_update(ctx, 
zink_csurface(ctx->fb_state.cbufs[i]));
@@ -2199,7 +2199,7 @@ prep_fb_attachment(struct zink_context *ctx, struct 
zink_surface *surf, unsigned
 
    VkAccessFlags access;
    VkPipelineStageFlags pipeline;
-   if (res->obj->dt) {
+   if (zink_is_swapchain(res)) {
       zink_kopper_acquire(ctx, res, UINT64_MAX);
       zink_surface_swapchain_update(ctx, surf);
       if (!i)
@@ -2652,7 +2652,7 @@ unbind_fb_surface(struct zink_context *ctx, struct 
pipe_surface *surf, unsigned
    struct zink_resource *res = zink_resource(surf->texture);
    if (changed) {
       if (zink_fb_clear_enabled(ctx, idx)) {
-         if (res->obj->dt) {
+         if (zink_is_swapchain(res)) {
             zink_kopper_acquire(ctx, res, UINT64_MAX);
             zink_surface_swapchain_update(ctx, zink_csurface(surf));
          }
@@ -3511,12 +3511,12 @@ zink_copy_image_buffer(struct zink_context *ctx, struct 
zink_resource *dst, stru
    bool buf2img = buf == src;
 
    if (buf2img) {
-      if (img->obj->dt)
+      if (zink_is_swapchain(img))
          zink_kopper_acquire(ctx, img, UINT64_MAX);
       zink_resource_image_barrier(ctx, img, 
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 0, 0);
       zink_resource_buffer_barrier(ctx, buf, VK_ACCESS_TRANSFER_READ_BIT, 
VK_PIPELINE_STAGE_TRANSFER_BIT);
    } else {
-      if (img->obj->dt)
+      if (zink_is_swapchain(img))
          zink_kopper_acquire_readback(ctx, img);
       zink_resource_image_barrier(ctx, img, 
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, 0, 0);
       zink_resource_buffer_barrier(ctx, buf, VK_ACCESS_TRANSFER_WRITE_BIT, 
VK_PIPELINE_STAGE_TRANSFER_BIT);

Reply via email to