Re: Svgalib and modern video cards

Search this archive.

From: Michael Weller (eowmob@exp-math.uni-essen.de)
Date: Tue 24 Mar 1998 - 18:58:40 IDT


On Tue, 24 Mar 1998, Jan Hubicka wrote:

> It is not hard to see, that SVGAlib was not designed for such card. It does
> lots of inputs/outputs to vga registers, without porividng any way to disable
> this. Mach32 problem ran into same problems and had to hack lots of Mach32
> stuff into waitretrace, setpalette and other stuff.

Yes, this is right.

> Since pyramid is already the second such card, I decided to make thinks cleaner
> and give drivers way to handly such stuff manually. I think it should be nice
> to add this into SVGAlib before pyramid drivers will be released (since
> it should take a while, until Pyramid will be released and it should help
> to other developers too). Looking forward for your ideas, comments and so on.
> If someone is interested, I should make a patch...

[...]

All this sounds nice. I'd be willing to do the necessary Mach32
modifications.

> wich is set in case, that svgalib is using secondary videocard. It
> should not blank original screen then or so, but it is ignored for now

Most probably one will run into many other problems anywayif it is a
secondary card anyhow. This doesn't mean one should think about it ;-).

> Another problem is linear framebuffer. Pyramid has just linear framebuffer
> (luck is, taht it is possible to emulate banks using APT registers).
> vga_setlinear function works well (and program testlinear), but most
> programs don't use it at all. I think, svgalib should enable it at default
> (at least vgagl should do this). But I am not sure, if it will not break

It will. The application must be aware of bank switching (Honestly most
don't care about the svgalib graphics funcs (and not all of these run with
linear mode)). SO they do the greatest common divisor: Bank flipping.

> some application. In vga_gl is line for enabling linear framebuffer, but
> it is commented out and comment says, that svgalib don't do correct console
> switching with linear framebuffer enabled. Whats worng with this?

Honestly, prior to the Mach32 linear support it was a mess. Cirrus just
enables the linear support at some random address and can easily break
things (I dunno if S3 driver has any linear support at all).

Again: bank flipping is the greatest common divisor, you need to support
it anyway.

> Last think is, that pyramid supports line widths just as powers of two.
> Svgalib assumes, that linewidth=width*bytesperpixel, wich is not true

Mach32 has similar problems. It seems that most cards need linewidth a
multiple of 64 for noise free video signal. Some programs migth have
problems with a 'non-standard' linelength, most I cured for the Mach32.

Go figure.

> anymore. I've patched vga_setmode and vga_getmodeinfo to let driver
> specify an linewidth. It seems to work well with vgagl, vgatest
> and my program XaoS (do you have any other programs for svgalib
> supporting truecolor? - pyramid don't have 256 color modes yet)

Hmm, seejpeg, zgv come to mind. The latter needs *some* VGA modes though,
I understand this excludes it from the list.

Well, sorry, gotta run for now,
Michael.

--
(^                                                          )
(+---   For the browser damaged young people: THIS IS A SIG!)
(Michael Weller: eowmob@exp-math.uni-essen.de, eowmob@ms.exp-math.uni-essen.de,
 or even mat42b@spi.power.uni-essen.de. If you encounter an eowmob account on
 any machine in the net, it's very likely it's me)


This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:22 IST