PDA

View Full Version : New extensions available in the registry!



Groovounet
04-19-2011, 07:46 AM
There is new OpenGL extensions in the OpenGL registry
http://www.opengl.org/registry/

Even if the API is not consistent with the OpenGL specification, I especially like GL_AMD_sample_positions which allows some temporal antialising.
http://www.opengl.org/registry/specs/AMD/sample_positions.txt

dorbie
04-19-2011, 10:22 AM
Why is this not consistent with the OpenGL specification? You can implement an extensions that moves subsamples and document it within the API framework and it is completely consistent.

Similar things have been said back when people were considering tiled archtectures for rendering and deferred shading techniques and various other anti-aliasing methods. OpenGL is not a straight-jacket.

Currently the exact location of subsample multisample locations is implementation dependent so this seems absolutely consistent with the OpenGL API in every way.

arekkusu
04-19-2011, 10:52 AM
http://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt

looks like an update to the (undocumented) GL_ATI_blend_weighted_minmax. However the enums are different:

FACTOR_MIN_AMD 0x901C
FACTOR_MAX_AMD 0x901D

vs

MIN_WEIGHTED_ATI 0x877D
MAX_WEIGHTED_ATI 0x877E

Groovounet
04-19-2011, 11:41 AM
A feature is a feature and tile rendering or custom multisample position is a feature too.

The API is not consistent because:
1 - There is not other API call that use "Set", like glSetMultisamplefvAMD does, in the entire OpenGL specification. I found 2 examples in the history of proprietary extensions but I don't think it counts.

2 - glSetMultisamplefvAMD update FBO states but all the API calls for framebuffer object are build with the token "Framebuffer" so that this function should be called glFramebufferMultisamplefvAMD even tough this remains odd for OpenGL conventions. I guess glFramebufferParameterfvAMD fells somewhat a better match but I guess looking at the specification precedent we could find something better.

3 - This extension speak about "subpixel" and "subsample" on word use for the other, such things aren't described in the OpenGL specification and should be distinguished.

4 - SetMultisamplefvAMD is defined in too different places differently:
- void SetMultisamplefvAMD(enum pname, uint index, clampf
*val);
- void SetMultisamplefvAMD(enum pname, uint index, const float *val);

kyle_
04-20-2011, 02:02 PM
Also, i dont think there are functions in GL that use special meaning for parameters,


SetMultisamplefvAMD(SAMPLE_POSITION, 0, NULL) will restore
all the sample positions to their default state.

But its all good, really. Imo thats what vendor extensions are for.