drm: Add a driver for kvm emulated Cirrus

Stefan Lippers-Hollmann s.L-H at gmx.de
Tue Aug 2 14:29:31 PDT 2011


On Tuesday 02 August 2011, Matthew Garrett wrote:
> qemu-kvm emulates a Cirrus GPU, including its acceleration engine. We
> typically then run a Cirrus-specific X driver on top of this, which
> turns requests into commands and sends them to the emulated accelerator.
> This all seems to be unnecessary overhead given that we're just going
> to end up writing to memory from the host instead, and performance is
> almost certainly going to be better using an unaccelerated framebuffer
> and a guest-side shadow.
> This patch provides a simple modesetting-only KMS driver for the hardware
> emulated in qemu-kvm. It's stripped down to the point where it's able to
> program the emulation, but would almost certainly fail miserably if asked
> to run on real hardware. It's intended to reduce virt overhead slightly,
> but also to serve as a template to writing a basic KMS driver.
> The code and structure are heavily derived from Matt Turner's glint
> driver, with the modesetting code cribbed from cirrusfb (hence the
> license).

What is the status of this KMS based drm driver for cirrus-kvm?
I've been successfully testing this patch in 2.6.{38,39} and 3.0 
(Debian unstable userspace, xserver-xorg-core <=2:, 
xserver-xorg-video-cirrus <=1:1.3.2-4+b1, qemu-kvm <=0.14.1+dfsg-4) 
with pretty good results. While it shares the same issues with plain 
cirrus (no regressions) before this patch (inverted colors in KDE, 
window management issues in LXDE), the KMS based drm driver seems to 
be a big improvement over all.

	Stefan Lippers-Hollmann

More information about the dri-devel mailing list