diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index c378e142f1c..20a7b678066 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -357,9 +357,12 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_shader_st uint32_t *spirv = (uint32_t *)stage->spirv.data; assert(stage->spirv.size % 4 == 0); - bool dump_meta = instance->debug_flags & RADV_DEBUG_DUMP_META_SHADERS; - if ((instance->debug_flags & RADV_DEBUG_DUMP_SPIRV) && (!is_internal || dump_meta)) - spirv_print_asm(stderr, (const uint32_t *)stage->spirv.data, stage->spirv.size / 4); + if (instance->debug_flags & RADV_DEBUG_DUMP_SPIRV) { + const uint64_t dump_flags = + is_internal ? RADV_DEBUG_DUMP_META_SHADERS : radv_dump_flag_for_stage(stage->stage); + if (instance->debug_flags & dump_flags) + spirv_print_asm(stderr, (const uint32_t *)stage->spirv.data, stage->spirv.size / 4); + } uint32_t num_spec_entries = 0; struct nir_spirv_specialization *spec_entries = vk_spec_info_to_nir_spirv(stage->spec_info, &num_spec_entries);