diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-06-23 11:14:25 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-06-23 11:14:25 +0100 |
commit | 30348efd57135edee41fccb87133c572b6473aa8 (patch) | |
tree | 648ec21e51e3fa2929e612de786c741f9a1f178c /src/sna/gen8_render.c | |
parent | e1e853edee67c3ced43d5e4b1fbd52ca4c92966d (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.c | 16 |
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); |