From: Dan Sandberg <dan.sandberg@medsci.uu.se>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] PATCH: fix bgr color mapping on qemu on Solaris/SPARC
Date: Fri, 12 May 2006 18:40:43 +0200 [thread overview]
Message-ID: <4464BA8B.9040801@medsci.uu.se> (raw)
In-Reply-To: <20060512155317.GD4310@mail.shareable.org>
Jamie Lokier wrote:
>Dan Sandberg wrote:
>
>
>>When the screen is "painted" the DAC's read from the host video buffer
>>(1600x1200) and interpret it as RGB. Somewhere they "hit" the left
>>boundary of the separate viewport that you have set up and bang, on the
>>fly they switch to reading 800x600-organized data from the other video
>>buffer and interpreting it as BGR. Later on the same video line they
>>"hit" the right boundary of the separate viewport and bang they switch
>>back to reading from the main buffer and interpreting it as RGB.
>>
>>As a result the 1600x1200 RGB buffer and the 800x600 BGR buffer are
>>equally active and equally often updated on the same physical screen -
>>without need for any moving data around, and without any time consuming
>>activity at all taking place as all switches are done on the fly in the
>>background by special hardware (if the board supports this).
>>
>>It is like having two separate physical video boards, each with its own
>>display buffer.
>>
>>
>
>Thanks; I didn't know OpenGL had that function as well as 3d rendering.
>
>That's what the Xv extension does ("X video") - it's to provide an
>overlay to be used by video players. Xv scales the source image and
>mixes it with the primary framebuffer in the way you describe.
>However, Xv is intended for non-RGB colourspace source formats, so may
>not be suitable for Qemu. I don't know if Xv sometimes can support RGB.
>
>Since Xv is supported by many video cards, even old ones without 3d,
>or without working 3d drivers, I'm surprised that particular OpenGL
>function isn't commonly implemented with equal performance.
>
>-- Jamie
>
>
>_______________________________________________
>Qemu-devel mailing list
>Qemu-devel@nongnu.org
>http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
>
>
Oooops,
I just took a look at a list of OpenGL pixelformats. I really thought I
had seen BGR there, but I was wrong. Again I am new to OpenGL so do not
take anything I say for the truth. Here is the list:
GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE,
GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16,
GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8,
GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5,
GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2,
GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16
Anyway, many people think of OpenGL as just 3D, but it is extremely
competent for 2D (given a good driver).
If you want an example of OpenGL superior 2D performance compared to
Windows GDI routines, then go to
http://www.skinhat.com/lazarus/
and download Lazarus from there with GLscene preinstalled.
(You probably also need to download and install FreePascal from:
http://www.lazarus.freepascal.org/)
(If you do not have OpenGL drivers installed you have to get them from
your graphic card manufacturer's homepage.)
There are a large number of OpenGL examples included complete with
source code ready to compile and test.
Open the example project glscene/demos/bench/canvas/canvas.lpr and
compile and run by hitting the green arrow.
Windows GDI performance look really bad in comparison. On my computer
the 20.000 ellipses test with a line width of 2 took 2268 ms for
standard Windows GDI and 145 ms for the OpenGL 2D-canvas (and its just a
standard business computer with no fancy graphic card at all).
There are many other nice examples included as well, so it is well worth
the download.
Regards
Dan
next prev parent reply other threads:[~2006-05-12 16:40 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
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 [this message]
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=4464BA8B.9040801@medsci.uu.se \
--to=dan.sandberg@medsci.uu.se \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.