svga: Fix srgb copy_region regression
authorThomas Hellstrom <thellstrom@vmware.com>
Wed, 3 May 2017 12:26:02 +0000 (05:26 -0700)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 16 Jun 2017 06:40:26 +0000 (08:40 +0200)
This fixes a tf2 srgb copy_region regression from
"svga: Rework the blit and resource_copy_region functionality v3"

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/svga/svga_pipe_blit.c

index ef5aeee9a16ba5893345763c5812399b011ce16a..fd287a1815cfd666391f6a5635ee966a225eef92 100644 (file)
@@ -736,9 +736,12 @@ svga_resource_copy_region(struct pipe_context *pipe,
 
       /* Blits are format-converting which is not what we want, so perform a
        * strict format-check.
-       * FIXME: Also blits appear broken with 3D source textures.
+       * FIXME: Need to figure out why srgb blits (tf2) and
+       * 3D blits (piglit) are broken here. Perhaps we set up the
+       * struct pipe_blit_info incorrectly.
        */
       if (src_tex->format == dst_tex->format &&
+          !util_format_is_srgb(src_tex->format) &&
           svga_resource_type(src_tex->target) != SVGA3D_RESOURCE_TEXTURE3D &&
           try_blit(svga, &blit))
          goto done;