PDA

View Full Version : querying available AA modes?



zed
11-01-2008, 05:15 PM
Why isnt this possible? (I assume cause of memory etc requirements, depending on window size), but a query to see possible modes would of been nice.

Thus the only way to see what card supports what AAmodes is to iterate over all the modes, create a window with that mode + see if it worked + then destroy it?

OK so what modes to check?
2x
4x
6x
8x
16x
quincunx! How to test for this?

are there any others?

Or are you ppl not worrying about this at all, ie just let the user select whatever AA mode they want from the above list + if it fails, display a message or something.

gybe
11-01-2008, 05:29 PM
It looks like you can do something similar with NV_framebuffer_multisample_coverage:

// Get the number of unique multisample coverage modes
glGetIntegerv(GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV , &numModes);

// Allocate enough memory to store the array of modes
GLint *modes = (GLint*)malloc(2*numModes*sizeof(GLint));

// Get the list of modes
glGetIntegerv(GL_MULTISAMPLE_COVERAGE_MODES_NV, modes);

// Print out all of the modes
for (i = 0; i < numModes; i++) {
printf("%d coverage samples, %d color samples\n",
modes[i*2+0], // coverage samples for mode i
modes[i*2+1]); // color samples for mode i
}

Brolingstanz
11-01-2008, 08:22 PM
quincunx! How to test for this?

Quincunx is a weird one, 5 samples and nonuniform weights. Not sure how you'd specify that one (if you can).

NV CSAA modes are set by glRenderbufferStorageMultisampleCoverageNV with the right (C,S) pairs, e.g. 16xQ=(16,8).

zed
11-01-2008, 10:45 PM
cheers guys,
NV_framebuffer_multisample_coverage looks interesting
but it saiz under the nvidia spec

G8x supported
but for Nv3x and Nv4x
Nf = Extension advertised but rendering functionality not available

which is a bit strange, if u cant use it then why stick it in the string?
Perhaps with my gf7600 I can use it to query the multisample modes, but not actually set them!
Ill have to give it a go

zed
11-01-2008, 11:02 PM
OK it seems like it does work on the nv4x
the above code displays, no Quincunx info though

2 coverage samples, 2 color samples
4 coverage samples, 4 color samples
8 coverage samples, 8 color samples

Ilian Dinev
11-02-2008, 01:08 AM
Don't you generally create a multisampled FBO... to make postprocessing possible (at no extra bandwidth penalties)? Just like in nV's simple_framebuffer_object, create FBOs/storages and check if they're the requested multisample/cvg-count.

I suppose that the exact method of multisampling/coverage is hidden, as it may change/improve between hardware generations.

Brolingstanz
11-02-2008, 07:44 AM
some info about quincunx tucked away in this here extension

http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt