Sign in to follow this  
lynedavid

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

Recommended Posts

lynedavid    122
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.

Share this post


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

Share this post


Link to post
Share on other sites
lynedavid    122


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?

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
lynedavid    122

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.

Share this post


Link to post
Share on other sites
lynedavid    122


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?



Share this post


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

Share this post


Link to post
Share on other sites
lynedavid    122

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this