List of (recently) frequently asked questions about svgalib. Esp. about it's status and future. Please note that as of now all answers are just written by me, Michael Weller <eowmob@exp-math.uni-essen.de>. I'd like this to change. So email your suggestion (best of all: question and the answer).
Also, most questions deal with the status and future and my ideas about it. Necessarily they contain my own private opinions on this. People may disagree and I'm sure I don't have the best ideas about it or may even be completely wrong. I don't want to force anyone to agree with me.
Also, I was asked about MY opinions, so I'm just presenting them here.
You must be the owner of the current console to use svgalib.
Not running in a graphics capable console, and unable to find one.
However, though logged in not directly from the linux console, I am the owner of the console.
Yes, the documentation is short and/or confusing. Sorry, English is not my native tongue. Many people complain and want to write some better documentation. You are welcome to do so! However, up to now, either people found the documentation sufficient once they looked at the correct files or they just gave up. At least, I never heard from these people again.
Also, svgalib comes with source. If in doubt: read it.
Finally: Linux distributions include svgalib, but not the source and README's (or hide them so good noone finds them). Well, no problem, get full svgalib source, demos, readme's from svgalib-*.tar.gz on any Linux FTP server in your vicinity. Even if you don't dare to install or compile it, it contains the readme's.
Oh yes, there are some simple demos in the demos/ subdir. They should get you started.
When someone writes man(1) manual pages, a distribution might just install them. Please do not complain, write them, mail them to me.
Please understand that this is a free project. I will not go and buy a similar card and write a driver for you. I already wrote support for the hardware I have! I just do this as a hobby. Because I don't get paid for this I can not just buy card & docu and spend much much time supporting whatever graphics card on earth exists.
Also read below on the future of svgalib.
If you don't feel able to write a driver for whatever reason, please do not complain if other people don't do it for you (because you are not better than they are).
You must be the owner of the current console to use svgalib.
Not running in a graphics capable console, and unable to find one.
However, though logged in not directly from the linux console, I am the owner of the console.
The answer is, of course, no.
The VESA driver does work with many cards though.
I liked this idea so much, I even started coding a frame buffer device once. After a short time, other people came out with the GGI idea. Right from their beginning they claimed to be the only source of wisdom. I tried to join our efforts, but failed. In general we have the same goals (read the GGI project pages for that).
Anyhow, at that time a flame war started. I don't really know why. I don't see I did anything else than offering my opinions, work and experience. But that should be judged by others.
Well, after some time I stopped bothering them. I was satisfied to learn later though that they actually came up with some conclusions I proposed first but weeks or months later. But let us leave the past alone.
When intending to contribute to svgalib, you should think about what you really want. I don't see that GGI is becoming available soon. GGI people told me the opposite again and again, ok, I still don't see it. Still out of a sudden, everything might be GGI infested, so you might consider contributing to GGI instead.
With svgalib you might be able to use your fruits earlier. And anyone (with supported hardware) can just use it right away without reinstalling kernel/X11 what else (maybe being unable to use something he did before).
Yes, this is what many people say. This is the common Unix way to do it. X does it.
But X has some drawbacks:
Still, an advantage of Linux is the ability to use old hardware for mission critical background jobs on the net (servers/routers/firewalls) on low price or otherwise even unusable hardware.
This imposes a bunch of overhead. If you just want access to the screen memory, it slows things down as hell. If you want just to use above's draw commands, it is ok!
However, you cannot change screen modes and rez as easily. This is IMHO THE drawback of X. For a picture viewer, you want 256 color high/true color modes on a per picture basis (also, insert any other application you like: movie viewers, a special game, a drawing program). Also, you want a small picture use a low rez s.t. it does not appear as a thumbnail, maybe use a high rez mode for a huge picture which you don't want to use on a permanent basis because it flickers like hell (and you don't want to use a panning virtual desktop too, I hated them at best).
This latter restriction can of course be circumvented by enlarging the picture. But this will need much time for a picture viewer already and certainly too much for smooth video or game animations.
Alas, there might be security holes, also the stability and performance issues (IRQ driven accelerator queue, CPU support for VGA memory paging) still exist, though one can expect an Xserver to be a generally well coded application.
For console graphics, svgalib is still the only solution for most people, and as such it should go on for a while. Compared to the othe console graphics options (kgi and kernel fb device), writing svgalib driver is the simplest (at least, this is my experience), and so it makes sense to believe that svgalib will work on all cards where there is someone interested enough in that support.
First, make svgalib cooperate nicely with kernel fb device. Then (and it should be very similar) make svgalib work on a secondary vga card.
A rewrite of the code for memory handling and virtual console handling is necessary for the previous goals, but is also necessary in itself, and so will be done also.
I do intend to maintain complete binary compatibility, so that older programs will go on working.
As internal changes are made, the drivers have to be changed as well. For some of the older drivers (ali, ark, ati, et3000, et4000, gvga, oak), I no longer get any reports, so I don't know if they still work. Some features are also lost, for example, linear frame buffer on non-PCI cards. This should not be a very big problem, as users with such cards can go on using 1.3.1, as most changes are not applicable for older machines.