aboutsummaryrefslogtreecommitdiffstats
path: root/src/freedreno
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2020-05-14 16:11:58 +0200
committerMarge Bot <[email protected]>2020-05-14 18:15:31 +0000
commit2a9d12d5133639946b624a1ad367ea3f9543a8fe (patch)
tree5b5fdd8db3fbb5d746ad202a4d1dd875ced19c84 /src/freedreno
parent0e0580550e1b4846d3ad7ff738f57063b05089c9 (diff)
ir3: Fixup dual-source blending slot
The hardware expects that where MRT0 and MRT1 would normally go are the dual sources for MRT0, whereas GLSL has an extra "index" parameter that indicates which source it is. Remap it when handling FS outputs. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5039>
Diffstat (limited to 'src/freedreno')
-rw-r--r--src/freedreno/ir3/ir3_compiler_nir.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c
index 9e1105bce08..7ba65e1498e 100644
--- a/src/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/freedreno/ir3/ir3_compiler_nir.c
@@ -3112,6 +3112,7 @@ setup_output(struct ir3_context *ctx, nir_variable *out)
so->writes_smask = true;
break;
default:
+ slot += out->data.index; /* For dual-src blend */
if (slot >= FRAG_RESULT_DATA0)
break;
ir3_context_error(ctx, "unknown FS output name: %s\n",