From 7304423b5c664c7d3054aed552d6a448ad214931 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 2 Sep 2025 17:38:12 +0200 Subject: [PATCH] radv: mark RADV_DEBUG=splitfma as deprecated Signed-off-by: Samuel Pitoiset Part-of: --- docs/envvars.rst | 1 + src/amd/vulkan/radv_debug.h | 2 +- src/amd/vulkan/radv_instance.c | 9 +++++++-- src/amd/vulkan/radv_instance.h | 1 + src/amd/vulkan/radv_physical_device.c | 2 +- src/amd/vulkan/radv_shader.c | 4 +--- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/envvars.rst b/docs/envvars.rst index b56f96f6315..21b9ef54e43 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -1451,6 +1451,7 @@ RADV driver environment variables dump SPIR-V ``splitfma`` split application-provided fused multiply-add in geometry stages + (deprecated) ``startup`` display info at startup ``syncshaders`` diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index f5d1483b6f4..74a307b3218 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -45,7 +45,7 @@ enum { RADV_DEBUG_NO_NGGC = 1ull << 30, RADV_DEBUG_DUMP_PROLOGS = 1ull << 31, RADV_DEBUG_NO_DMA_BLIT = 1ull << 32, - RADV_DEBUG_SPLIT_FMA = 1ull << 33, + RADV_DEBUG_SPLIT_FMA = 1ull << 33, /* deprecated */ RADV_DEBUG_DUMP_EPILOGS = 1ull << 34, RADV_DEBUG_NO_FMASK = 1ull << 35, RADV_DEBUG_SHADOW_REGS = 1ull << 36, diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c index d8155691076..1c8371337bc 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -224,8 +224,7 @@ radv_init_dri_options(struct radv_instance *instance) instance->drirc.invariant_geom = driQueryOptionb(&instance->drirc.options, "radv_invariant_geom"); - if (driQueryOptionb(&instance->drirc.options, "radv_split_fma")) - instance->debug_flags |= RADV_DEBUG_SPLIT_FMA; + instance->drirc.split_fma = driQueryOptionb(&instance->drirc.options, "radv_split_fma"); if (driQueryOptionb(&instance->drirc.options, "radv_disable_dcc")) instance->debug_flags |= RADV_DEBUG_NO_DCC; @@ -451,6 +450,12 @@ radv_CreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationC instance->drirc.invariant_geom = true; } + if (instance->debug_flags & RADV_DEBUG_SPLIT_FMA) { + fprintf(stderr, "radv: RADV_DEBUG=splitfma is deprecated and will it be removed in future Mesa releases. " + "Please use radv_split_fma=true instead.\n"); + instance->drirc.split_fma = true; + } + *pInstance = radv_instance_to_handle(instance); return VK_SUCCESS; diff --git a/src/amd/vulkan/radv_instance.h b/src/amd/vulkan/radv_instance.h index 716484be4c4..d369d404157 100644 --- a/src/amd/vulkan/radv_instance.h +++ b/src/amd/vulkan/radv_instance.h @@ -76,6 +76,7 @@ struct radv_instance { bool cooperative_matrix2_nv; bool no_dynamic_bounds; bool invariant_geom; + bool split_fma; char *app_layer; uint8_t override_graphics_shader_version; uint8_t override_compute_shader_version; diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 412db1a5070..9a8ac0da565 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -224,7 +224,7 @@ radv_physical_device_init_cache_key(struct radv_physical_device *pdev) key->no_rt = !!(instance->debug_flags & RADV_DEBUG_NO_RT); key->ps_wave32 = pdev->ps_wave_size == 32; key->rt_wave64 = pdev->rt_wave_size == 64; - key->split_fma = !!(instance->debug_flags & RADV_DEBUG_SPLIT_FMA); + key->split_fma = instance->drirc.split_fma; key->ssbo_non_uniform = instance->drirc.ssbo_non_uniform; key->tex_non_uniform = instance->drirc.tex_non_uniform; key->lower_terminate_to_discard = instance->drirc.lower_terminate_to_discard; diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 26bb6035216..f5a88b8f77b 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -51,10 +51,8 @@ static void get_nir_options_for_stage(struct radv_physical_device *pdev, mesa_shader_stage stage) { - const struct radv_instance *instance = radv_physical_device_instance(pdev); nir_shader_compiler_options *options = &pdev->nir_options[stage]; - bool split_fma = - (stage <= MESA_SHADER_GEOMETRY || stage == MESA_SHADER_MESH) && instance->debug_flags & RADV_DEBUG_SPLIT_FMA; + const bool split_fma = (stage <= MESA_SHADER_GEOMETRY || stage == MESA_SHADER_MESH) && pdev->cache_key.split_fma; ac_nir_set_options(&pdev->info, pdev->use_llvm, options);