www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/17/16:51:48

Reply-To: <arfa AT clara DOT net>
From: "Arthur" <arfa AT clara DOT net>
To: "DJGPP Mailing List" <djgpp AT delorie DOT com>
Subject: RE: Allegro and VESA 2.0
Date: Thu, 17 Sep 1998 16:25:18 +0100
Message-ID: <000401bde24f$605f6440$a14e08c3@arthur>
MIME-Version: 1.0
In-Reply-To: <3600AE89.4D194557@mailexcite.com>
Importance: Normal

> > Can anybody give me a description of VESA?  How does it
> different from other
> > video modes, such as 13h or ModeX?
> >
> > The reason that I'm asking is because my program is fine in
> ModeX or 13h, but
> > when I switch to a VESA 2.0 driver, the image flickers and
> shutters.  The
> > program uses a double-buffering system that, for every animation frame:
> > alwaysclears the entire buffer, redraws everything, and then
> blits to the
> > screen.  (The problem also occurs when I'm page flipping) The
> elements that are
> > drawn _early_ are solid and stable, but the parts of the screen that are
> > drawn_later_ are flickery and unstable.
>
> Hmmm. Clearing the frame before the video card can switch to the
> new one...?

Or not using a vsync(). Remember, drawing using VESA (esp. banked mode) is
slower than Mode 13h or ModeX, so you should really include a vsync() unless
1) You have a monitor which can run at about 200Hz, or 2) most of your
background is black (like in the Allegro Demo).

> > Also, what is the difference between banked mode and the linear
> framebuffer
> > drivers?  (Besides that linear is faster.)
> >
>
> Banked mode forces you to only access a 64K chunk of video memory
> at a time. Some
> cards have slightly different capabilities (multiple address
> space 'windows', 32K
> banks, can only read from this one, can only write to that one,
> and crap like
> that), forcing you to adapt your routines to labourously detect
> which banking
> scheme is in use, and adapt your routines to switch banks when
> drawing to different
> areas of the screen (been there, done that, didn't enjoy). Linear
> mode just lets
> you access any address of video memory at any time (entire video
> memory is fully
> addressable at all times) (haven't done yet, probably won't
> because OpenGL is more
> productive).

That's basically it. Always use Linear Framebuffer mode if available, but
you can use readline/writeline if not. I think VESA 1.x uses banked mode
only, so you should always provide a compatibility mode anyway.

If you want more info, read the Allegro manual (you did do this, right)
because it's explained in there.

> (Note that I am not cutting up the VESA banked memory standard. I
> am cutting up
> video card manufacturers that all went their seperate ways,
> arrogantly thinking
> that their complex (or inexpensive) design is the best, screw
> compatibility and
> standards. Or maybe the government should force companies to only
> make good
> hardware...yeah...that's it...hahaha)

That's Intel gone for sure.

James Arthur
jaa AT arfa DOT clara DOT net
ICQ#15054819

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019