From c4d00b9ca4e27cdf1668293c0866c8722c2fce88 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 17 Nov 2020 18:47:33 -0500 Subject: [PATCH] zink: handle image descriptors during zink_shader creation Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 4 ++-- src/gallium/drivers/zink/zink_compiler.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index cc2e178de92..01b5be7f6df 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -500,8 +500,8 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir, } else { assert(var->data.mode == nir_var_uniform); const struct glsl_type *type = glsl_without_array(var->type); - if (glsl_type_is_sampler(type)) { - VkDescriptorType vktype = zink_sampler_type(type); + if (glsl_type_is_sampler(type) || glsl_type_is_image(type)) { + VkDescriptorType vktype = glsl_type_is_image(type) ? zink_image_type(type) : zink_sampler_type(type); int binding = zink_binding(nir->info.stage, vktype, var->data.binding); diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h index afda418ebe2..66f02aba476 100644 --- a/src/gallium/drivers/zink/zink_compiler.h +++ b/src/gallium/drivers/zink/zink_compiler.h @@ -69,7 +69,7 @@ struct zink_shader { int binding; VkDescriptorType type; unsigned char size; - } bindings[PIPE_MAX_CONSTANT_BUFFERS + PIPE_MAX_SAMPLERS]; + } bindings[PIPE_MAX_CONSTANT_BUFFERS + PIPE_MAX_SAMPLERS + PIPE_MAX_SHADER_BUFFERS + PIPE_MAX_SHADER_IMAGES]; size_t num_bindings; struct set *programs;