svga: Fix incorrect format conversion blit destination
authorThomas Hellstrom <thellstrom@vmware.com>
Wed, 14 Jun 2017 13:39:42 +0000 (15:39 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 16 Jun 2017 06:40:26 +0000 (08:40 +0200)
The blit.dst.resource member that was used as destination was
modified earlier in the function, effectively making us try to blit
the content onto itself. Fix this and also add a debug printout when the
format conversion blits fail.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
src/gallium/drivers/svga/svga_pipe_blit.c

index fd287a1815cfd666391f6a5635ee966a225eef92..28996062ab3ee4d2ee25dba8dd0a027ad41b85b1 100644 (file)
@@ -547,6 +547,7 @@ try_blit(struct svga_context *svga, const struct pipe_blit_info *blit_info)
                       blit.src.level, &blit.src.box,
                       &copy_region_blit);
       if (!try_copy_region(svga, &copy_region_blit)) {
+         debug_printf("svga: Source blit format conversion failed.\n");
          ret = false;
          goto done;
       }
@@ -593,13 +594,14 @@ try_blit(struct svga_context *svga, const struct pipe_blit_info *blit_info)
        * A temporary resource was created for the blit, we need to
        * copy from the temporary resource back to the original destination.
        */
-      build_blit_info(blit.dst.resource,
+      build_blit_info(dst,
                       blit.dst.level, blit.dst.box.x,
                       blit.dst.box.y, blit.dst.box.z,
                       newDst,
                       blit.dst.level, &blit.dst.box,
                       &copy_region_blit);
       if (!try_copy_region(svga, &copy_region_blit)) {
+         debug_printf("svga: Destination blit format conversion failed.\n");
          ret = false;
          goto done;
       }