[Mesa-dev] meta: Disable dithering during glBlitFramebuffer
Pohjolainen, Topi
topi.pohjolainen at intel.com
Tue Aug 5 01:32:01 PDT 2014
On Mon, Aug 04, 2014 at 09:03:23PM +0100, Neil Roberts wrote:
> According to the GL spec the only fragment operations that should affect
> glBlitFramebuffer are ???the pixel ownership test, the scissor test, and sRGB
> conversion???. That implies that dithering should not be performed so we need to
> disable it when implementing the blit with a render.
>
> Before commit 05b52efbc97731 the dithering state would be left as whatever the
> application picks (the default being GL_TRUE) and after that commit it was
> explicitly enabled. Neither of these were correct.
>
> https://bugs.freedesktop.org/show_bug.cgi?id=81828
This makes sense to me also, and more importantly fixes the bug:
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
> src/mesa/drivers/common/meta_blit.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
> index bbf0c3c..b28b9d0 100644
> --- a/src/mesa/drivers/common/meta_blit.c
> +++ b/src/mesa/drivers/common/meta_blit.c
> @@ -709,6 +709,9 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
> */
> _mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS);
>
> + /* Dithering shouldn't be performed for glBlitFramebuffer */
> + _mesa_set_enable(ctx, GL_DITHER, GL_FALSE);
> +
> /* If the clipping earlier changed the destination rect at all, then
> * enable the scissor to clip to it.
> */
> --
> 1.9.3
>
More information about the mesa-dev
mailing list