microsoft/compiler: Support emitting the SM6.6 wave size tag

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20801>
This commit is contained in:
Jesse Natalie 2023-01-19 13:26:13 -08:00
parent 2c5d96bb58
commit f58d763363
2 changed files with 6 additions and 0 deletions

View file

@ -272,6 +272,7 @@ enum dxil_shader_tag {
DXIL_SHADER_TAG_DS_STATE = 2,
DXIL_SHADER_TAG_HS_STATE = 3,
DXIL_SHADER_TAG_NUM_THREADS = 4,
DXIL_SHADER_TAG_WAVE_SIZE = 11,
};
enum dxil_barrier_mode {

View file

@ -1829,6 +1829,11 @@ emit_metadata(struct ntd_context *ctx)
} else if (ctx->mod.shader_kind == DXIL_COMPUTE_SHADER) {
if (!emit_tag(ctx, DXIL_SHADER_TAG_NUM_THREADS, emit_threads(ctx)))
return false;
if (ctx->mod.minor_version >= 6 &&
ctx->shader->info.subgroup_size >= SUBGROUP_SIZE_REQUIRE_8 &&
!emit_tag(ctx, DXIL_SHADER_TAG_WAVE_SIZE,
dxil_get_metadata_int32(&ctx->mod, ctx->shader->info.subgroup_size)))
return false;
}
uint64_t flags = get_module_flags(ctx);