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:
parent
dbbcf4e780
commit
769c6dce23
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue