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