microsoft/compiler: Correctly flag when using raw buffers

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12119>
This commit is contained in:
Enrico Galli
2021-07-28 17:05:26 -07:00
committed by Marge Bot
parent 1295c5cb33
commit fec1a04c53

View File

@@ -4396,6 +4396,7 @@ emit_module(struct ntd_context *ctx, const struct nir_to_dxil_options *opts)
return false;
} else {
/* Handle read/write SSBOs as UAVs */
int uav_count = 0;
nir_foreach_variable_with_modes(var, ctx->shader, nir_var_mem_ssbo) {
if ((var->data.access & ACCESS_NON_WRITEABLE) == 0) {
unsigned count = 1;
@@ -4405,8 +4406,12 @@ emit_module(struct ntd_context *ctx, const struct nir_to_dxil_options *opts)
count, DXIL_COMP_TYPE_INVALID,
DXIL_RESOURCE_KIND_RAW_BUFFER, var->name))
return false;
++uav_count;
}
}
if (uav_count > 0)
ctx->mod.raw_and_structured_buffers = true;
}
nir_foreach_variable_with_modes(var, ctx->shader, nir_var_uniform) {