zink: add spirv interfaces for bo and image/sampler/push variables
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8985>
This commit is contained in:
parent
89580073f3
commit
a64fe5ae5b
|
@ -434,8 +434,12 @@ input_var_init(struct ntv_context *ctx, struct nir_variable *var)
|
||||||
|
|
||||||
if (var->name)
|
if (var->name)
|
||||||
spirv_builder_emit_name(&ctx->builder, var_id, var->name);
|
spirv_builder_emit_name(&ctx->builder, var_id, var->name);
|
||||||
if (var->data.mode == nir_var_mem_push_const)
|
if (var->data.mode == nir_var_mem_push_const) {
|
||||||
ctx->push_const_var = var_id;
|
ctx->push_const_var = var_id;
|
||||||
|
|
||||||
|
assert(ctx->num_entry_ifaces < ARRAY_SIZE(ctx->entry_ifaces));
|
||||||
|
ctx->entry_ifaces[ctx->num_entry_ifaces++] = var_id;
|
||||||
|
}
|
||||||
return var_id;
|
return var_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -829,6 +833,8 @@ emit_image(struct ntv_context *ctx, struct nir_variable *var)
|
||||||
_mesa_hash_table_insert(ctx->image_vars, key, var);
|
_mesa_hash_table_insert(ctx->image_vars, key, var);
|
||||||
emit_access_decorations(ctx, var, var_id);
|
emit_access_decorations(ctx, var, var_id);
|
||||||
}
|
}
|
||||||
|
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, 0);
|
spirv_builder_emit_descriptor_set(&ctx->builder, var_id, 0);
|
||||||
int binding = zink_binding(ctx->stage,
|
int binding = zink_binding(ctx->stage,
|
||||||
|
@ -949,6 +955,8 @@ emit_bo(struct ntv_context *ctx, struct nir_variable *var)
|
||||||
assert(ctx->num_ubos < ARRAY_SIZE(ctx->ubos));
|
assert(ctx->num_ubos < ARRAY_SIZE(ctx->ubos));
|
||||||
ctx->ubos[ctx->num_ubos++] = var_id;
|
ctx->ubos[ctx->num_ubos++] = var_id;
|
||||||
}
|
}
|
||||||
|
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, 0);
|
spirv_builder_emit_descriptor_set(&ctx->builder, var_id, 0);
|
||||||
int binding = zink_binding(ctx->stage,
|
int binding = zink_binding(ctx->stage,
|
||||||
|
|
Loading…
Reference in New Issue