From 769c6dce2321c8ff7018c8fface16709d3123670 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 1 Jan 2021 11:32:42 -0500 Subject: [PATCH] zink: move zink_binding() to compiler.c Reviewed-by: Adam Jackson Part-of: --- .../drivers/zink/nir_to_spirv/nir_to_spirv.c | 32 ---------------------- .../drivers/zink/nir_to_spirv/nir_to_spirv.h | 3 -- src/gallium/drivers/zink/zink_compiler.c | 32 ++++++++++++++++++++++ src/gallium/drivers/zink/zink_compiler.h | 2 ++ 4 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index 813fe7c..8896864 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -670,38 +670,6 @@ type_to_dim(enum glsl_sampler_dim gdim, bool *is_ms) return SpvDim2D; } -uint32_t -zink_binding(gl_shader_stage stage, VkDescriptorType type, int index) -{ - if (stage == MESA_SHADER_NONE) { - unreachable("not supported"); - } else { - switch (type) { - case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: - case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: - assert(index < PIPE_MAX_CONSTANT_BUFFERS); - return (stage * PIPE_MAX_CONSTANT_BUFFERS) + index; - - case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: - case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: - assert(index < PIPE_MAX_SAMPLERS); - return (stage * PIPE_MAX_SAMPLERS) + index; - - case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: - assert(index < PIPE_MAX_SHADER_BUFFERS); - return (stage * PIPE_MAX_SHADER_BUFFERS) + index; - - case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: - case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: - assert(index < PIPE_MAX_SHADER_IMAGES); - return (stage * PIPE_MAX_SHADER_IMAGES) + index; - - default: - unreachable("unexpected type"); - } - } -} - static inline SpvImageFormat get_image_format(enum pipe_format format) { diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.h b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.h index d10239c..c029c36 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.h +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.h @@ -49,9 +49,6 @@ nir_to_spirv(struct nir_shader *s, const struct zink_so_info *so_info, void spirv_shader_delete(struct spirv_shader *s); -uint32_t -zink_binding(gl_shader_stage stage, VkDescriptorType type, int index); - static inline bool type_is_counter(const struct glsl_type *type) { diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 6c031e0..b86e9dc 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -862,3 +862,35 @@ zink_shader_tcs_create(struct zink_context *ctx, struct zink_shader *vs) ret->is_generated = true; return ret; } + +uint32_t +zink_binding(gl_shader_stage stage, VkDescriptorType type, int index) +{ + if (stage == MESA_SHADER_NONE) { + unreachable("not supported"); + } else { + switch (type) { + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: + assert(index < PIPE_MAX_CONSTANT_BUFFERS); + return (stage * PIPE_MAX_CONSTANT_BUFFERS) + index; + + case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: + case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: + assert(index < PIPE_MAX_SAMPLERS); + return (stage * PIPE_MAX_SAMPLERS) + index; + + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: + assert(index < PIPE_MAX_SHADER_BUFFERS); + return (stage * PIPE_MAX_SHADER_BUFFERS) + index; + + case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: + case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + assert(index < PIPE_MAX_SHADER_IMAGES); + return (stage * PIPE_MAX_SHADER_IMAGES) + index; + + default: + unreachable("unexpected type"); + } + } +} diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h index e7b0b78..75aa5f6 100644 --- a/src/gallium/drivers/zink/zink_compiler.h +++ b/src/gallium/drivers/zink/zink_compiler.h @@ -111,4 +111,6 @@ zink_shader_descriptor_is_buffer(struct zink_shader *zs, enum zink_descriptor_ty zs->bindings[type][i].type == VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER; } +uint32_t +zink_binding(gl_shader_stage stage, VkDescriptorType type, int index);; #endif -- 2.7.4