zink: move zink_binding() to compiler.c

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624>
This commit is contained in:
Mike Blumenkrantz 2021-01-01 11:32:42 -05:00 committed by Marge Bot
parent dbbcf4e780
commit 769c6dce23
4 changed files with 34 additions and 35 deletions

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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");
}
}
}

View File

@ -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