From 6d5caabdd791d87ec88e53f96d8236ed1984db31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Tue, 12 Nov 2024 10:45:31 +0100 Subject: [PATCH] radv: Separate option to dump backend IR. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Konstantin Seurer Reviewed-by: Samuel Pitoiset Acked-by: Daniel Schürmann Part-of: --- docs/envvars.rst | 2 ++ src/amd/vulkan/radv_debug.h | 1 + src/amd/vulkan/radv_instance.c | 1 + src/amd/vulkan/radv_shader.c | 3 ++- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/envvars.rst b/docs/envvars.rst index 4ef0824eb9e..d47ed54eec4 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -1434,6 +1434,8 @@ RADV driver environment variables Dump compute (and ray tracing) shaders. ``nir`` Dump NIR for selected shader stages. + ``ir`` + Dump backend IR (ACO or LLVM) for selected shader stages. ``asm`` Dump shader disassembly for selected shader stages. diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index 61504cfba4a..5320a6ec8fe 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -71,6 +71,7 @@ enum { RADV_DEBUG_DUMP_CS = 1ull << 55, RADV_DEBUG_DUMP_NIR = 1ull << 56, RADV_DEBUG_DUMP_ASM = 1ull << 57, + RADV_DEBUG_DUMP_BACKEND_IR = 1ull << 58, }; enum { diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c index 9111f14461b..dbe9dd8b7b6 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -84,6 +84,7 @@ static const struct debug_control radv_debug_options[] = {{"nofastclears", RADV_ {"cs", RADV_DEBUG_DUMP_CS}, {"nir", RADV_DEBUG_DUMP_NIR}, {"asm", RADV_DEBUG_DUMP_ASM}, + {"ir", RADV_DEBUG_DUMP_BACKEND_IR}, {NULL, 0}}; const char * diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index f21c95e4891..be9a6f48dc7 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -3002,7 +3002,8 @@ radv_fill_nir_compiler_options(struct radv_nir_compiler_options *options, struct options->wgp_mode = should_use_wgp; options->info = &pdev->info; options->dump_shader = can_dump_shader; - options->dump_ir = options->dump_shader; + options->dump_ir = + options->dump_shader && instance->debug_flags & (RADV_DEBUG_DUMP_BACKEND_IR | RADV_DEBUG_DUMP_SHADERS); options->dump_preoptir = options->dump_shader && instance->debug_flags & RADV_DEBUG_PREOPTIR; options->record_asm = keep_shader_info || options->dump_shader; options->record_ir = keep_shader_info;