Mesa (master): meta: Disable dithering during glBlitFramebuffer

Neil Roberts nroberts at kemper.freedesktop.org
Tue Aug 5 13:48:51 UTC 2014


Module: Mesa
Branch: master
Commit: 816dbdb106dd1955d7db90084790af21fc496d83
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=816dbdb106dd1955d7db90084790af21fc496d83

Author: Neil Roberts <neil at linux.intel.com>
Date:   Mon Aug  4 20:54:03 2014 +0100

meta: Disable dithering during glBlitFramebuffer

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.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81828
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
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 31c88e1..955e73f 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.
     */




More information about the mesa-commit mailing list