GL Points slow on NV40 with 8XS anti-aliasing enabled

Started by
7 comments, last by lynedavid 18 years ago
Hi, Does anyone know why drawing gl points is so slow on NV40 hardware with 8xs (4 sub, 2 super samples) anti-aliasing enabled. When I render 8000 gl points with 4X antialiasing i get around 1200 fps. With 8xS antialiasing enabled i get only 60fps! Its strange as I can render that many billboarded quads with 8xS anti-aliasing enabled much faster (around 600 fps). Is it a driver bug? I am using the latest windows drivers. David.
Advertisement
8xS AA performance on my geforce 6800gs (nv42?) is a complete joke, yet 4xAA is decent. i've read that AA performance is far better on the high-end geforce 7xxx cards.
This space for rent.


Fair enough,

But why would drawing of vertex-shader billboarded quads be so much faster than rendering the same number of point sprites? I would expect rendering point sprites would be slightly faster no matter what the anti-aliasing mode?
sorry, i posted right after i woke up and missed the real question. points and lines are drawn a bit different from polys. to speed it up you can use a few tricks depending on what you're actually rendering. for example, you can disable depth buffer writing and possibly depth testing entirely. i read about it somewhere on opengl.org a while back. you'll likely have luck poking around that site a bit. search for information on how points and lines are drawn and you'll find what you need.
This space for rent.
Another way to think of it is if you draw a gl point basicly your drawing a full quad. so your drawing 8000 poly's and doing 8x AA on them all.
Black Sky A Star Control 2/Elite like game

I'm aware that point sprites are basically handled as quads.
However, they should be slightly faster than drawing actual quads because they require only 25% the amount of data to be downloaded (one vertex vs 4).

I would not expect them to be 12x slower than drawing quads whatever the anti-aliasing mode.

Its only the 8Xs mode that causes points to draw so slowly.

Disabling of Depth testing makes very little difference to performance.


The other odd problem with point sprites when Super-sampling fsaa is turned on is tha all sprites/points are much smaller. This sort of makes sense if the size isn't re-calculated down to take into account the much larger framebuffer into account.

It still doesn't explain why sprites are so slow with super-sampling fsaa though.

I can get around this problem by using GPU billboarded quads. However, they will need to stay a constant size at all distances. What do I need to do to the projection matrix in the vertex shader in order to achieve this?



Quote:Original post by lynedavid
I'm aware that point sprites are basically handled as quads.
However, they should be slightly faster than drawing actual quads because they require only 25% the amount of data to be downloaded (one vertex vs 4).
This may not be true; I suspect that the driver fills in the rest of the vertices for you.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

I'm pretty sure that is the case. See this article:

http://msi.unilim.fr/~porquet/glexts/GL_ARB_point_sprite.txt.html


Besides, using point sprites does give a significant performance gain over using GPU quads when NOT using super-sampling FSAA modes.

This topic is closed to new replies.

Advertisement