26 Jun 2012 02:39
[PATCH] i965/msaa: Set KILL_ENABLE when GL_ALPHA_TO_COVERAGE enabled.
Paul Berry <stereotype441 <at> gmail.com>
2012-06-26 00:39:38 GMT
2012-06-26 00:39:38 GMT
i965 hardware needs to be informed of situations in which it's
possible for pixels (or samples) to be discarded for reasons other
than depth/stencil testing (e.g. due to an explicit "discard" in the
fragment shader). One of these situations is when
GL_ALPHA_TO_COVERAGE is enabled, since that can cause samples to be
discarded by the color calculator when the pixel's alpha value is less
than 1.0.
Without this patch, GL_ALPHA_TO_COVERAGE does not take effect on depth
buffers.
---
src/mesa/drivers/dri/i965/gen6_wm_state.c | 5 +++--
src/mesa/drivers/dri/i965/gen7_wm_state.c | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/gen6_wm_state.c b/src/mesa/drivers/dri/i965/gen6_wm_state.c
index 662435e..fa83ece 100644
--- a/src/mesa/drivers/dri/i965/gen6_wm_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_wm_state.c
<at> <at> -186,8 +186,9 <at> <at> upload_wm_state(struct brw_context *brw)
dw6 |= brw->wm.prog_data->barycentric_interp_modes <<
GEN6_WM_BARYCENTRIC_INTERPOLATION_MODE_SHIFT;
- /* _NEW_COLOR */
- if (fp->program.UsesKill || ctx->Color.AlphaEnabled)
+ /* _NEW_COLOR, _NEW_MULTISAMPLE */
+ if (fp->program.UsesKill || ctx->Color.AlphaEnabled ||
+ ctx->Multisample.SampleAlphaToCoverage)
dw5 |= GEN6_WM_KILL_ENABLE;
(Continue reading)
RSS Feed