I've tried the included examples ex3buf and exflip and
also another of the examples which uses page flipping
with 4.2.0 and 4.3 on an AMD64 system running Gentoo
Linux equipped with an old nvidia geforce 2mx card.
The driver includes DGA support.
Running the examples with super user privileges and
GFX_XDGA2 seems to be the only way for me to get triple
buffering.
Linked against allegro-4.2.0 this resulted in very high
keyboard response delay and xterm keyboard garbage.
Linked against allegro-4.3 from svn the delay is
considerable lower but still the examples don't quit
immediatly with page flipping or triple buffering and
terminal gets alot of newlines and some stuff is invisible.
j_daniel@rbg.informatik.tu-darmstadt.de
Logged In: NO
Doing the above with the standard GFX_XWINDOWS_FULLSCREEN
driver after having used DGA causes unable to create video
bitmap errors.
Logged In: YES
user_id=32894
Yes, DGA/DGA2 only works as root, and has been abandoned by
the X11 devs. And I get similiar results here (and the dga2
test app simply crashes).. so I gather, DGA is broken (or do
you have any working DGA apps on your system?)
So, not much we can do about it from inside Allegro. Allegro
4.3 will have an OpenGL driver which can do everything DGA
could (and more), but it will be some time until that is
useable.
The standard way to deal with this right now is to use a
memory buffer for drawing under X11.
Of course, this means, you get no HW acceleration at all, so
another option would be to get the AllegroGL addon from CVS,
and do your graphics with OpenGL. More work, but you get to
play with OpenGL :) (If you are using C++, there's also
another addon called OpenLayer which I heared is easier to
use..)
Logged In: NO
I did another try without DGA create_video_bitmap always
fails with 4.3. exupdate is a good program to test it.
With allegro-4.2 it doesn't seem to fail but the keyboard
response is high and the fps display seems way too high.
Logged In: YES
user_id=32894
Ah, yes, I remember, the X11 page flipping hack, from
exupdate.c:
ifdef ALLEGRO_VRAM_SINGLE_SURFACE
if (set_gfx_mode(card, w, h, w, num_pages*h) != 0) {
else
Well, I'm not sure how much benefit it has, since it limits
you to create the pages out of the desktop dimension. So you
can get 320x200 pages, but no pages with the desktop size.
The FPS are high because no vsync is done in that case it
seems, as with the other update methods (this is probably a
bug..).
About the keyboard response, is it normal with the other
update methods?
Logged In: NO
uhm I don't think the virtual size scroll hack is a problem.
exupdate 1 and 4 work fine.
exupdate 2 has the keyboard problems which don't seem to be
DGA related because they occur with X11 driver too.
exupdate 3 doesn't work without DGA because the X11 driver
doens't support triple buffering.
I saw a thread at the allegro.cc forums about the same
keyboard problem on windows with triple buffering.