qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Oliver Gerlich <olig9@gmx.de>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] PATCH: fix bgr color mapping on qemu on Solaris/SPARC
Date: Thu, 11 May 2006 16:57:44 +0200	[thread overview]
Message-ID: <446350E8.2040300@gmx.de> (raw)
In-Reply-To: <44633670.2040203@medsci.uu.se>

Dan Sandberg wrote:
> Paul Brook wrote:
> 
>> On Wednesday 10 May 2006 23:05, Fabrice Bellard wrote:
>>  
>>
>>> In order to stop the release of incomplete BGR patches, I am
>>> implementing a more complete patch. I am just adding depth = 32 with BGR
>>> instead of RGB. If other pixel formats are wanted, you should signal it
>>> now.
>>>   
>>
>>
>> I don't have any paticular favourite pixel formats, but qemu now has 
>> [at least] 3 different sets of low-level pixel conversion routines 
>> (vga, tcx and pl110). If you're feeling really enthusiastic it would 
>> be nice if they could be unified :-) It's one of the things I've been 
>> meaning to look at when I've nothing better to do, but haven't got 
>> round to yet..
>>
>> Paul
>>
>>
>>
>> _______________________________________________
>> Qemu-devel mailing list
>> Qemu-devel@nongnu.org
>> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>>
>>  
>>

Hi,
some comments on your suggestions:

> Just curious...
> 
> Are you using an OpenGL directdraw surface for the graphics emulation in 
> Qemu?
> If not, then consider the benefits:
> 1. It is much faster than any native graphics 2D/3D primitives like 
> Windows GDI

Not sure how much faster it is on Windows; currently Qemu uses plain SDL 
for drawing which probably uses DirectDraw under Windows. However, AFAIK 
under Linux SDL is not hardware accelerated in most cases, while OpenGL 
could give hardware acceleration.

> 2: It gives full control over things like window or fullscreen mode in 
> any (almost) resolution and color depth.

AFAIK the windowing/fullscreen stuff is not done by OpenGL itself, but 
by some external library; SDL offers this functionality, GLUT is another 
possibility, and apparently the GlScene lib you mentioned does this as well.

> 3. It is operating system independent.
> 4. It handles things like RGB, BGR, 24bit, 15bit, 16bit, 8bit, alpha 
> channel etc in hardware, all you have to do is select the pixelformat 
> you like to use for the buffer and OpenGL does the rest - lightning 
> fast, minimum CPU-load.

Basically, that sounds like a good idea to me.

> 
> My suggestion would be to write a frontend similar to VMware's for Qemu 
> in Lazarus. Why Lazarus?
> 1. The fantastic GLscene is available for Lazarus making 
> OpenGL-programming easy. Try: http://www.skinhat.com/3dpack/
> 2. With Lazarus a RAD graphic frontend based on OpenGL can be made and 
> directly compileable for most operating systems without need for 
> modifications.
> 
> Hope someone likes the idea, otherwise I will have to do it myself if I 
> can find some spare time.
> 
> Dan

Before you start working on this, I have some suggestions as well:

Is the drawing part really a performance bottleneck? And will this 
really be improved by changing the drawing functions, or wouldn't a 
better graphics card emulation give much more improvements? What does a 
profiler say about this?
I seem to recall that in most cases, SDL doesn't slow down performance 
in Qemu. It might be interesting to see how much the new RGB<->BGR 
conversions costs, though.

Another thing that I think is important is that not all computers have 
OpenGL acceleration. And at least on Linux, software OpenGL rendering is 
quite slow, so a port to OpenGL would probably be a huge drawback for 
some people. If OpenGL is really worth the trouble, one could add OpenGL 
rendering so that people can still use the "old" way of drawing if no 
hardware acceleration is available.

A GUI frontend would be quite nice, I think. So far several people have 
submitted (quite useful) patches for this, but nothing more has happened 
in that direction. Not sure what is required for a GUI that will be 
integrated into Qemu finally...


Thanks,
Oliver

  parent reply	other threads:[~2006-05-11 14:57 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-10 18:16 [Qemu-devel] PATCH: fix bgr color mapping on qemu on Solaris/SPARC Ben Taylor
2006-05-10 18:32 ` Anthony Liguori
2006-05-10 22:07   ` Leonardo E. Reiter
2006-05-10 21:30 ` Paul Brook
2006-05-10 22:21   ` Julian Seward
2006-05-10 22:05 ` Fabrice Bellard
2006-05-11  0:33   ` Paul Brook
2006-05-11 13:04     ` Dan Sandberg
2006-05-11 14:57       ` Jan Marten Simons
2006-05-11 15:48         ` Jim C. Brown
2006-05-11 14:57       ` Oliver Gerlich [this message]
2006-05-11 17:50       ` Anthony Liguori
2006-05-11 21:39       ` Fabrice Bellard
2006-05-12  8:36         ` Dan Sandberg
2006-05-12 13:26           ` Jamie Lokier
2006-05-12 15:36             ` Dan Sandberg
2006-05-12 15:53               ` Jamie Lokier
2006-05-12 16:40                 ` Dan Sandberg
2006-05-12 16:54                   ` Paul Brook
  -- strict thread matches above, loose matches on Subject: below --
2006-05-11  0:14 Ben Taylor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=446350E8.2040300@gmx.de \
    --to=olig9@gmx.de \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).