PDA

View Full Version : glCallList & FullScreen Sloooow



Antorian
09-20-2002, 09:35 AM
I've got a problem, I use 3 config (AMD XP 1800+ GF2MX, AMD DR 800 VOODOO3,INTEL CELL 433 VOODOO3) and I've got a crazy problem.
I've seen in the red book that it's possible to use Display List.
So I was using this feature to do my font display.
Everything is ok on my XP+GF2MX but on VOODOO3 in the fullscreen mode, the system is very slow (so slow that it looks as frozen) (got 85 FPS in windowed mode, and less than 0.01 FPS in fullscreen on this VGA)
When I disable the display font line:

glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);

everything is Ok (run fast and correctly).
I haven't noticed this fact because I was dev' with the GF2Mx but on Voodoo card it seem to be a problem.

I must have a problem with this glCallList ('cause I couldn't believe it comes from my Voodoos 3).

Has anyone an idea of that problem?
Is it due to Voodoo?
Waooww http://www.opengl.org/discussion_boards/ubb/tongue.gif I've got a voodoo that runs faster in windowed mode than fullscreen? lol ... a miracle? (aouch 0.01 FPS great man , I'm the best http://www.opengl.org/discussion_boards/ubb/smile.gif

Thanks if anyone can get me out this crazy thing. http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Korval
09-20-2002, 09:41 AM
It could be that 3DFX never really bothered to make display lists run very fast in their GL implementation.

Antorian
09-20-2002, 09:52 AM
Aouch http://www.opengl.org/discussion_boards/ubb/frown.gif

I looked for the tutorial from www.gametutorial.com (http://www.gametutorial.com) about fonts, and it do the same (also I'm in doubt of my cards)... but how it's possible ? the drivers would fit with OpenGL 1.1 specs...
(Latest official Drivers,and last unofficial beta used).

Is there another gl command to do this trick on Voodoo3?

Sy
09-20-2002, 09:55 AM
Maybe it won't help you much, but i've got voodoo 3 too, and using display lists is sure way to slow it down 3 times.
Once I had the same problem like you do (I mean 0.1 FPS). Solution was not using the display lists http://www.opengl.org/discussion_boards/ubb/wink.gif.

Roadkill
09-23-2002, 10:05 AM
Maybe the 3dfx drivers implement display lists in software. Could this cause a slow down?

-Tyler

knackered
09-23-2002, 10:37 AM
How else could they implement display lists? The voodoo series of cards didn't/doesn't have hardware T&L, so everything bar the triangle rasterising was/is done in software.

Roadkill
09-23-2002, 08:48 PM
Just out of intrest did the voodoo5 have display lists?

-Tyler

vshader
09-23-2002, 09:15 PM
well, did the voodoo5 have T&L?
there's your answer.

Tom Nuydens
09-23-2002, 10:55 PM
Originally posted by vshader:
well, did the voodoo5 have T&L?
there's your answer.

That is definitely no excuse for letting display lists run slower than immediate mode or vertex arrays. This sounds like it's entirely due to crappy drivers.

-- Tom

Antorian
09-25-2002, 11:28 PM
So, is there a way to replace the display list code with vertex array code or something else working on voodoo?

What will become this part of code?:
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);

'cause would like to keep my font code, and using it on voodoo without problem.
Thanks

Antorian
09-25-2002, 11:30 PM
Just another Point: May be voodoo3 doesn't support T&L and display list, but ...why it works in windowed mode?
My problem appears only when using display list in fullscreen.
A drivers Bug? http://www.opengl.org/discussion_boards/ubb/smile.gif
Thanx

pATChes11
09-26-2002, 10:39 AM
Solution: Get a GeForce4 Ti4x00 series card. :P

Seriously, the Voodoo cards are so out of date, and you could get my GF2 GTS 32meg AGP 4x with fastwrites support for like $45 incl shipping... there is no excuse not to have one :P

Antorian
09-26-2002, 02:16 PM
Yes sure I don't want to keep a such old series (wich as more effect for 2D than can expect all NVidias ie: emulators on TV http://www.opengl.org/discussion_boards/ubb/smile.gif )
But my problem is: if I do applications for commercial use, I must prevent from bugs with some Video Card (I can't imagine I told every costumer "Go Buy a GF4" http://www.opengl.org/discussion_boards/ubb/biggrin.gif ...).
My regards on that problem is only to prevent this bug (or implementation failure) from other cards.
Voodoo's, Matrox old series, FireGL , TNT2, etc... Savage,...all those... can be found on costumers' PC's.
I just wandering if it only occurs with voodoo and if it's a problem coming from my app or from drivers.
Thanks for all http://www.opengl.org/discussion_boards/ubb/tongue.gif

*Aaron*
09-26-2002, 02:28 PM
Here's a thought: on my old 8 Mb Savage3D, OpenGL rendering would slow down to a crawl like you are describing when I would enlarge the window beyond a certain point. I seem to recall that it only happened in 32-bit color mode. I attributed this to the driver switching to software mode because it didn't have enough onboard memory to support this window size. Maybe when you switch to fullscreen, it is switching to software mode. Taking out the code that draws the text might just be speeding it up enough to give a reasonable frame rate even though it is still in software mode. How much mem does your Voodoo 3 have?

jwatte
09-26-2002, 08:20 PM
You will note that a lot of commercial games don't support Voodoo cards anymore.

People who bought Voodoos were mostly gamers who cared about cards. Those people have long since upgraded to something better.

Antorian
09-27-2002, 04:15 AM
Aaron: My card is 16Mb memory but it's not the problem 'cause in fullscreen I set up resolution to 640x480 and in windowed mode I go up to 1024/768...

jwatte: yes I know that no commercial games support the voodoos "for special features" but a commercial application must run on every card without bug. (I don't search for psecials feature ...only want to have my scene rendered correctly [in software or hardware mode} at least 15Fps in 640x480.

I just want to avoid problem with other graphics cards. And to be mostly compatible.
Thanks Aaron for that point on Savage. http://www.opengl.org/discussion_boards/ubb/tongue.gif

zeckensack
09-27-2002, 08:17 AM
You surely don't switch to 32bit color mode, do you? http://www.opengl.org/discussion_boards/ubb/biggrin.gif

josip
09-27-2002, 09:02 AM
Originally posted by zeckensack:
You surely don't switch to 32bit color mode, do you? http://www.opengl.org/discussion_boards/ubb/biggrin.gif


From what I remember, Voodoo3 couldn't do real 32-bit rendering.

zeckensack
09-27-2002, 01:09 PM
Originally posted by josip:

From what I remember, Voodoo3 couldn't do real 32-bit rendering.Yes, that's why I asked http://www.opengl.org/discussion_boards/ubb/wink.gif

Antorian,

Can you please check this and make sure you switch to a 16bit color mode when going fullscreen?

jwatte
09-28-2002, 08:38 AM
But your problem is a speed problem, right? As long as you can scale all your textures down to 256x256, you can run on Voodoo, albeit slowly. Running slowly is still correct. Ergo, no problem.

rapso
09-28-2002, 10:19 AM
ich think zeckensack has a possible solution, and it weren't that fast in windowed mode, if the textures has been bigger than 256*256.. but the colordepth might changed..

try 16bit

rapso->greets();

Antorian
09-29-2002, 11:52 AM
Ok I had noticed something wrong...
When I got windowed mode (32/16 bits) my window is in overlapped mode.
When I'm in fullscreen the window is Popup Style.
I've tryed 16/32 bits and it's the same.
But... if I change the mode to WS_CAPTION or somthing else it run ok.

So My problem must come from initialisation.
After Changing that, the app wouldn't run again in WS_POPUP (why ? I don't know.)

So the speed is going Up in WS_CAPTION and run as if it's in windowed mode (but there is border and Title Bar of window displayed).

I use the Nehe initialisation Code But Something must be wrong in my code that makes my app crashes when fullscreen and WS_POPUP is used.

Thanks you for all
I Try to under why it doesn't works with WS_POPUP (has anyone an Idea?)
PS: the same code used in Nehe Lesson5 is working when compile and running.

Antorian
09-30-2002, 01:49 PM
Ok sorry I made a mistake:
The crash was due to glTrace .dll

Now everything is right compiled.
And what I've noticed is still true.
The problem occurs only in fullscreen with WS_POPUP windows style. (even if it's in 16 or 32 bits, and 24 is given as "not supported by card").

I Still searching why it so slow only in fullscreen mode and WS_POPUP style used.

Rem:in windowed mode , even if it uses WS_POPUP everything is OK.

I tried several resolutions and it's the same problem.

So... may be it's finally a bug in OpenGL drivers implementation.

Thanks for your advices.
But I still search the source of the problem. http://www.opengl.org/discussion_boards/ubb/biggrin.gif

zeckensack
09-30-2002, 02:51 PM
One more idea:

Make sure that your window dimensions match the screen resolution and exactly fits the screen.

ie WINDOWRECT.blabla=(0;0;640;480) is good
(0;5;640;480) is bad
(0;0;641;480) is bad

Say, you switch to 640x480 and open a popup window (which simply means it has no borders btw) 641x480 in size. Obviously this is larger than screen res and has to get clipped somewhere.
Chances are, you just might lose hardware acceleration if the card fails to support two simultaneous clip rectangles (one for glScissor, the other for window/screen clipping).

Might just be what happens in your case.

Antorian
09-30-2002, 04:24 PM
Thanks zeckensack, but I've already checked that.
My Windows rect is (0,0,640,480);
I noticed also, that in fullscreen mode , the display_list text is not displayed when it's slow.
If I use WS_CAPTION, all is fine and run at perfect speed (text displayed).
What makes me feel bad, it's when I don't display text everything is Ok.
If at any moment I use display list, it run slow so slowwww http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Another Point: is there any Windows Style mode that is equivalent to WS_POPUP?
(to perform a test without WS_POPUP).
Thanks :P