On Mon, Jun 25, 2012 at 5:39 PM, Paul Berry <stereotype...@gmail.com> wrote: > 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 > @@ -186,8 +186,9 @@ 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; > > if (brw_color_buffer_write_enabled(brw) || > diff --git a/src/mesa/drivers/dri/i965/gen7_wm_state.c > b/src/mesa/drivers/dri/i965/gen7_wm_state.c > index 45c8e46..8e4417e 100644 > --- a/src/mesa/drivers/dri/i965/gen7_wm_state.c > +++ b/src/mesa/drivers/dri/i965/gen7_wm_state.c > @@ -70,8 +70,9 @@ upload_wm_state(struct brw_context *brw) > dw1 |= brw->wm.prog_data->barycentric_interp_modes << > GEN7_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) > dw1 |= GEN7_WM_KILL_ENABLE; > > /* _NEW_BUFFERS */ > -- > 1.7.7.6 >
This patch makes piglit sample-alpha-to-coverage test pass for depth buffer. I'll soon send out a patch to enable depth buffer testing in existing piglit test case. Reviewed-by: Anuj Phogat <anuj.pho...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev