zink: set ntv variable descriptor sets during compile phase
Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624>
This commit is contained in:
committed by
Marge Bot
parent
c1cdf30a11
commit
2f3b09e422
@@ -821,7 +821,7 @@ emit_image(struct ntv_context *ctx, struct nir_variable *var)
|
||||
assert(ctx->num_entry_ifaces < ARRAY_SIZE(ctx->entry_ifaces));
|
||||
ctx->entry_ifaces[ctx->num_entry_ifaces++] = var_id;
|
||||
|
||||
spirv_builder_emit_descriptor_set(&ctx->builder, var_id, is_sampler ? ZINK_DESCRIPTOR_TYPE_SAMPLER_VIEW : ZINK_DESCRIPTOR_TYPE_IMAGE);
|
||||
spirv_builder_emit_descriptor_set(&ctx->builder, var_id, var->data.descriptor_set);
|
||||
spirv_builder_emit_binding(&ctx->builder, var_id, var->data.binding);
|
||||
}
|
||||
|
||||
@@ -911,7 +911,7 @@ emit_bo(struct ntv_context *ctx, struct nir_variable *var)
|
||||
assert(ctx->num_entry_ifaces < ARRAY_SIZE(ctx->entry_ifaces));
|
||||
ctx->entry_ifaces[ctx->num_entry_ifaces++] = var_id;
|
||||
|
||||
spirv_builder_emit_descriptor_set(&ctx->builder, var_id, ssbo ? ZINK_DESCRIPTOR_TYPE_SSBO : ZINK_DESCRIPTOR_TYPE_UBO);
|
||||
spirv_builder_emit_descriptor_set(&ctx->builder, var_id, var->data.descriptor_set);
|
||||
spirv_builder_emit_binding(&ctx->builder, var_id, var->data.binding);
|
||||
}
|
||||
|
||||
|
||||
@@ -724,6 +724,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
|
||||
const struct glsl_type *type = glsl_without_array(var->type);
|
||||
if (var->data.mode == nir_var_mem_ubo) {
|
||||
ztype = ZINK_DESCRIPTOR_TYPE_UBO;
|
||||
var->data.descriptor_set = ztype;
|
||||
var->data.binding = zink_binding(nir->info.stage,
|
||||
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||||
var->data.driver_location);
|
||||
@@ -738,6 +739,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
|
||||
ret->num_bindings[ztype]++;
|
||||
} else if (var->data.mode == nir_var_mem_ssbo) {
|
||||
ztype = ZINK_DESCRIPTOR_TYPE_SSBO;
|
||||
var->data.descriptor_set = ztype;
|
||||
var->data.binding = zink_binding(nir->info.stage,
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
var->data.driver_location);
|
||||
@@ -752,6 +754,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
|
||||
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);
|
||||
ztype = zink_desc_type_from_vktype(vktype);
|
||||
var->data.descriptor_set = ztype;
|
||||
var->data.driver_location = var->data.binding;
|
||||
var->data.binding = zink_binding(nir->info.stage,
|
||||
vktype,
|
||||
|
||||
Reference in New Issue
Block a user