From: Bartosz Fabianowski <bartosz@fabianowski.de>
To: bobb@absamail.co.za, qemu-devel@nongnu.org
Subject: Re: Subject: Re: [Qemu-devel] VGA BIOS source code
Date: Mon, 31 May 2004 22:17:21 +0200 [thread overview]
Message-ID: <40BB92D1.6040508@fabianowski.de> (raw)
In-Reply-To: <200405312200.03734.bobb@absamail.co.za>
Alright, after digging into QEMU's graphics card emulation and into the
VGA BIOS source, I came to a few conclusions:
a) SDD 6.53 is doing something utterly wrong. It switches the graphics
card into a banked graphics mode (it specifically requests banked and
not LFB) and then simply "forgets" to switch banks. I checked and
double-checked, there is simply no call to the bank switching function.
I guess this also means the problem with SDD 6.53 can't be fixed by
tinkering with QEMU and/or the BIOS.
c) The fact that SDD does something wrong doesn't mean that only SDD is
at fault if graphics modes don't work as advertised. The entire VESA VBE
implementation is rather broken, shaky and incomplete.
b) The way the graphics card is emulated by QEMU (and Bochs and plex86
for that matter) is totally inefficient, error-prone and overly
complicated. The card's logic is split between a few C files (vl.c,
hw/vga.c) that get compiled and executed natively and a bunch of C files
containing heaps of x86 assembly that get compiled into a VGA BIOS. The
host emulator and the BIOS work together in a very complicated way and
it is never obvious why a certain function is implemented in the BIOS or
on the host.
d) Finally, as a conclusion from a) to c), I believe it would be best to
ditch the entire VGA BIOS and implement all functions of the graphics
card in C, natively, inside QEMU. This will be more efficient and less
error prone. Now, I haven't seen the patches mentioned by Fabrice that
emulate a CLGD54xx. But I certainly hope it is all native and not a
half-native half-emulated solution like the current one.
- Bartosz
next prev parent reply other threads:[~2004-05-31 20:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-31 20:00 Subject: Re: [Qemu-devel] VGA BIOS source code Bob Barry
2004-05-31 20:17 ` Bartosz Fabianowski [this message]
2004-06-01 4:14 ` Kyle Hayes
2004-06-01 5:48 ` Bartosz Fabianowski
2004-06-01 10:30 ` Fabrice Bellard
2004-06-01 11:44 ` Derek Fawcus
2004-06-01 18:05 ` Bartosz Fabianowski
2004-06-01 19:09 ` John R. Hogerhuis
2004-06-01 20:53 ` Derek Fawcus
2004-06-01 21:51 ` Hetz Ben Hamo
2004-06-01 22:23 ` Jan Fabianowski
2004-06-02 8:28 ` Johannes Schindelin
2004-06-02 9:19 ` Bartosz Fabianowski
2004-06-01 18:42 ` Daniel Serpell
2004-06-01 20:46 ` Derek Fawcus
2004-06-01 20:59 ` Daniel Serpell
-- strict thread matches above, loose matches on Subject: below --
2004-06-02 11:41 Vladimir N. Oleynik
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=40BB92D1.6040508@fabianowski.de \
--to=bartosz@fabianowski.de \
--cc=bobb@absamail.co.za \
--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).