From 42abb231aa2248922c1953b2bee35704e9d575f6 Mon Sep 17 00:00:00 2001 From: Lang Yu Date: Sun, 27 Aug 2023 13:21:00 +0800 Subject: [PATCH] radeonsi: use AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32 to determine wave size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lang Yu Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/si_compute.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 7522e5f066c..619b8f95c31 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -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);