This prevents the fallback from calling prepare_access against the whole screen, which in turn keeps us from transmitting the whole screen more than necessary. Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx> --- src/dfps.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/dfps.c b/src/dfps.c index 568ba5e..f113f27 100644 --- a/src/dfps.c +++ b/src/dfps.c @@ -270,15 +270,22 @@ static Bool dfps_put_image (PixmapPtr dest, int x, int y, int w, int h, char *src, int src_pitch) { dfps_info_t *info; + FbBits *dst; + FbStride dst_stride; + int dst_bpp; if (!(info = dfps_get_info (dest))) return FALSE; dfps_update_box(&info->updated_region, x, x + w, y, y + h); - /* We can avoid doing the put image ourselves, as the uxa driver - will fall back and do it for us if we return false */ - return FALSE; + fbPrepareAccess(dest); + fbGetPixmapBitsData(dest, dst, dst_stride, dst_bpp); + fbBlt((FbBits *) src, src_pitch / sizeof(FbStip), 0, dst + (y * dst_stride), dst_stride, + x * dst_bpp, w * dst_bpp, h, GXcopy, FB_ALLONES, dst_bpp, FALSE, FALSE); + fbFinishAccess(dest); + + return TRUE; } -- 2.1.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel