]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
drm/qxl: rewrite framebuffer support
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 5 May 2015 11:52:49 +0000 (13:52 +0200)
committerDave Airlie <airlied@redhat.com>
Thu, 7 May 2015 03:09:25 +0000 (13:09 +1000)
commitc0fe07aa50befe2e6e6525181e2080377a1c1494
tree1aa26df1860935e13dffa4c04d6611adbf9d3154
parent49f897647aab5958ad34a392b82fb22b7c83c01e
drm/qxl: rewrite framebuffer support

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: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/qxl/qxl_fb.c