Multisampled buffer - getting painfull

Started by
2 comments, last by Hodgman 13 years, 1 month ago
Why does enabling MSAA/CSAA/... 'eats' ~130fps on my GPU (NV9800GX2) ?

My foliage and nature is rendered using SAMPLE_ALPHA_TO_COVERAGE (to not sort) and this requires multisampled antialiasing to be enabled on the framebuffer from which i blit to a texture.

It works great (blending/antialiasing), but the performance of 'enabling' it in renderbuffer is just a nightmare.







I get around ~1.3mln of triangles rendered with 30fps without msaa,




b13fc7df.jpg




but with msaa, i get almost 130fps down when app is not rendering anything.




Just wanted to ensure if there is anything i can do with that?







Advertisement
Yea it seems like that is fine. So your already above 130 fps, probably 200 or more? FPS drops fast as the above guy said, linear execution of code does not translate to linear fps to benchmark code. Once you drop to 100 or so fps you start to stay around 100 or so with even doubling the amount of work.

NBA2K, Madden, Maneater, Killing Floor, Sims http://www.pawlowskipinball.com/pinballeternal

You should measure frame time, not FPS
http://www.opengl.org/wiki/FAQ#Framerate_and_FPS
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);

Why does enabling MSAA/CSAA/... 'eats' ~130fps on my GPU (NV9800GX2) ?
130fps less than what?

Reporting a change in FPS (without also including the before/after FPS values) is completely meaningless:
Lets say you started out at 2000fps and lost 130 -- That's a loss of 0.03ms.
On the other hand, if you started at 131fps and lost 130, then that's a loss of 992ms.
2000fps = 0.5ms per frame.
1870fps (2000 - 130) = 0.53ms per frame.
131fps = 7.6ms per frame.
1fps = 1000ms per frame.

So did you lose 0.03 milliseconds, or did you lose 0.992 seconds? Or somewhere inbetween those two extremes? Losing 130fps could mean any of those...

This topic is closed to new replies.

Advertisement