From: Eric Anholt Date: Tue, 3 Jul 2018 22:39:21 +0000 (-0700) Subject: nir: Apply fragment color clamping to gl_FragData[] as well. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4b2ba18ff35774eb97a1931cba5bdef0bf4ccba9;p=mesa.git 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 --- 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; }