OGL performance in Linux, FX 5900

I’m trying to evaluate the GF FX 5900 card for use in Linux. We are currently using GF4 Ti 4200, I think…

I have written a simple test program that draws to triangles to fill the entire screen. No texturing or lighting.

1280x1024, double buffered RGBA

swap = 2.7 ms
clear + swap = 3.5 ms
draw + swap = 11.5
clear + draw + swap = 12 ms

And if I try to do a glCopyTexSubImage2d for the entire framebuffer, my total time increases to:

clear + draw + copy + swap = 22 ms

This is all slower than I had hoped, and I am particularly puzzled by the 11.5 ms draw + swap time.
I am drawing two triangles that fill the screen - should it really take this long?

(1.6 billion pixels per second fill rate?
1280 x 1024 * 87 fps = 100 million or so…shouldn’t I be able to go faster?)

Are the Linux drivers crappy? Am I a crappy OGL programmer? Any hints welcomed.

Thanks
-Steve

What version of the drivers are you using? Only the newest Detonators support the NV35.

Is alpha blending disabled?

The glCopyTexSubImage is gonna kill performance no matter which way you look at it.

Are you sure you’re swapping rather than copying? Check your XFreeConfig.

What version of the kernel are you using? I saw about a 10% increase in glxgears going from a vanilla kernel to an uber-tweaked gentoo kernel.

When you ask “Is alpha blending disabled”, what exactly do you mean?

I am inclined to say it is enabled, but I’m not sure.


I figured out what the problem was, though…and I got at leas t a 5x speedup on most operations.

The secondary power connector was not connected to the card (doh!). Uhh…yeah, it matters.

Thanks

-Steve

BTW the glCopy… takes about 1.6 ms for a 1400 x 1050 framebuffer. 1.6 ms is a lot, but better than I had hoped…

I have written a simple test program that draws to triangles to fill the entire screen.

Two triangles? “to” is a typo I guess.

swap = 2.7 ms

That doesn’t look that bad.

clear + swap = 3.5 ms

Looks ok, too.

draw + swap = 11.5

Doesn’t look bad to me.

(1.6 billion pixels per second fill rate? 1280 x 1024 * 87 fps = 100 million or so…shouldn’t I be able to go faster?)

A really lame P3@500 with a GF3 here manages to push 260 MP/s here for lots of small triangles or 726 MP/s for large ones, so I guess, yes, something is weird with your setup.

Are the Linux drivers crappy?

Depending on external factors, NVIDIA drivers/hardware on Linux matches or outperforms the exact same hardware running on Windows, so I’d say no, they aren’t. There are other reasons why they are crappy, but it doesn’t have anything to do with the case at hand and I won’t go into that.

Any hints welcomed.

Before chasing more complicated stuff, what’s your hardware? Start “glxgears”. Any correct installation should manage more than 1500+ fps. The FX around here manages something in the neighbourhood of 4000-5000 (p4@2.4 or so). Look at the output of glxinfo. You should have 20+ visuals and the renderer string should report something like GeForceFX/AGP/SSE or the thereabouts. The version string should report 1.4.0 NVIDIA 44.96 (or whatever else, but it’s got to say NVIDIA). And there should be a line “direct rendering: yes”.

I would make sure you have the latest linux drivers. I know in the last version nvidia put out it slowed down FPS counts but increased how it looks. Ive had no problems with my 5900 ultra on redhat 9.

Thanks for the replies. Maybe I didn’t make it clear in my second message, but I have fixed the problem.

The “fix” for the problem was simply to plug in the external power connector. In my haste to install the card, I had forgotten to plug the power into the card. Once I plugged it in, my performance shot through the roof. Very nice.

-Steve