radeonsi: use AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32 to determine wave size

Signed-off-by: Lang Yu <lang.yu@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24920>
This commit is contained in:
Lang Yu
2023-08-27 13:21:00 +08:00
committed by Marge Bot
parent 11106bab1b
commit 42abb231aa
+5 -4
View File
@@ -47,7 +47,6 @@ static const amd_kernel_code_t *si_compute_get_code_object(const struct si_compu
if (!ac_rtld_open(&rtld,
(struct ac_rtld_open_info){.info = &sel->screen->info,
.shader_type = MESA_SHADER_COMPUTE,
.wave_size = program->shader.wave_size,
.num_parts = 1,
.elf_ptrs = &program->shader.binary.code_buffer,
.elf_sizes = &program->shader.binary.code_size}))
@@ -258,12 +257,14 @@ static void *si_create_compute_state(struct pipe_context *ctx, const struct pipe
}
memcpy((void *)program->shader.binary.code_buffer, header->blob, header->num_bytes);
/* This is only for clover without NIR. */
program->shader.wave_size = sscreen->info.gfx_level >= GFX10 ? 32 : 64;
const amd_kernel_code_t *code_object = si_compute_get_code_object(program, 0);
code_object_to_config(code_object, &program->shader.config);
if (AMD_HSA_BITS_GET(code_object->code_properties, AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32))
program->shader.wave_size = 32;
else
program->shader.wave_size = 64;
bool ok = si_shader_binary_upload(sctx->screen, &program->shader, 0);
si_shader_dump(sctx->screen, &program->shader, &sctx->debug, stderr, true);