meta: Don't alter fragment color clamp in DrawPixels().
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 9 Jun 2012 09:33:20 +0000 (02:33 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 2 Jul 2012 18:08:48 +0000 (11:08 -0700)
DrawPixels uses the MESA_META_CLAMP_FRAGMENT_COLOR flag to save/restore
the fragment color clamp mode.  This is unnecessary since it never
alters it.  It's also harmful: when the clamp mode is GL_FIXED_ONLY,
setting this flag causes _mesa_meta_begin to force it to GL_FALSE,
breaking clamping on SNORM formats.

DrawPixels should use the user-specified clamp mode and not change it.

Fixes Piglit's spec/ARB_color_buffer_float/GL_RGBA8_SNORM-drawpixels
test on i965/Sandybridge (with SNORM render targets re-enabled).

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/common/meta.c

index be7141a58e41e7d8ded6c0213c620940a6a870e3..6a533932bfd2438c0f483dfc13415f3f03a65e60 100644 (file)
@@ -2347,7 +2347,6 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
                           MESA_META_CLIP |
                           MESA_META_VERTEX |
                           MESA_META_VIEWPORT |
-                         MESA_META_CLAMP_FRAGMENT_COLOR |
                           metaExtraSave));
 
    newTex = alloc_texture(tex, width, height, texIntFormat);