OpenGL-Registry icon indicating copy to clipboard operation
OpenGL-Registry copied to clipboard

Maintain a list of extension prefixes for OpenGL (including GLES and GLSC)

Open cher-nov opened this issue 1 year ago • 4 comments

The current registry of extensions for the Vulkan API also specifies the organization responsible for each prefix. Unfortunately, this has never been addressed in any comprehensive manner for OpenGL, at least not publicly. I would like to propose filling this gap.

{My sources of truthful information and for cross-validation}

Official websites:

https://registry.khronos.org/OpenGL/index_gl.php https://registry.khronos.org/OpenGL/index_es.php https://registry.khronos.org/OpenGL/index_sc.php https://web.archive.org/web/*/https://registry.khronos.org/OpenGL/extensions/* https://web.archive.org/web/*/http://www.opengl.org/registry/specs/* https://web.archive.org/web/*/http://oss.sgi.com/projects/ogl-sample/registry/* http://www.employees.org/~drich/SGI/SiliconSurf/tech/openGL/vendors.html (mirror)

Hardware databases:

https://opengl.gpuinfo.org/listextensions.php https://opengles.gpuinfo.org/listextensions.php https://opengles.gpuinfo.org/listeglextensions.php https://dev.prineside.com/en/performance_report/ https://feedback.wildfiregames.com/report/opengl/ https://web.archive.org/web/20080509060931/http://delphi3d.net/hardware/allexts.php

Other texts and correspondence:

https://github.com/KhronosGroup/OpenGL-Registry/blob/b53ca669/xml/vendors.txt https://www.khronos.org/opengl/wiki/OpenGL_Extension#Extension_Types https://www.opengl.org/archives/resources/features/OGLextensions/ https://www.opengl.org/archives/resources/code/samples/sig99/advanced99/notes/node394.html https://web.archive.org/web/20060924130539/http://www.opengl.org/registry/specs/doc/reserved.txt https://www-f9.ijs.si/~matevz/docs/007-2392-003/sgi_html/ch05.html https://web.archive.org/web/19990423044859/http://hertz.eng.ohio-state.edu/~hts/opengl/article.html (mirror)

Mistakes I also found in the current documentation:


Specification authors and common legends, active:

prefix meaning or description comment
EXT a generic extension agreed upon by multiple vendors
EXTX ...same as previous, but experimental
KHR The Khronos Group, Inc.
OES The Khronos Group, Inc. For OpenGL ES.
EMU emulation See ANDROID_EMU_* extensions.

Specification authors and common legends, no longer used:

prefix meaning or description comment
ARB OpenGL Architecture Review Board See KHR.
OML The Khronos Group, Inc. For OpenML.
IGLOO SGI internal extensions for IrisGL-on-OpenGL wrapper library See GL_SGIX_igloo_interface.

Vendors and projects, active:

prefix meaning or description comment
FJ Fujitsu Semiconductor Ltd. (Fujitsu Limited)
HP Hewlett-Packard Company Split into HP Inc. and Hewlett Packard Enterprise Company (HPE) on November 1, 2015.
JM Jingjia Micro (Changsha Jingjia Microelectronics Co., Ltd)
NV Nvidia Corporation
NVX ...same as previous, but experimental
AMD Advanced Micro Devices, Inc.
AMDX ...same as previous, but experimental
ARM Arm Holdings plc
AWS Amazon Web Services, Inc.
DMP Digital Media Professionals Inc.
IBM International Business Machines Corporation
IMG Imagination Technologies Limited
MGL MetalANGLE See also ANGLE.
MTK MediaTek Inc.
MTX Matrox Graphics, Inc. (Matrox Electronic Systems Ltd.)
VIV Vivante Corporation
WIN Microsoft Corporation For Windows.
DIMD Diamond Multimedia Systems, Inc.
MESA Mesa3D
MESAX ...same as previous, but experimental
MRVL Marvell Technology, Inc.
QCOM Qualcomm Incorporated
WINE Wine See also WIN.
ANGLE ANGLE
APPLE Apple Inc.
INTEL Intel Corporation
ANDROID Android
Autodesk Autodesk, Inc.
CHROMIUM Chromium Not to be confused with CR.
HUAWEI Huawei Technologies Co., Ltd.

Vendors and projects, no longer used:

prefix meaning or description comment
CR Chromium Not to be confused with CHROMIUM.
ES Evans & Sutherland Computer Corporation GL_ES_lit_texture? no other mentions are known except this one.
MS Microsoft Corporation GL_MS_paletted_texture and GL_MS_clip_volume_hint were renamed to EXT. See WIN.
S3 S3 Graphics, Ltd. Merged with Diamond Multimedia Systems Inc. on June 22, 1999; rebranded.
3DL
3DLabs
3Dlabs
3DLABS Inc. Ltd. Acquired by Creative Technology Ltd. on May 15, 2002; rebranded.
ATI ATI Technologies Inc. Acquired by Advanced Micro Devices, Inc. on October 25, 2006; retired.
ATIX ...same as previous, but experimental
DGL GLDirect Originally developed by now-defunct SciTech Software, Inc. as SciTech GLDirect.
See GL_DGL_stereo_auto_perspective. Maybe @kendallb still remembers it.
FGL Diamond Multimedia Systems, Inc. For FireGL. See GL_FGL_lock_texture.
GL2 3DLABS Inc. Ltd. For OpenGL2 initiative. Superseded with the official OpenGL 2.0 specification from ARB.
I3D Intense3D (Intergraph Corporation) Acquired by 3DLABS Inc. Ltd. on July 21, 2000. All the registered I3D extensions predate that.
KTX Kinetix (Autodesk, Inc.) Merged with Discreet Logic Inc. on March 16, 1999; rebranded.
OVR Oculus VR, LLC Acquired by Facebook, Inc. on July 22, 2014; rebranded.
PGI Portable Graphics, Inc. Acquired by Template Graphics Software Inc. on December 30, 1996; rebranded.
SGI Silicon Graphics, Inc. Acquired (as Silicon Graphics International Corp.) by Hewlett Packard Enterprise Company on November 1, 2016; rebranded.
SGIS ...same as previous, but special (?) Used only on some devices, so 'S' could probably also mean "specific", "selected", "subset" or "system".
SGIX ...same as previous, but experimental See SGI.
SUN Sun Microsystems, Inc. Acquired by Oracle Corporation on January 27, 2010; retired.
SUNX ...same as previous, but experimental
3DFX 3dfx Interactive, Inc. Acquired by Nvidia Corporation on December 15, 2000; retired.
INGR Intergraph Corporation Acquired by Hexagon AB on October 28, 2010; rebranded.
REND Rendition, Inc. Acquired by Micron Technology, Inc. on September 11, 1998; rebranded.
GREMEDY Graphic Remedy Ltd Acquired by Advanced Micro Devices, Inc. on October ~7, 2010; rebranded.
For gDEBugger.

cher-nov avatar Feb 19 '25 14:02 cher-nov

Generally only the information that is required for Khronos purposes in the registry is actively maintained by Khronos. That needn’t preclude the addition of further metadata (e.g. groups) but these will be solely community maintained only. In addition, community additions must not be disruptive to Khronos’ workflow or place undue constraints/considerations on day-to-day editing and maintenance of the specification/registry.

All this to say: if this data is already in the registry, you’re welcome to update it. If it’s new information, I trust others will discuss here but the likely outcome is “we’re not using it, so as long as we don’t have to do anything you are welcome to add this information”.

It’s at this point I should stress I am not a member of Khronos and this is just my experience in maintaining e.g. the enum groups as an external contributor.

Perksey avatar Feb 19 '25 19:02 Perksey

If you want to propose a PR updating xml/vendors.txt (and maybe renaming it and putting in in .adoc format), that would be fine. There's some historical vendor information in there which I don't think is in your list although generally yours is more comprehensive.

oddhack avatar Feb 20 '25 04:02 oddhack

N.b. I think S3 had the most exciting corporate evolution. At one point I needed to track down the current owner of the S3TC IP for legal purposes and it took me through, IIRC, 5 different companies.

oddhack avatar Feb 20 '25 04:02 oddhack

If you want to propose a PR updating xml/vendors.txt (and maybe renaming it and putting in in .adoc format), that would be fine.

Initially I wanted to do literally this, and that’s where I actually started. But then I noticed mistakes with PGI and TGS, and later I saw this old document. After which I decided that, firstly, these were more likely someone’s working notes rather than a proper reference, and secondly, it was primarily dedicated to the allocated enumerant ranges rather than extension identifiers.

There's some historical vendor information in there which I don't think is in your list although generally yours is more comprehensive.

I have only listed those prefixes for which I found mention of at least one extension. This was the main purpose of compiling this table. Without this information, it is pretty difficult to search for information on rare, old or obscure hardware.

cher-nov avatar Feb 20 '25 05:02 cher-nov