From d81439463a52f50ba43c3d51c549e6db1783393d Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Sun, 31 Jan 2021 13:39:47 +0100 Subject: [PATCH] r600/sfn: Fix dual source blend lowered to FRAG_DATA This fixes the Unigine benchmarks. Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp b/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp index 420ecedb0c6..9d9cd5304d1 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp @@ -943,7 +943,8 @@ bool FragmentShaderFromNir::emit_export_pixel(const nir_variable *out_var, nir_i out_var->data.location <= FRAG_RESULT_DATA7)) { for (int k = 0 ; k < outputs; ++k) { - unsigned location = (m_dual_source_blend ? out_var->data.index : out_var->data.driver_location) + k - m_depth_exports; + unsigned location = (m_dual_source_blend && (out_var->data.location == FRAG_RESULT_COLOR) + ? out_var->data.index : out_var->data.driver_location) + k - m_depth_exports; sfn_log << SfnLog::io << "Pixel output " << out_var->name << " at loc:" << location << "\n";