summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hellstrom <[email protected]>2017-04-12 09:28:49 +0200
committerThomas Hellstrom <[email protected]>2017-06-16 08:40:26 +0200
commit71f857d6ab504c4e355b2fcaf36b66426e6061ab (patch)
tree3aa0f1f0be44fc13932f22cf37484dc1a1e57add
parentf4c2d4bd4ae63644d50f5458ede0f5d365e23d1c (diff)
svga: Use utility functions to help determine whether we can use copy_region
It seems like the SVGA tests are in general more stringent than the utility tests, but they also miss some blitter features like filters and window rectangles, and if new blitter features are added in the future, it might be possible that we forget adding tests for those. So in addition to the SVGA tests, use the utility tests to restrict the situations where we can use copy_region. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Charmaine Lee <[email protected]>
-rw-r--r--src/gallium/drivers/svga/svga_pipe_blit.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c
index 677d78ca71c..13788fd59c1 100644
--- a/src/gallium/drivers/svga/svga_pipe_blit.c
+++ b/src/gallium/drivers/svga/svga_pipe_blit.c
@@ -275,9 +275,8 @@ static bool
can_blit_via_svga_copy_region(struct svga_context *svga,
const struct pipe_blit_info *blit_info)
{
- /* check that the blit src/dst regions are same size, no flipping, etc. */
- if (blit_info->src.box.width != blit_info->dst.box.width ||
- blit_info->src.box.height != blit_info->dst.box.height)
+ if (!util_can_blit_via_copy_region(blit_info, FALSE) &&
+ !util_can_blit_via_copy_region(blit_info, TRUE))
return false;
/* For depth+stencil formats, copy with mask != PIPE_MASK_ZS is not
@@ -287,9 +286,7 @@ can_blit_via_svga_copy_region(struct svga_context *svga,
blit_info->mask != (PIPE_MASK_ZS))
return false;
- if (blit_info->alpha_blend ||
- (svga->render_condition && blit_info->render_condition_enable) ||
- blit_info->scissor_enable)
+ if (svga->render_condition && blit_info->render_condition_enable)
return false;
return check_blending_and_srgb_cond(svga, blit_info);