From 3fbdedbf9d509c5ca58ae0a01fe8e54dcc990cf8 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 13 Sep 2012 22:10:08 +0100 Subject: [PATCH] sna: Fix analysis of source extents for BLT composite After we have computed the source offset vector for the transformed source bo, we need to use that with respect to the destination rectangle to verify that the source sample is wholly within bounds. Signed-off-by: Chris Wilson --- src/sna/gen2_render.c | 4 +--- src/sna/gen3_render.c | 4 +--- src/sna/gen4_render.c | 4 +--- src/sna/gen5_render.c | 4 +--- src/sna/gen6_render.c | 4 +--- src/sna/gen7_render.c | 4 +--- src/sna/sna_blt.c | 1 - src/sna/sna_render.h | 1 - 8 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c index 7d518232..ca61bd38 100644 --- a/src/sna/gen2_render.c +++ b/src/sna/gen2_render.c @@ -1780,9 +1780,7 @@ gen2_render_composite(struct sna *sna, case 1: if (mask == NULL && tmp->src.bo && sna_blt_composite__convert(sna, - src_x, src_y, - width, height, - dst_x, dst_y, + dst_x, dst_y, width, height, tmp)) return true; break; diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c index 60e197e0..723dd5ee 100644 --- a/src/sna/gen3_render.c +++ b/src/sna/gen3_render.c @@ -2868,9 +2868,7 @@ gen3_render_composite(struct sna *sna, case 1: if (mask == NULL && tmp->src.bo && sna_blt_composite__convert(sna, - src_x, src_y, - width, height, - dst_x, dst_y, + dst_x, dst_y, width, height, tmp)) return true; diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c index d8b76a15..ceef528f 100644 --- a/src/sna/gen4_render.c +++ b/src/sna/gen4_render.c @@ -2315,9 +2315,7 @@ gen4_render_composite(struct sna *sna, case 1: if (mask == NULL && sna_blt_composite__convert(sna, - src_x, src_y, - width, height, - dst_x, dst_y, + dst_x, dst_y, width, height, tmp)) return true; diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c index 5eff8719..c9a2cc04 100644 --- a/src/sna/gen5_render.c +++ b/src/sna/gen5_render.c @@ -2330,9 +2330,7 @@ gen5_render_composite(struct sna *sna, case 1: if (mask == NULL && sna_blt_composite__convert(sna, - src_x, src_y, - width, height, - dst_x, dst_y, + dst_x, dst_y, width, height, tmp)) return true; diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index 363e8dbe..8e10af34 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -2708,9 +2708,7 @@ gen6_render_composite(struct sna *sna, if (mask == NULL && prefer_blt_composite(sna, tmp) && sna_blt_composite__convert(sna, - src_x, src_y, - width, height, - dst_x, dst_y, + dst_x, dst_y, width, height, tmp)) return true; diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c index 705a17d6..53fcb2a3 100644 --- a/src/sna/gen7_render.c +++ b/src/sna/gen7_render.c @@ -2811,9 +2811,7 @@ gen7_render_composite(struct sna *sna, if (mask == NULL && prefer_blt_composite(sna, tmp) && sna_blt_composite__convert(sna, - src_x, src_y, - width, height, - dst_x, dst_y, + dst_x, dst_y, width, height, tmp)) return true; diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c index 757447b6..b97df22e 100644 --- a/src/sna/sna_blt.c +++ b/src/sna/sna_blt.c @@ -1914,7 +1914,6 @@ bool sna_blt_composite__convert(struct sna *sna, int x, int y, int width, int height, - int dst_x, int dst_y, struct sna_composite_op *tmp) { uint32_t alpha_fixup; diff --git a/src/sna/sna_render.h b/src/sna/sna_render.h index 442c78d4..03a70057 100644 --- a/src/sna/sna_render.h +++ b/src/sna/sna_render.h @@ -574,7 +574,6 @@ bool sna_blt_composite(struct sna *sna, bool sna_blt_composite__convert(struct sna *sna, int x, int y, int width, int height, - int dst_x, int dst_y, struct sna_composite_op *tmp); bool sna_blt_fill(struct sna *sna, uint8_t alu,