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);
