[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] VMware SVGA II emulation

From: andrzej zaborowski
Subject: [Qemu-devel] [PATCH] VMware SVGA II emulation
Date: Sun, 11 Mar 2007 15:48:35 +0100

this adds emulation of VMware SVGA II chipset (mostly a proof of
concept). It's a pci card that VMware machines use as main display.
There's an opensource, crossplatform X driver for it in most
distributions and it's autodetected like other cards by some
live-cd's. The advantages over standard vga:
* arbitrary resolutions,
* extensible - the guest will use as much hardware acceleration as
the card claims to support in the CAPABILITIES flags. 3D acceleration
can be easily added (dunno if it's documented).

This implementation only does mouse cursor and rectangle
blitting/filling in hardware. The rectangle operations don't work so
well and they're only used when moving windows in X. With normal
software drawing the animation looks probably smoother (though
obviously slower).

I didn't embed a standard VGA card in this card (like in the cirrus),
so it doesn't have text mode. It should be easy to add.

Pass "-vmwarevga" to enable.

The defines at the top of the file are for disabling/enablig the
acceleration - if anything seems to be broken try disabling
HW_RECT_ACCEL. DIRECT_VRAM is for giving direct access to the SDL
framebuffer for the guest - currently there are two framebuffers: one
in the video ram, in the region pointed to by phys_ram_base and the
other one in ds->data, and in case of VMware svga they have the same
format, so it would be logical to use only one of them. However
ds->data is also used for the qemu virtual consoles. Since I'm using
io memory, the drawing is slower with DIRECT_VRAM than without it -
when the copying between the framebuffers is done with memcpy -
glxgears gave me about 200 FPS with DIRECT_VRAM and 300 FPS without
it. It may be worth adding a yet another memory pages type for faster

VMware svga also does transparent and full colour mouse cursors, and
other tircks, but SDL doesn't support that so I didn't add it.

A (not very amusing) screenshot at


Attachment: 0003-VMware-SVGA-II-emulation.txt
Description: Text document

reply via email to

[Prev in Thread] Current Thread [Next in Thread]