Re: [AD] request_scroll under dos/vesa

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


> There is a suggested patch for the request_scroll() fix in the
> attached scroll.

You're talking about a fix: what's exactly the problem that needs to be
fixed with the current implementation ?

> I found out that under DOS scroll_screen() wraps to the pmode call
> setdisplaystart when linear frame buffer is used. Only problem it sets
> EBX to 0x80 which waits for the retrace. I think it would be reasonable to
> be able to chose EBX=3D0x00 mode where the function does not wait for
> a retrace to happen.

Why ? poll_screen() is related to page flipping, whose standard behaviour is
(on any platform, not only DOS) to sync with the vertical blank.
If you want to bypass the vsync(), use triple-buffering and
request_scroll().

> Request scroll will not do because that will wrap back to scroll_screen()
> if tripple-buffer is not available.

Then triple-buffering is not supported in this case.

> There could be other reasons to just want to scroll without always waiting
> for a retrace !

But is that really safe ? Did you test it on several video cards in order to
detect any flicker problem ?

We had the same alternative some time ago under Windows: bypass the vsync
for page flipping or not. It works on some video cards, but badly flickers
on others (notably Voodoo 3 cards).

> Is this something that that may be implemented in future releases or you
> may explain why is EBX 0x80 set is stone.

Nothing is really set in stone, but this VESA code has been there for long
years and extensively tested and used.

> On the topic of scroll...
> Maybe request_scroll() sould be called schedule_scroll().
> (VESA calls it that way too.)

No, we have to keep backward compatibility.

--
Eric Botcazou
ebotcazou@xxxxxxxxxx



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