[Top][All Lists]

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

Re: [Qemu-devel] qvm86, kqemu and video speed

From: Darryl Dixon
Subject: Re: [Qemu-devel] qvm86, kqemu and video speed
Date: Tue, 12 Apr 2005 15:13:10 +1200

Interestingly, one of the things that enamours me of Qemu over VMWare is the video.  Because the Cirrus card that Qemu emulates has DirectDraw compatible drivers for Windows, it is possible to play 2D DirectDraw games in Qemu (eg, Age of Empires II, Civ III, etc).  This is impossible in VMWare, despite the fact that the video operations in VMWare are actually faster.

An illustration of the speed of video update in Qemu (and how much room is left for improvement :) is the fact that in Civ III, all the sprites are rendered with parts of them in a 'base colour' (blue, IIRC), which then has your team colour overlaid on top.  In Qemu this process is visible as a slow flashing back and forth between the 'base' colour and the 'team' colour.  In VMWare, of course, it might be faster, except that you can't even start it :)


On Mon, 2005-04-11 at 16:17 +0100, Paul Brook wrote:
On Monday 11 April 2005 16:01, James Mastros wrote:
> After that, I think the best thing to do is to move from emulating a
> standard video card to defining our own that maps from the operations
> that the OS calls its video driver on to the operations that SDL
> implements, leaving any that do not map simply for the OS to emulate, on
> the theory that it probably knows how to better then we do.  However,
> this is a much larger undertaking, as it requires learning the driver
> model of the guest OSes.

I agree that emulating a "custom" driver model should give better performance 
than emulating real hardware (VMware does this). However I think you should 
provide all the functionality you possibly can, even if the host doesn't 
provide native acceleration for it. It's always going to be faster to do 
something in software on the host than it is on the guest.


Qemu-devel mailing list

reply via email to

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