microsoft/compiler: Fix sampler/texture array emission
Those need to be declared as sampler/SRV arrays, as we do for UAVs and CBVs. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13993>
This commit is contained in:
committed by
Marge Bot
parent
54c32aeba6
commit
678b94c2d8
@@ -934,7 +934,10 @@ emit_srv(struct ntd_context *ctx, nir_variable *var, unsigned count)
|
||||
res_type = DXIL_RES_SRV_TYPED;
|
||||
}
|
||||
const struct dxil_type *res_type_as_type = dxil_module_get_res_type(&ctx->mod, res_kind, comp_type, false /* readwrite */);
|
||||
res_type_as_type = dxil_module_get_array_type(&ctx->mod, res_type_as_type, count);
|
||||
|
||||
if (count > 1)
|
||||
res_type_as_type = dxil_module_get_array_type(&ctx->mod, res_type_as_type, count);
|
||||
|
||||
const struct dxil_mdnode *srv_meta = emit_srv_metadata(&ctx->mod, res_type_as_type, var->name,
|
||||
&layout, comp_type, res_kind);
|
||||
|
||||
@@ -1201,7 +1204,10 @@ emit_sampler(struct ntd_context *ctx, nir_variable *var, unsigned count)
|
||||
resource_array_layout layout = {id, binding, count, var->data.descriptor_set};
|
||||
const struct dxil_type *int32_type = dxil_module_get_int_type(&ctx->mod, 32);
|
||||
const struct dxil_type *sampler_type = dxil_module_get_struct_type(&ctx->mod, "struct.SamplerState", &int32_type, 1);
|
||||
sampler_type = dxil_module_get_array_type(&ctx->mod, sampler_type, count);
|
||||
|
||||
if (count > 1)
|
||||
sampler_type = dxil_module_get_array_type(&ctx->mod, sampler_type, count);
|
||||
|
||||
const struct dxil_mdnode *sampler_meta = emit_sampler_metadata(&ctx->mod, sampler_type, var, &layout);
|
||||
|
||||
if (!sampler_meta)
|
||||
|
||||
Reference in New Issue
Block a user