diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c
index 5c38ceb4ef5..cacb7f86279 100644
--- a/src/amd/vulkan/radv_instance.c
+++ b/src/amd/vulkan/radv_instance.c
@@ -185,7 +185,6 @@ static const driOptionDescription radv_dri_options[] = {
DRI_CONF_RADV_RT_WAVE64(false)
DRI_CONF_RADV_LEGACY_SPARSE_BINDING(false)
DRI_CONF_RADV_FORCE_PSTATE_PEAK_GFX11_DGPU(false)
- DRI_CONF_DUAL_COLOR_BLEND_BY_LOCATION(false)
DRI_CONF_RADV_OVERRIDE_GRAPHICS_SHADER_VERSION(0)
DRI_CONF_RADV_OVERRIDE_COMPUTE_SHADER_VERSION(0)
DRI_CONF_RADV_OVERRIDE_RAY_TRACING_SHADER_VERSION(0)
@@ -257,9 +256,6 @@ radv_init_dri_options(struct radv_instance *instance)
instance->drirc.force_rt_wave64 = driQueryOptionb(&instance->drirc.options, "radv_rt_wave64");
- instance->drirc.dual_color_blend_by_location =
- driQueryOptionb(&instance->drirc.options, "dual_color_blend_by_location");
-
instance->drirc.legacy_sparse_binding = driQueryOptionb(&instance->drirc.options, "radv_legacy_sparse_binding");
instance->drirc.force_pstate_peak_gfx11_dgpu =
diff --git a/src/amd/vulkan/radv_instance.h b/src/amd/vulkan/radv_instance.h
index 13be1d24bc9..88880135fa6 100644
--- a/src/amd/vulkan/radv_instance.h
+++ b/src/amd/vulkan/radv_instance.h
@@ -64,7 +64,6 @@ struct radv_instance {
bool ssbo_non_uniform;
bool flush_before_timestamp_write;
bool force_rt_wave64;
- bool dual_color_blend_by_location;
bool legacy_sparse_binding;
bool force_pstate_peak_gfx11_dgpu;
bool clear_lds;
diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c
index 30d354abad5..f874ffe4235 100644
--- a/src/amd/vulkan/radv_physical_device.c
+++ b/src/amd/vulkan/radv_physical_device.c
@@ -219,7 +219,6 @@ radv_physical_device_init_cache_key(struct radv_physical_device *pdev)
key->disable_aniso_single_level = instance->drirc.disable_aniso_single_level && pdev->info.gfx_level < GFX8;
key->disable_shrink_image_store = instance->drirc.disable_shrink_image_store;
key->disable_sinking_load_input_fs = instance->drirc.disable_sinking_load_input_fs;
- key->dual_color_blend_by_location = instance->drirc.dual_color_blend_by_location;
key->emulate_rt = !!(instance->perftest_flags & RADV_PERFTEST_EMULATE_RT);
key->ge_wave32 = pdev->ge_wave_size == 32;
key->invariant_geom = !!(instance->debug_flags & RADV_DEBUG_INVARIANT_GEOM);
diff --git a/src/amd/vulkan/radv_physical_device.h b/src/amd/vulkan/radv_physical_device.h
index ffdc941c700..e64e1415b8c 100644
--- a/src/amd/vulkan/radv_physical_device.h
+++ b/src/amd/vulkan/radv_physical_device.h
@@ -50,7 +50,6 @@ struct radv_physical_device_cache_key {
uint32_t disable_aniso_single_level : 1;
uint32_t disable_shrink_image_store : 1;
uint32_t disable_sinking_load_input_fs : 1;
- uint32_t dual_color_blend_by_location : 1;
uint32_t emulate_rt : 1;
uint32_t ge_wave32 : 1;
uint32_t invariant_geom : 1;
diff --git a/src/amd/vulkan/radv_pipeline_graphics.c b/src/amd/vulkan/radv_pipeline_graphics.c
index 1323e142155..8ab3f2aea51 100644
--- a/src/amd/vulkan/radv_pipeline_graphics.c
+++ b/src/amd/vulkan/radv_pipeline_graphics.c
@@ -2593,8 +2593,6 @@ radv_graphics_shaders_compile(struct radv_device *device, struct vk_pipeline_cac
if (!stages[s].nir) {
struct radv_spirv_to_nir_options options = {
.lower_view_index_to_zero = !gfx_state->has_multiview_view_index,
- .fix_dual_src_mrt1_export =
- gfx_state->ps.epilog.mrt0_is_dual_src && instance->drirc.dual_color_blend_by_location,
.lower_view_index_to_device_index = stages[s].key.view_index_from_device_index,
};
blake3_hash key;
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index ca2c95adb14..cc63fa0151e 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -306,24 +306,6 @@ radv_compiler_debug(void *private_data, enum aco_compiler_debug_level level, con
vk_debug_report(&instance->vk, vk_flags[level] | VK_DEBUG_REPORT_DEBUG_BIT_EXT, NULL, 0, 0, "radv", message);
}
-/* If the shader doesn't have an index=1 output, then assume that it meant for a location=1 to be used. This works on
- * some older hardware because the MRT1 target is used for both location=1 and index=1, but GFX11 works differently.
- */
-static void
-fix_dual_src_mrt1_export(nir_shader *nir)
-{
- nir_foreach_shader_out_variable (var, nir) {
- if (var->data.location == FRAG_RESULT_DATA0 && var->data.index == 1)
- return;
- }
-
- nir_variable *loc1_var = nir_find_variable_with_location(nir, nir_var_shader_out, FRAG_RESULT_DATA1);
- if (loc1_var) {
- loc1_var->data.location = FRAG_RESULT_DATA0;
- loc1_var->data.index = 1;
- }
-}
-
nir_shader *
radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_shader_stage *stage,
const struct radv_spirv_to_nir_options *options, bool is_internal)
@@ -457,9 +439,6 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_shader_st
NIR_PASS(_, nir, nir_remove_dead_variables,
nir_var_shader_in | nir_var_shader_out | nir_var_system_value | nir_var_mem_shared, &dead_vars_opts);
- if (nir->info.stage == MESA_SHADER_FRAGMENT && options->fix_dual_src_mrt1_export)
- fix_dual_src_mrt1_export(nir);
-
/* Variables can make nir_propagate_invariant more conservative
* than it needs to be.
*/
diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h
index 1cdf5b6c78e..403b6a45715 100644
--- a/src/amd/vulkan/radv_shader.h
+++ b/src/amd/vulkan/radv_shader.h
@@ -112,7 +112,6 @@ struct radv_ps_epilog_key {
struct radv_spirv_to_nir_options {
uint32_t lower_view_index_to_zero : 1;
- uint32_t fix_dual_src_mrt1_export : 1;
uint32_t lower_view_index_to_device_index : 1;
};
diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf
index 5bf2bedc960..45686f375a2 100644
--- a/src/util/00-radv-defaults.conf
+++ b/src/util/00-radv-defaults.conf
@@ -97,7 +97,6 @@ Application bugs worked around in this file:
-
@@ -203,10 +202,6 @@ Application bugs worked around in this file:
-
-
-
-