Pass an explicit surface format as we do with pipe_put_tile_rgba_format(). This fixes the piglit fbo-srgb-blit test. With GL_EXT_framebuffer_sRGB we override the resource's format with an explicit format (linear vs. sRGB). We need to do so both when getting and putting tiles. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40402 Reviewed-by: Dave Airlie <airlied@redhat.com>tags/mesa-8.0-rc1
@@ -494,11 +494,12 @@ sp_find_cached_tile(struct softpipe_tile_cache *tc, | |||
tile->data.depth32, 0/*STRIDE*/); | |||
} | |||
else { | |||
pipe_get_tile_rgba(tc->pipe, pt, | |||
tc->tile_addrs[pos].bits.x * TILE_SIZE, | |||
tc->tile_addrs[pos].bits.y * TILE_SIZE, | |||
TILE_SIZE, TILE_SIZE, | |||
(float *) tile->data.color); | |||
pipe_get_tile_rgba_format(tc->pipe, pt, | |||
tc->tile_addrs[pos].bits.x * TILE_SIZE, | |||
tc->tile_addrs[pos].bits.y * TILE_SIZE, | |||
TILE_SIZE, TILE_SIZE, | |||
tc->surface->format, | |||
(float *) tile->data.color); | |||
} | |||
} | |||
} |