diff options
author | Chad Versace <chadversary@chromium.org> | 2017-01-30 11:12:44 -0800 |
---|---|---|
committer | Mark Janes <mark.a.janes@intel.com> | 2017-01-30 11:19:47 -0800 |
commit | bb05b88c46b61aaf523e1bafd3b6d3bc995dd1e7 (patch) | |
tree | 8f391793aedb88bf0ac27c91f3cfecf4f4e3babd | |
parent | 7d422a3bf6d658330c663bf45478afb325f901a3 (diff) | |
download | piglit-dither.tar.gz |
getteximage-formats: Disable dithering during glDrawPixelsdither
The test generates a mipmap by "copying" a client-array of pixels to
miplevel 0 with glDrawPixels, then calling glGenerateMipmap. The test
expects the rendered level 0 to match the client-array source. Dithering
during glDrawPixels inteferes with that expectation.
Fixes on Intel Skylake:
spec.ext_framebuffer_object.getteximage-formats init-by-clear-and-render
spec.ext_framebuffer_object.getteximage-formats init-by-render
Regressed by Mesa:
commit c4b87f129eb036c9615df3adcc1cebd9df10fc84
Author: Chad Versace <chadversary@chromium.org>
Subject: meta: Disable dithering during glGenerateMipmap
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99266
Cc: Mark Janes <mark.a.janes@intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r-- | tests/texturing/getteximage-formats.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/texturing/getteximage-formats.c b/tests/texturing/getteximage-formats.c index 6f4fb029e..02d78d441 100644 --- a/tests/texturing/getteximage-formats.c +++ b/tests/texturing/getteximage-formats.c @@ -110,8 +110,33 @@ make_texture_image(GLenum intFormat, GLubyte upperRightTexel[4]) glViewport(0, 0, TEX_SIZE, TEX_SIZE); + /* Disable dithering during glDrawPixels to prevent + * disagreement with glGenerateMipmap. The spec requires + * glDrawPixels to respect the dither state, but the spec + * strongly implies that glGenerateMipmap should not dither. + * + * On dithering and glDrawPixels, see the OpenGL 4.5 + * Compatibility Specification, Section 18.1 Drawing Pixels, + * p620: + * + * Once pixels are transferred, DrawPixels performs final + * conversion on pixel values [...] which are processed in + * the same fashion as fragments generated by rasterization + * (see chapters 15 and 16). + * + * On dithering and glGenerateMipmap, see the Mesa commit + * message in: + * + * commit c4b87f129eb036c9615df3adcc1cebd9df10fc84 + * Author: Chad Versace <chadversary@chromium.org> + * Date: Thu Dec 29 13:05:27 2016 -0800 + * Subject: meta: Disable dithering during glGenerateMipmap + */ + glDisable(GL_DITHER); glWindowPos2iARB(0, 0); glDrawPixels(TEX_SIZE, TEX_SIZE, GL_RGBA, GL_UNSIGNED_BYTE, tex); + glEnable(GL_DITHER); + glGenerateMipmap(GL_TEXTURE_2D); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, piglit_winsys_fbo); |