Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 10 of 10

Thread: Spec file bugs

  1. #1
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,000

    Spec file bugs

    I have been doing some processing to update my GLIntercept tool with the newer extensions, and decided to use the extension listing from existing tools.

    I started with glLoader - it seems to have been manually created from the registry files - but found a lot of bugs in it (I would highly recommend NOT using this extension loader for this reason)

    I then switched to alfonse's XML file - generated from the spec files. I did the process and just for kicks I am comparing the results with glLoader.

    It seems that there are some inconsistency with the registery and spec files:

    1)// Missing:
    MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143

    2) // First parameter is const in extension - but spec file states it is an out paramter?
    vdpauSurfaceNV VDPAURegisterVideoSurfaceNV (const void *vdpSurface, enum target, sizei numTextureNames, const uint *textureNames);
    vdpauSurfaceNV VDPAURegisterOutputSurfaceNV (const void *vdpSurface, enum target, sizei numTextureNames, const uint *textureNames);

    3)//Registery/Spec disagree on naming:
    MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
    MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A,

    4)// uint/sizei difference Probably should be sizei?
    void glTransformFeedbackAttribsNV(GLuint count, const GLint * attribs, GLenum bufferMode);
    void glTransformFeedbackAttribsNV(GLsizei count, const GLint * attribs, GLenum bufferMode);

    5)// deprecated but missing from spec file
    GL_RGBA_DXT5_S3TC = 0x83A4,
    GL_RGBA4_DXT5_S3TC = 0x83A5,

    6)// Ext registry says:
    GL_PACK_RESAMPLE_SGIX = 0x842E,
    GL_UNPACK_RESAMPLE_SGIX = 0x842F,
    GL_RESAMPLE_REPLICATE_SGIX = 0x8433,
    GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434,

    Spec file says:
    GL_PACK_RESAMPLE_SGIX = 0x842C,
    GL_UNPACK_RESAMPLE_SGIX = 0x842D,
    GL_RESAMPLE_REPLICATE_SGIX = 0x842E,
    GL_RESAMPLE_ZERO_FILL_SGIX = 0x842F,

    7) //uint/sizei difference
    void glVertexWeightPointerEXT(GLsizei size, GLenum type, GLsizei stride, const GLvoid * pointer);
    void glVertexWeightPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer);

    8) //Missing from spec file:
    MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F

    9) //Reg/spec file differences
    RGBA_FLOAT_MODE_ATI 0x8820
    TYPE_RGBA_FLOAT_ATI 0x8820

    10) Missing from spec file, in reg file:
    void glGetPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint* params);
    void glGetPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat* params);

    I am only about 50% done with the (slow) compare - but just thought I would list the ones I have found so far.

  2. #2
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,000

    Re: Spec file bugs

    OK, I have completed by checking and here are the remaining spec file bugs I have found (I hope someone is reading this...)

    11)
    Spec file:
    void glPixelMapfv(GLenum map, GLint mapsize, const GLfloat * values);
    void glPixelMapuiv(GLenum map, GLint mapsize, const GLuint * values);
    void glPixelMapusv(GLenum map, GLint mapsize, const GLushort * values);

    Documentation:
    void glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values);
    void glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values);
    void glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values);

    12)Missing: GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS

    13) AMD_vertex_shader_tesselator -> should be AMD_vertex_shader_tessellator

    14)Missing from spec file:
    void glGetPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint* params);
    void glGetPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat* params);

    void glDisableClientStateiEXT(GLenum array, GLuint index);
    void glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint index);
    void glDisableVertexArrayEXT(GLuint vaobj, GLenum array);

    void glEnableClientStateiEXT(GLenum array, GLuint index);
    void glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint index);
    void glEnableVertexArrayEXT(GLuint vaobj, GLenum array);

    void glGetDoublei_vEXT(GLenum pname, GLuint index, GLdouble* params);
    void glGetFloati_vEXT(GLenum pname, GLuint index, GLfloat* params);
    void glGetPointeri_vEXT(GLenum pname, GLuint index, void** params);

    void glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint* param);
    void glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint* param);
    void glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLvoid** param);
    void glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, GLvoid** param);

    void glVertexArrayColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayEdgeFlagOffsetEXT(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
    void glVertexArrayFogCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayIndexOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayMultiTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayNormalOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArraySecondaryColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
    void glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
    void glVertexArrayVertexOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);


    15) Misspelling of "EXTERNAL"
    WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D
    WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D
    WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D

    16)
    WGL_NV_video_out
    should be
    WGL_NV_video_output
    extension name in wglenumext.spec

  3. #3
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948

    Re: Spec file bugs

    Have you put these in the Bugzilla? Granted, that place doesn't seem to get lots of attention from anyone, but the more places you can put these, the better.

    Oh, and do you have some diffs I could apply to my repository, so that I can have fixed versions of the .spec files?

  4. #4
    Junior Member Regular Contributor tksuoran's Avatar
    Join Date
    Mar 2008
    Location
    Cambridge, UK
    Posts
    224

    Re: Spec file bugs

    Have you also checked for version / deprecation issues? For example Bug 449 - TexImage3d marked as deprecated. I believe there are other deprecation issues as well.

  5. #5
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,000

    Re: Spec file bugs

    I submitted a link to this thread to bugzilla.

    @ Alfonse
    No sorry, I don't have an easy list of diffs to give you - I was just making notes as I was reviewing. (Did you notice that typename "void" maps to "*" in your XML file?)

    @ tksuoran
    I was not looking for version / deprecation issues in my diffs.

  6. #6
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948

    Re: Spec file bugs

    Did you notice that typename "void" maps to "*" in your XML file?
    Yes, but that's what the gl.tm file says.

  7. #7
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948

    Re: Spec file bugs

    Questions:

    5)// deprecated but missing from spec file
    GL_RGBA_DXT5_S3TC = 0x83A4,
    GL_RGBA4_DXT5_S3TC = 0x83A5,
    What extension do those come from?

    Other bugs:

    enum.spec thinks that ARB_texture_gather is a core extension (no _ARB suffixes). It is not, and enumext.spec correctly applies the _ARB suffixes.

    I get the feeling that enum.spec is not really as rigorously updated and checked as enumext.spec.

  8. #8
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948

    Re: Spec file bugs

    I have incorporated these fixes into the .spec files I use to generate my XML, and I have a new distribution of the XML files with the corrections available.

    Also, I put a .diff file up there that shows the specific changes compared to the .spec files currently available. To apply the .diff, the .spec files need to be in a folder called "glspecs".

  9. #9
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,000

    Re: Spec file bugs

    The extra tokens are from: (extension 276)
    http://www.opengl.org/registry/specs/S3/s3tc.txt

    It is old an deprecated, but someone has bothered to put some of the enum values in the spec files, may as well have them all..

  10. #10
    Administrator Contributor
    Join Date
    Jan 2002
    Location
    Mt. View, CA
    Posts
    97
    I believe all of these have been addressed either by fixes to the extension specs, or fixes made in the old .spec files over time and now in the new XML spec files, with unlikely-to-be-changed exception of:

    Quote Originally Posted by sqrt[-1] View Post
    6)// Ext registry says:
    GL_PACK_RESAMPLE_SGIX = 0x842E,
    GL_UNPACK_RESAMPLE_SGIX = 0x842F,
    GL_RESAMPLE_REPLICATE_SGIX = 0x8433,
    GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434,

    Spec file says:
    GL_PACK_RESAMPLE_SGIX = 0x842C,
    GL_UNPACK_RESAMPLE_SGIX = 0x842D,
    GL_RESAMPLE_REPLICATE_SGIX = 0x842E,
    GL_RESAMPLE_ZERO_FILL_SGIX = 0x842F,
    My recollection is that there was a screwup and SGI's IRIX implementation actually used different enum values than the published extension spec said. It was unclear that there was a good way to resolve this. Since IRIX is dead as a doornail and likely so is this extension, I'm not going to do anything about it.

    9) //Reg/spec file differences
    RGBA_FLOAT_MODE_ATI 0x8820
    TYPE_RGBA_FLOAT_ATI 0x8820
    The second one is actually a WGL enum and appears in wgl.xml / wglext.h.
    Jon Leech
    Khronos API Registrar
    ARB Ecosystem TSG Chair
    GL/EGL/GLES Spec Editor
    ...and suchlike

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •