Skip to main content
GameDev.net gamedev.net
🔒 Locked

GeForce 4 'go slow' using GL_FILL mode

Started by sjdibble Sep 9, 2002 at 2:47 AM 11 replies 900+ views
Original Post
sjdibble
sjdibble
I have a strange GeForce 4MX problem and wondered if anyone has any idea what is going on. I am experimenting with creating and optimising a (currently flat and featureless) grid of triangles which will eventually be a 3D terrain. I have implemented Quadtree indexing and frustum culling. The program has a toggle for fill mode, which switches between glPolygonMode(GL_FRONT,GL_FILL) or glPolygonMode(GL_FRONT,GL_LINE) When drawing 120 vertices (20 triangles) on my computer, a 1Ghz AMD with a GeForce 3 Ti 200, I get about 1380 FPS in FILL mode and 1420 FPS in LINE mode. However, on my brothers PC, a 1.7Ghz Athlon with GeForce 4 MX 440, we get 33 FPS (yes, really, not a mistype, it is thirty three) in FILL mode to a massive 1600+ FPS in LINE mode. I dont think it''s the framerate counter as the camera movement is frame rate dependant so there is a noticable slowdown in camera movement speed. The number of vertices rendered is generated each frame by the rendering method, not by me counting polygons on screen and there is no texturing or lighting going on either. This has to be something I have done, because other app''s dont do the same on the GeForce4 using OpenGL. Any idea ? Stephen.
zedzeek
zedzeek
a gf3 is actually a better card than a gf4mx BUT thats not the problem.
both though have good fillrate,
do both use the same drivers?
try commenting out code until u find which line causes the big slowdown

http://uk.geocities.com/sloppyturds/gotterdammerung.html
sjdibble
sjdibble
The GeForce 4 is using the latest NVidia drivers and the GeForce 3 (a Creative Labs card) uses the latest Creative drivers. We did consider this as the first problem.

The line which appears to be causing the slowdown is the

glVertex3f(...

but only when in GL_FILL mode.

I have re-written the renderer to work using glDrawElements however we get similar results. (Well, the GeForce 3 speeds up quite a bit)

The fact that the FPS changes by over 1000 FPS merely because I specify GL_FILL rather than GL_LINE suggests it''s something to do with the fillrate, however, it cant be just the hardware, there has to be a software problem as well, just only one that effects GeForce4 cards and not GeForce 3.

I think I will stick my old GeForce 2 back in and see what results I get. If this still doesn''t work, I''ll make use of my free web space and stick it on my homepage to see if other people get similar problems or whether it''s just my brother.

Stephen
sjdibble
sjdibble
Well, weird

The GeForce 2 at 120 vertices give

FILL - 600
LINE - 980

Any more ideas anyone ?

If not, I''ll post the code where others can try it out !

Stephen
sjdibble
sjdibble
I have now made the program available at

http://mysite.freeserve.com/sjd_programming/tbv6c.zip

I would be grateful if a few people (particularly those with GeForce 4 MX cards) could run it and let me know what sort of performance you get, including the number of vertices and the FPS for FILL and LINE mode (F to swap between the two).

Thanks in advance

Stephen
Prod
Prod
i dunno if your verteces are correct. It seems to say 90 to 72 when i am looking straight down at a one

It ran at 100fps lines and 90fps fill.
*kick starts the voodoo"
sjdibble
sjdibble
There is a bug with the culling, the vertex count is correct, but some off screen vertices are not being culled.

Stephen
benjamin bunny
benjamin bunny
hmmm, given that culling is automatic in openGL, I think it''s more likely a bug in your drivers.

I get 800 to 1200 fps on my geforce 2 pro, using the latest nVidia drivers.

____________________________________________________________
www.elf-stone.com
sjdibble
sjdibble
The terrain is implemented using a quadtree. Its the culling of unseen branches that has the bug in it. This vertices in branches which cannot be seen are nevertheless, sometimes, being sent to the renderer.

Stephen
Hairybudda
Hairybudda
i get +2000fps on both fill and line, no change when i change fillmode.

My System Information:
----------------------

Operating System: Windows XP Professional Version: 5.1.2600
Processor Type: AMD Athlon XP 1800+ 1533MHz
Physical Memory: 392692KB
Hard Drive: C:\ Total Space: 19532MB Free Space: 7549MB Cluster Size: 4 KB
CD-ROM Drive: Pioneer 16x DVD, LG 8x4x32 CDR
Monitor: Generic Monitor
Display Info: 1280 x 1024 16777216 colors, 32-bit, 72hz
Pointing Device: Saitek GMI USB Mouse
Network: NONE
Modem: Standard 56k Modem
Sound Card: Creative Sound Blaster LIVE! 1024
Video Card: 128 MB nVidia GeForce4 ti 4200

Video specific:
---------------

vSync: Off by default in both DX & GL
Clock Speeds:
Core: 270 mHz
Memory: 540 mHz

PCI Mode Memory: Both DX and GL Profiles Set to use 1 meg of sys memory in PCI mode
--------------------------------------------------------------

Even worse, the performance doesnt seem to die when i use AA
Ive got my drivers using hardware acceleerated lines too, that could be it.

Oh yea, use the nvidia drivers for the creative card, preferably the ones you''re using on your card.
st0ned
sjdibble
sjdibble
Interesting.

So the problem appears to be GeForce 4MX only, not Ti''s. I am currently taking the whole program appart bit by bit and putting it back together in an attempt to find out where the problem lies.

However, I dont think it''s in the rendering, but rather the whole way the OpenGL window is set up. My reason for thinking this is that the first version uses NeHe''s OpenGL framework. However, early tests with the framework version 2 does not repeat the results. However, I can''t verify this until I have completely implemented the code using the newer framework.

I will let people know what caused it, if I ever find out

Stephen

PS, thanks for the hint about drivers, I will download nvidia''s latest ones!
Mundocani
Mundocani
I too suspect that this is a bug in the drivers, but the 33fps is interesting -- it's awfully close to the magic video number of 30fps. Have you tried going into the OpenGL Settings tab of the display control panel (Display->Advanced->Geforce->Additional Properties->OpenGL Settings) and forcing Vertical Sync off? With it on (the default) my Geforce 2 Go only gets about 60 fps on your app, but off it shoots up to hundreds.

If this fixes the problem, then it's almost a driver bug though I don't know why rendering in fill vs. line mode should matter, but that's why it'd be a bug I suppose

Good luck,
- John


[edited by - Mundocani on September 14, 2002 11:36:14 PM]
sjdibble
sjdibble
Well, I dont know exactly what caused the problem but I re-build the code using NeHe''s Framework 2 and problem solved

The 33 FPS on GeForce 4 is now over 3000 FPS. The Frame rate has jumped on the GeForce 3 as well. However, I made no changes to the rendering code when converting.

I can only assume it was something to do with the way the OpenGL window was initialised.

Stephen

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.