From 4748ecb238e3449d4c5e087a85cf33823b01bea1 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 2 Sep 2025 17:35:13 +0200 Subject: [PATCH] radv: mark RADV_DEBUG=invariantgeom as deprecated Signed-off-by: Samuel Pitoiset Part-of: --- docs/envvars.rst | 2 +- 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 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/envvars.rst b/docs/envvars.rst index 1f3e05b08f0..b56f96f6315 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -1383,7 +1383,7 @@ RADV driver environment variables show GPU-related information ``invariantgeom`` Mark geometry-affecting outputs as invariant. This works around a common - class of application bugs appearing as flickering. + class of application bugs appearing as flickering. (deprecated) ``metashaders`` dump internal meta shaders ``noatocdithering`` diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index e2f6f8c0850..f5d1483b6f4 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -37,7 +37,7 @@ enum { RADV_DEBUG_HANG = 1ull << 22, RADV_DEBUG_IMG = 1ull << 23, RADV_DEBUG_NO_UMR = 1ull << 24, - RADV_DEBUG_INVARIANT_GEOM = 1ull << 25, + RADV_DEBUG_INVARIANT_GEOM = 1ull << 25, /* deprecated */ RADV_DEBUG_NO_DISPLAY_DCC = 1ull << 26, RADV_DEBUG_NO_TC_COMPAT_CMASK = 1ull << 27, RADV_DEBUG_NO_VRS_FLAT_SHADING = 1ull << 28, diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c index b4e61150511..d8155691076 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -222,8 +222,7 @@ radv_init_dri_options(struct radv_instance *instance) instance->drirc.no_dynamic_bounds = driQueryOptionb(&instance->drirc.options, "radv_no_dynamic_bounds"); - if (driQueryOptionb(&instance->drirc.options, "radv_invariant_geom")) - instance->debug_flags |= RADV_DEBUG_INVARIANT_GEOM; + 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; @@ -446,6 +445,12 @@ radv_CreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationC instance->drirc.no_dynamic_bounds = true; } + if (instance->debug_flags & RADV_DEBUG_INVARIANT_GEOM) { + fprintf(stderr, "radv: RADV_DEBUG=invariantgeom is deprecated and will it be removed in future Mesa releases. " + "Please use radv_invariant_geom=true instead.\n"); + instance->drirc.invariant_geom = 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 0574f5696fb..716484be4c4 100644 --- a/src/amd/vulkan/radv_instance.h +++ b/src/amd/vulkan/radv_instance.h @@ -75,6 +75,7 @@ struct radv_instance { bool disable_hiz_his_gfx12; bool cooperative_matrix2_nv; bool no_dynamic_bounds; + bool invariant_geom; 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 fa4fc87d357..412db1a5070 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -218,7 +218,7 @@ radv_physical_device_init_cache_key(struct radv_physical_device *pdev) key->emulate_rt = radv_emulate_rt(pdev); key->bvh8 = radv_use_bvh8(pdev); key->ge_wave32 = pdev->ge_wave_size == 32; - key->invariant_geom = !!(instance->debug_flags & RADV_DEBUG_INVARIANT_GEOM); + key->invariant_geom = instance->drirc.invariant_geom; key->no_fmask = !!(instance->debug_flags & RADV_DEBUG_NO_FMASK); key->no_ngg_gs = !!(instance->debug_flags & RADV_DEBUG_NO_NGG_GS); key->no_rt = !!(instance->debug_flags & RADV_DEBUG_NO_RT);