meta: Disable dithering during glGenerateMipmap
authorChad Versace <chadversary@chromium.org>
Thu, 29 Dec 2016 21:05:27 +0000 (13:05 -0800)
committerChad Versace <chadversary@chromium.org>
Tue, 3 Jan 2017 16:22:23 +0000 (08:22 -0800)
commitc4b87f129eb036c9615df3adcc1cebd9df10fc84
tree92be45a25fa349a1bd3061d5da9f8d339a1281a2
parent8d8ed437a5f15a7a3e843cfe8d5b66be918680d9
meta: Disable dithering during glGenerateMipmap

Fixes tests 'dEQP-GLES3.functional.texture.mipmap.*.generate.rgba5551*' on
Intel Broadwell 0x1616.

The GL 4.5 spec describes the algorithm of glGenerateMipmap as:

    The contents of the derived images are computed by repeated, filtered
    reduction of the level base image.  [...] No particular filter algorithm is
    required, though a box filter is recommended as the default filter.

Consider a texture for which all pixels are identical at level 0.
From the spec's description above, one may reasonably assume that the "filtered
reduction" of level 0 produces a new miplevel for which again all pixels are
identical. For any 2x2 subspan of identical pixels, it is difficult to see how
the "filtered reduction" of that subspan can produce a pixel that differs from
the source pixels.

Dithering during _mesa_meta_GenerateMipmap() violated that reasonable
assumption.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99210
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/drivers/common/meta_generate_mipmap.c