zink: directly reuse surface ivci when rebinding
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 13 May 2022 18:23:52 +0000 (14:23 -0400)
committerMarge Bot <emma+marge@anholt.net>
Sun, 15 May 2022 19:46:23 +0000 (19:46 +0000)
this is simpler and also fixes rebinding samplerviews which use
a levelCount > 1

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16508>

src/gallium/drivers/zink/zink_surface.c

index b4fab44..5e52c25 100644 (file)
@@ -342,8 +342,8 @@ zink_rebind_surface(struct zink_context *ctx, struct pipe_surface **psurface)
    if (surface->simage_view)
       return false;
    assert(!res->obj->dt);
-   VkImageViewCreateInfo ivci = create_ivci(screen,
-                                            zink_resource((*psurface)->texture), (*psurface), surface->base.texture->target);
+   VkImageViewCreateInfo ivci = surface->ivci;
+   ivci.image = res->obj->image;
    uint32_t hash = hash_ivci(&ivci);
 
    simple_mtx_lock(&res->surface_mtx);