summaryrefslogtreecommitdiff
path: root/src/sna/gen8_render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-06-23 11:14:25 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-06-23 11:14:25 +0100
commit30348efd57135edee41fccb87133c572b6473aa8 (patch)
tree648ec21e51e3fa2929e612de786c741f9a1f178c /src/sna/gen8_render.c
parente1e853edee67c3ced43d5e4b1fbd52ca4c92966d (diff)
sna/gen6+: Avoid adjusting copy coordinates until commited to using them
If we need to fallback to the BLT unit, we need to pass it the original source/dest coordinates and not our transformed render coordinates. So keep the original values intact until we start emitting the render operation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen8_render.c')
-rw-r--r--src/sna/gen8_render.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index 64976303..f3ccb9b7 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -2851,11 +2851,6 @@ fallback_blt:
extents.y2 - extents.y1,
n > 1))
goto fallback_tiled;
-
- dst_dx += tmp.dst.x;
- dst_dy += tmp.dst.y;
-
- tmp.dst.x = tmp.dst.y = 0;
}
tmp.src.card_format = gen8_get_card_format(tmp.src.pict_format);
@@ -2881,9 +2876,6 @@ fallback_blt:
extents.x2 - extents.x1,
extents.y2 - extents.y1))
goto fallback_tiled_dst;
-
- src_dx += tmp.src.offset[0];
- src_dy += tmp.src.offset[1];
} else {
tmp.src.bo = src_bo;
tmp.src.width = src->drawable.width;
@@ -2911,6 +2903,14 @@ fallback_blt:
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
}
+ src_dx += tmp.src.offset[0];
+ src_dy += tmp.src.offset[1];
+
+ dst_dx += tmp.dst.x;
+ dst_dy += tmp.dst.y;
+
+ tmp.dst.x = tmp.dst.y = 0;
+
gen8_align_vertex(sna, &tmp);
gen8_emit_copy_state(sna, &tmp);