]> git.baikalelectronics.ru Git - kernel.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)
commitad4e500c297eec545adeee6cbfc387cfe644d6d7
tree1aa26df1860935e13dffa4c04d6611adbf9d3154
parent3d6ccace8348bded36172441c30564189b4e43be
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