svga: Prefer accelerated blits over cpu copy region
authorThomas Hellstrom <thellstrom@vmware.com>
Thu, 27 Apr 2017 06:58:47 +0000 (23:58 -0700)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 16 Jun 2017 06:40:26 +0000 (08:40 +0200)
This reduces the number of cpu copy_region fallbacks on a Nvidia system
running the piglit command

./publish/bin/piglit run  -1 -t copy -t blit tests/quick

from 64789 to 780

Previously this has caused a regression in piglit test
spec@!opengl 1.0@gl-1.0-scissor-copypixels, but I'm currently not able to
reproduce that regression.

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

index 3d7196d..ef5aeee 100644 (file)
@@ -669,14 +669,12 @@ svga_blit(struct pipe_context *pipe,
    if (try_copy_region(svga, blit))
       goto done;
 
-   /* FIXME: Ideally, we should call try_blit() before try_cpu_copy_region(),
-    * however that breaks piglit test gl-1.0-scissor-copypixels.
-    */
-   if (try_cpu_copy_region(svga, blit))
+   if (try_blit(svga, blit))
       goto done;
 
-   if (try_blit(svga, blit))
+   if (!try_cpu_copy_region(svga, blit))
       debug_printf("svga: Blit failed.\n");
+   
 done:
    SVGA_STATS_TIME_POP(sws);  /* SVGA_STATS_TIME_BLIT */
    (void) sws;