diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 90ae9238460..8474f840514 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -977,6 +977,7 @@ resource_create(struct pipe_screen *pscreen, res->obj->vkusage = cdt->swapchain->scci.imageUsage; res->base.b.bind |= PIPE_BIND_DISPLAY_TARGET; res->optimal_tiling = true; + res->swapchain = true; } if (res->obj->is_buffer) { res->base.buffer_id_unique = util_idalloc_mt_alloc(&screen->buffer_ids); diff --git a/src/gallium/drivers/zink/zink_resource.h b/src/gallium/drivers/zink/zink_resource.h index fd04c950931..3381463aa35 100644 --- a/src/gallium/drivers/zink/zink_resource.h +++ b/src/gallium/drivers/zink/zink_resource.h @@ -152,6 +152,7 @@ struct zink_resource { }; }; + bool swapchain; bool dmabuf_acquire; unsigned dt_stride; @@ -218,7 +219,7 @@ zink_resource_has_binds(const struct zink_resource *res) static inline bool zink_is_swapchain(const struct zink_resource *res) { - return (res->base.b.bind & PIPE_BIND_DISPLAY_TARGET) > 0; + return res->swapchain; } #ifndef __cplusplus