Re: [AD] Report on fbcon 3.9.28 |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
Vincent PENQUERC'H <vpenquerch@xxxxxxxxxx> writes:
> I ran the demo game from 3.9.28. I hadn't run it since... well, long.
> Probably 3.9.8. When I ran it, it displayed well the title screen, but the
> mode selection screens were black. Esc would exit, and two enters (if I
> recall well there were two) would play the game. In the game, the palette
> was all messed up.
>
> I was using fbcon ith a 640x480x16.
This is because the demo game wants to run in 8 bit color, but your fbcon
driver doesn't support that, so GFX_SAFE made do with a 16 bit mode instead,
which the demo doesn't know how to use.
I'm not totally sure whether this is a bug or not. I certainly don't want to
make all the supporting programs handle all possible depths (that would be
too much extra hassle), but it is somewhat uncertain whether fbcon ought to
be changing the depth like this in response to GFX_SAFE. At one point I had
it emulate the color depth on hardware that didn't support the requested
depth, but I took this out again because it didn't feel right to me (IMHO
that sort of emulative approach is better suited to the X code than to a raw
mode console video driver). So I tend to think that perhaps fbcon should
just give up if it can't find the requested color depth, even in GFX_SAFE
mode. It seems too risky to let programs go on running with unexpected pixel
formats, and fbcon is unique in being the only driver that sometimes has no
way to let us change this...
What do the rest of you think? I know we talked about this before, but I
don't think it was ever properly answered. There are three options that I
can think of:
- allow GFX_SAFE to set any color depth at all, and require programs to
cater for this. This seems risky to me, since it introduces a high chance of
bugs that will only crop up on machines where this happens and therefore are
missed during testing.
- emulate the color depth if the desired format is not available. This works
well in X, but IMHO the console drivers are more of a low level interface to
the hardware, so they shouldn't put this sort of layer in between the caller
and the graphics card.
- just give up if we can't set the requested depth. I think this is probably
best: it does lead to some situations where GFX_SAFE will fail in console,
but that is only with the vesafb driver...
--
Shawn Hargreaves - shawn@xxxxxxxxxx - http://www.talula.demon.co.uk/
"A binary is barely software: it's more like hardware on a floppy disk."