From 5e436d9f2dbf714ca5d5d84aff50f2f7d56472eb Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Mon, 18 Jan 2021 17:48:27 +0100 Subject: [PATCH] zink: handle NULL views in zink_set_sampler_views Passing NULL for the views parameter should be the same as passing an array of NULL, according to the documentation. So let's respect that detail. This fixes a crash when using GALLIUM_HUD. Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan") Reviewed-By: Mike Blumenkrantz Part-of: (cherry picked from commit 333730405de28153f2378d498e45cb82024fc230) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_context.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 8fbb008134b..77959cb1aee 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -418,7 +418,7 @@ "description": "zink: handle NULL views in zink_set_sampler_views", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "8d46e35d16e3936968958bcab86d61967a673305" }, diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 0faac2de45b..32821a5da30 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -582,11 +582,11 @@ zink_set_sampler_views(struct pipe_context *pctx, struct pipe_sampler_view **views) { struct zink_context *ctx = zink_context(pctx); - assert(views); for (unsigned i = 0; i < num_views; ++i) { + struct pipe_sampler_view *pview = views ? views[i] : NULL; pipe_sampler_view_reference( &ctx->image_views[shader_type][start_slot + i], - views[i]); + pview); } ctx->num_image_views[shader_type] = start_slot + num_views; }