aco/tests: don't pass CHIP_UNKNOWN to ACO

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38701>
This commit is contained in:
Daniel Schürmann 2025-11-27 16:40:17 +01:00 committed by Marge Bot
parent 6f4e8046b5
commit bf9bec07c2
2 changed files with 28 additions and 29 deletions

View file

@ -64,27 +64,13 @@ init_program(Program* program, Stage stage, const struct aco_shader_info* info,
enum amd_gfx_level gfx_level, enum radeon_family family, bool wgp_mode,
ac_shader_config* config)
{
assert(family != CHIP_UNKNOWN);
instruction_buffer = &program->m;
program->stage = stage;
program->config = config;
program->info = *info;
program->gfx_level = gfx_level;
if (family == CHIP_UNKNOWN) {
switch (gfx_level) {
case GFX6: program->family = CHIP_TAHITI; break;
case GFX7: program->family = CHIP_BONAIRE; break;
case GFX8: program->family = CHIP_POLARIS10; break;
case GFX9: program->family = CHIP_VEGA10; break;
case GFX10: program->family = CHIP_NAVI10; break;
case GFX10_3: program->family = CHIP_NAVI21; break;
case GFX11: program->family = CHIP_NAVI31; break;
case GFX11_5: program->family = CHIP_STRIX1; break;
case GFX12: program->family = CHIP_GFX1200; break;
default: program->family = CHIP_UNKNOWN; break;
}
} else {
program->family = family;
}
program->family = family;
program->wave_size = info->wave_size;
program->lane_mask = program->wave_size == 32 ? s1 : s2;

View file

@ -62,13 +62,36 @@ static std::mutex create_device_mutex;
FUNCTION_LIST
#undef ITEM
enum radeon_family
get_family(enum amd_gfx_level gfx_level, enum radeon_family family)
{
if (family == CHIP_UNKNOWN) {
switch (gfx_level) {
case GFX6: return CHIP_TAHITI;
case GFX7: return CHIP_BONAIRE;
case GFX8: return CHIP_POLARIS10;
case GFX9: return CHIP_VEGA10;
case GFX10: return CHIP_NAVI10;
case GFX10_3: return CHIP_NAVI21;
case GFX11: return CHIP_NAVI31;
case GFX11_5: return CHIP_STRIX_HALO;
case GFX12: return CHIP_GFX1201;
default: return CHIP_UNKNOWN;
}
}
return family;
}
void
create_program(enum amd_gfx_level gfx_level, Stage stage, unsigned wave_size,
enum radeon_family family)
{
family = get_family(gfx_level, family);
assert(family != CHIP_UNKNOWN);
memset(&config, 0, sizeof(config));
info.wave_size = wave_size;
program.reset(new Program);
aco::init_program(program.get(), stage, &info, gfx_level, family, false, &config);
program->workgroup_size = UINT_MAX;
@ -135,18 +158,8 @@ setup_nir_cs(enum amd_gfx_level gfx_level, mesa_shader_stage stage, enum radeon_
if (!set_variant(gfx_level, subvariant))
return false;
if (family == CHIP_UNKNOWN) {
switch (gfx_level) {
case GFX6: family = CHIP_TAHITI; break;
case GFX7: family = CHIP_BONAIRE; break;
case GFX8: family = CHIP_POLARIS10; break;
case GFX9: family = CHIP_VEGA10; break;
case GFX10: family = CHIP_NAVI10; break;
case GFX10_3: family = CHIP_NAVI21; break;
case GFX11: family = CHIP_NAVI31; break;
default: family = CHIP_UNKNOWN; break;
}
}
family = get_family(gfx_level, family);
assert(family != CHIP_UNKNOWN);
memset(&rad_info, 0, sizeof(rad_info));
rad_info.gfx_level = gfx_level;