Archived

This topic is now archived and is closed to further replies.

GeForce 4 'go slow' using GL_FILL mode

This topic is 5569 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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"

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites