• Gerd Hoffmann's avatar
    drm/qxl: rewrite framebuffer support · c0fe07aa
    Gerd Hoffmann authored
    Completely different approach:  Instead of encoding each and every
    framebuffer update as spice operation simply update the shadow
    framebuffer and maintain a dirty rectangle.  Also schedule a worker
    to push an update for the dirty rectangle as spice operation.  Usually
    a bunch of dirty rectangle updates are collected before the worker
    actually runs.
    
    What changes:  Updates get batched now.  Instead of sending tons of
    small updates a few large ones are sent.  When the same region is
    updated multiple times within a short timeframe (scrolling multiple
    lines for example) we send a single update only.  Spice server has an
    easier job now:  The dependency tree for display operations which spice
    server maintains for lazy rendering is alot smaller now.  Spice server's
    image compression probably works better too with the larger image blits.
    
    Net effect:  framebuffer console @ qxldrmfb is an order of magnitude
    faster now.
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    c0fe07aa
qxl_fb.c 14.2 KB