From 4b2ba18ff35774eb97a1931cba5bdef0bf4ccba9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 3 Jul 2018 15:39:21 -0700 Subject: [PATCH] nir: Apply fragment color clamping to gl_FragData[] as well. From the ARB_color_buffer_float spec: 35. Should the clamping of fragment shader output gl_FragData[n] be controlled by the fragment color clamp. RESOLVED: Since the destination of the FragData is a color buffer, the fragment color clamp control should apply. Fixes arb_color_buffer_float-mrt mixed on v3d. Reviewed-by: Rob Clark --- src/compiler/nir/nir_lower_clamp_color_outputs.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/compiler/nir/nir_lower_clamp_color_outputs.c b/src/compiler/nir/nir_lower_clamp_color_outputs.c index b76a4d51aac..32f85562427 100644 --- a/src/compiler/nir/nir_lower_clamp_color_outputs.c +++ b/src/compiler/nir/nir_lower_clamp_color_outputs.c @@ -47,13 +47,8 @@ is_color_output(lower_state *state, nir_variable *out) } break; case MESA_SHADER_FRAGMENT: - switch (out->data.location) { - case FRAG_RESULT_COLOR: - return true; - default: - return false; - } - break; + return (out->data.location == FRAG_RESULT_COLOR || + out->data.location >= FRAG_RESULT_DATA0); default: return false; } -- 2.30.2