New extensions available in the registry!

There is new OpenGL extensions in the OpenGL registry

Even if the API is not consistent with the OpenGL specification, I especially like GL_AMD_sample_positions which allows some temporal antialising.

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.

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


MIN_WEIGHTED_ATI               0x877D
MAX_WEIGHTED_ATI               0x877E

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
  • void SetMultisamplefvAMD(enum pname, uint index, const float *val);

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.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.