zink: check for sampler view existence during zink_rebind_all_images()
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 20 Oct 2023 14:20:19 +0000 (10:20 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 24 Oct 2023 02:24:15 +0000 (02:24 +0000)
views with mutable formats do not get created immediately, which means
access of them must be checked first

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25829>

src/gallium/drivers/zink/zink_context.c

index ca228da..f8e742f 100644 (file)
@@ -4841,7 +4841,7 @@ zink_rebind_all_images(struct zink_context *ctx)
     for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       for (unsigned j = 0; j < ctx->di.num_sampler_views[i]; j++) {
          struct zink_sampler_view *sv = zink_sampler_view(ctx->sampler_views[i][j]);
-         if (!sv || sv->image_view->base.texture->target == PIPE_BUFFER)
+         if (!sv || sv->image_view->base.texture->target == PIPE_BUFFER || !sv->image_view)
             continue;
          struct zink_resource *res = zink_resource(sv->image_view->base.texture);
          if (res->obj != sv->image_view->obj) {