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."



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/