diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c index 1037deb3..434de07b 100644 --- a/src/sna/gen4_render.c +++ b/src/sna/gen4_render.c @@ -2194,6 +2194,8 @@ gen4_render_copy_boxes(struct sna *sna, uint8_t alu, tmp.dst.height = dst->drawable.height; tmp.dst.format = sna_format_for_depth(dst->drawable.depth); tmp.dst.bo = dst_bo; + tmp.dst.x = dst_dx; + tmp.dst.y = dst_dy; tmp.src.bo = src_bo; tmp.src.filter = SAMPLER_FILTER_NEAREST; @@ -2225,7 +2227,7 @@ gen4_render_copy_boxes(struct sna *sna, uint8_t alu, gen4_render_copy_one(sna, &tmp, box->x1 + src_dx, box->y1 + src_dy, box->x2 - box->x1, box->y2 - box->y1, - box->x1 + dst_dx, box->y1 + dst_dy); + box->x1, box->y1); box++; } while (--n); diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c index a029d181..aa8fc181 100644 --- a/src/sna/gen5_render.c +++ b/src/sna/gen5_render.c @@ -2132,6 +2132,8 @@ gen5_render_copy_boxes(struct sna *sna, uint8_t alu, tmp.dst.height = dst->drawable.height; tmp.dst.format = sna_format_for_depth(dst->drawable.depth); tmp.dst.bo = dst_bo; + tmp.dst.x = dst_dx; + tmp.dst.y = dst_dy; tmp.src.bo = src_bo; tmp.src.filter = SAMPLER_FILTER_NEAREST; @@ -2173,15 +2175,15 @@ gen5_render_copy_boxes(struct sna *sna, uint8_t alu, box->x1 + src_dx, box->y1 + src_dy, box->x1 + dst_dx, box->y1 + dst_dy, box->x2 - box->x1, box->y2 - box->y1)); - OUT_VERTEX(box->x2 + dst_dx, box->y2 + dst_dy); + OUT_VERTEX(box->x2, box->y2); OUT_VERTEX_F((box->x2 + src_dx) * tmp.src.scale[0]); OUT_VERTEX_F((box->y2 + src_dy) * tmp.src.scale[1]); - OUT_VERTEX(box->x1 + dst_dx, box->y2 + dst_dy); + OUT_VERTEX(box->x1, box->y2); OUT_VERTEX_F((box->x1 + src_dx) * tmp.src.scale[0]); OUT_VERTEX_F((box->y2 + src_dy) * tmp.src.scale[1]); - OUT_VERTEX(box->x1 + dst_dx, box->y1 + dst_dy); + OUT_VERTEX(box->x1, box->y1); OUT_VERTEX_F((box->x1 + src_dx) * tmp.src.scale[0]); OUT_VERTEX_F((box->y1 + src_dy) * tmp.src.scale[1]); diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index 2f0879e7..bd0f8c42 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -2332,6 +2332,8 @@ gen6_render_copy_boxes(struct sna *sna, uint8_t alu, tmp.dst.height = dst->drawable.height; tmp.dst.format = sna_format_for_depth(dst->drawable.depth); tmp.dst.bo = dst_bo; + tmp.dst.x = dst_dx; + tmp.dst.y = dst_dy; tmp.src.bo = src_bo; tmp.src.filter = SAMPLER_FILTER_NEAREST; @@ -2385,9 +2387,9 @@ gen6_render_copy_boxes(struct sna *sna, uint8_t alu, box->x1 + src_dx, box->y1 + src_dy, box->x1 + dst_dx, box->y1 + dst_dy, box->x2 - box->x1, box->y2 - box->y1)); - v[0] = pack_2s(box->x2 + dst_dx, box->y2 + dst_dy); - v[3] = pack_2s(box->x1 + dst_dx, box->y2 + dst_dy); - v[6] = pack_2s(box->x1 + dst_dx, box->y1 + dst_dy); + v[0] = pack_2s(box->x2, box->y2); + v[3] = pack_2s(box->x1, box->y2); + v[6] = pack_2s(box->x1, box->y1); v[1] = (box->x2 + src_dx) * tmp.src.scale[0]; v[7] = v[4] = (box->x1 + src_dx) * tmp.src.scale[0];