Upcoming pixel/register glEXT's, problems with DX8 Pixel Shaders, & more-

A given name is tied to specific functionality.

If someone else wants to implement the same functionality, it would only make sense that they use the same name. Creating a new name for the same thing creates confusion.

If they implement the same functionality but add more features, they should support the original extension and add a second, layered extension on top of the original, which they can call anything they want.

If they implement similar functionality but it is incompatible with the original extension (missing certain features), then they should just create a separate extension, or perhaps work to create an LCD (least common denominator) extension – though it should be noted that LCD extensions have problems of their own.

  • Matt

Originally posted by mcraighead:
No, actually, we have no objections to using other vendors’ extension names. They’re just names!

They’re just names, fine !
So why not name all new extensions with an EXT prefix in the first place?

That would defeat the whole point of the naming scheme. “EXT” means multi-vendor. If we use EXT for the name of an extension that no one else has endorsed, we are lying.

  • Matt

Originally posted by mcraighead:
That would defeat the whole point of the naming scheme. “EXT” means multi-vendor. If we use EXT for the name of an extension that no one else has endorsed, we are lying.

So, if EXT means multi-vendor, what is wrong with ATI renaming an NV extension to EXT. Nvidia supports it. ATI supports it. Sounds pretty multi-vendor to me.

Maybe EXT is used when multiple vendors work together to develop the extension. Not simply implement it.

Too bad the naming conventions cause this level of confusion.

@ Renaming an extension just adds to the already large number of extension strings that a vendor exposes. All of the renamed extensions just create clutter and difficulties for apps that were made using the original extension name (e.g. a program that checked for ATI_SOMETHING would miss EXT_SOMETHING or NV_SOMETHING until it was updated). Prepending an extension with the vendor name just organizes who created it. Promoting to EXT or ARB seems like a wasteful confusion, as in GL_SGIS_multitexture, GL_EXT_multitexture, & GL_ARB_multitexture.

@

Originally posted by DFrey:
Maybe EXT is used when multiple vendors work together to develop the extension. Not simply implement it.

Correct. Renaming an extension without changing the functionality serves no rational purpose; in fact, it is harmful because it can lead to future SW incompatibility issues. It is silly to “promote” extensions from NV to EXT or ATI to EXT. It does make sense to seek another interested vendor before first releasing an extension, if you feel that the IP involved is not “too confidential”. This is what happened with ATIX_texture_env_dot3. “ATIX” meants ATI eXperimental, and so (in theory) an extension with that name should never actually ship (in fact, the ATIX extension used enumerants in the 0x6000-0x8000 range, which is reserved for use in non-shipping extensions only). We contacted ATI and offered to support it as an EXT extension. If we had not done so in time, it probably would have been renamed to ATI_texture_env_dot3 and we would have supported it under that name.

Promoting from vendor to ARB or EXT to ARB does make sense because it indicates that the ARB has officially blessed an extension as a first-class API feature (though an optional one).

  • Matt

Thanks a lot, Matt !

Even if there are still things i think being “illogical”, with your help I now understand better how this extension system works.
The key sentence should be “don’t use experimental extensions as their name can change”

[This message has been edited by paddy (edited 01-27-2001).]

Maybe there should be a temporary standard in that the new extensions should be named TMP_whatever_extension_name, and then when ARB approves it, it gets renamed to ARB_whatever_extension_name. I don’t think ATI wants to have any NV_ named extensions, or S3_ or MT_ (Matrox).

I haven’t looked at the radeon specific extensions, but I assume they are ATI_something, and I am betting that the current nvidia hardware doesn’t support it, but NV20 may indeed support it, so I guess we will have to wait 4 months for the NV20 to ship before we can find out.

We all know it is just a name… but rarely do we see companies cooperate on behalf of the end-user.

Just to chime in from ATI. There were actually quite a number of extensions implmented for the Radeon specifically:

GL_ARB_texture_border_clamp
GL_ARB_texture_cube_map
GL_ARB_texture_env_add
GL_ARB_vertex_blend
GL_ATIX_pn_triangles
GL_ATIX_texture_env_combine3
GL_ATIX_texture_env_subtract
GL_ATI_texture_mirror_once
GL_ATI_vertex_streams
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_packed_pixels
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_texgen_reflection
GL_EXT_texture3D
GL_EXT_texture_compression_s3tc
GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_object
GL_SGIS_texture_lod

We also have a few extensions implemented that haven’t made it into a publically released drivers, but should go out in the next release:

GL_ATIX_texture_env_route
GL_ATIX_envmap_bumpmap
GL_EXT_point_parameters

In addition we are also working on Vertex and Pixel shading extensions as well as a Vertex buffer type extension, a render to texture extension, and a point sprites extension.

dave

Daveg:
Does GL_ATIX_envmap_bumpmap have something to do with EMBM?

Humus, it looks like that, though I am more curious about that

GL_ATIX_texture_env_route

And can someone explains what is the pn_triangle extensions??

The pn_triangle seams to be a extension for n-patches, but I can’t find any documentation for it
There are some general information about n-patches and a plugin for 3d studio max available at ATi’s site, but there seams to be no info about how to use the extension.

Is the GL_ATIX_texture_env_combine3 at all like GL_NV_texture_env_combine4?

j

thanks Humus, could be a very good extension!

tex_env_combine helps to combine 3 arguments whereas combine4 helps combine 4 arguments!!

WRT the PN Triangle extension, you can learn more about PN Triangles (called N-Patches in DX8) in our paper .

We will release the extension spec when we release hardware that supports these primitives. That said, the OpenGL extension is VERY easy for an application developer to write to. Be sure to pass in normals, set position interpolation order to linear or cubic, set normal interpolation order to linear or quadratic and set your LOD.

I’ll try to try the extension tonight!!

Nice to see, that there are ATI people now also!!

Be sure to play around with the new simple PN Triangles sample .

-Jason