querying available AA modes?

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.

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(2numModessizeof(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
",
modes[i*2+0], // coverage samples for mode i
modes[i*2+1]); // color samples for mode i
}

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).

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

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

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.

some info about quincunx tucked away in this here extension

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