]> git.cworth.org Git - apitrace/commitdiff
trim: Greatly expand the list of calls considered to have no side effects
authorCarl Worth <cworth@cworth.org>
Fri, 15 Feb 2013 02:09:14 +0000 (18:09 -0800)
committerCarl Worth <cworth@cworth.org>
Fri, 12 Apr 2013 21:02:57 +0000 (14:02 -0700)
The list of calls added here with the NO_SIDE_EFFECTS flag was
obtained from the existing specs/glapi.py file, (most[*] calls with
"sideeffects=False").

It's a bit unfortunate that we have this duplication of information in
the source tree, (two different lists of calls with no side
effects). But that duplication was already present before this
commit. This commit merely brings this list into sync with the other.

[*] The following calls are not added here in spite of having
sideeffects=False in glapi.py:

    glGetTextureImageEXT
    glGetnCompressedTexImageARB
    glGetnColorTableARB

José reports that the above calls can have side effects when PBOs are
on, (and he plans to update glapi.py).

Then, while the following calls may not affect traditional "GL state"
they do have side effects that can be observed by the user. And these
are debugging side effects that can be very important when
replaying/analyzing a trace. For example, debug message or string
markers are used to decorate different portions of the graphics
command stream with user-supplied data that exists nowhere else. So
these calls are not considered as having no side effects:

    glDebugMessageControl
    glDebugMessageControlARB
    glDebugMessageEnableAMD
    glDebugMessageInsert
    glDebugMessageInsertAMD
    glDebugMessageInsertARB
    glPopDebugGroup
    glPushDebugGroup
    glStringMarkerGREMEDY

common/trace_parser_flags.cpp

index df989741f1ce34344bc9bf36470ec1eaad61e462..cf379cc16af97f7c9d44c78349fe9548a1673702 100644 (file)
@@ -128,14 +128,24 @@ callFlagTable[] = {
     { "eglGetProcAddress",                             CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "eglQueryString",                                CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "eglSwapBuffers",                                CALL_FLAG_SWAPBUFFERS },
+    { "glAreProgramsResidentNV",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glAreTexturesResident",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glAreTexturesResidentEXT",                      CALL_FLAG_NO_SIDE_EFFECTS },
     { "glBindFramebuffer",                             CALL_FLAG_SWAP_RENDERTARGET },
     { "glBindFramebufferEXT",                          CALL_FLAG_SWAP_RENDERTARGET },
     { "glBindFramebufferOES",                          CALL_FLAG_SWAP_RENDERTARGET },
     { "glBlitFramebuffer",                             CALL_FLAG_RENDER },
     { "glBlitFramebufferEXT",                          CALL_FLAG_RENDER },
+    { "glBufferRegionEnabled",                         CALL_FLAG_NO_SIDE_EFFECTS },
     { "glCallList",                                    CALL_FLAG_RENDER },
     { "glCallLists",                                   CALL_FLAG_RENDER },
     { "glClear",                                       CALL_FLAG_RENDER },
+    { "glDebugMessageControl",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glDebugMessageControlARB",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glDebugMessageEnableAMD",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glDebugMessageInsert",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glDebugMessageInsertAMD",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glDebugMessageInsertARB",                       CALL_FLAG_NO_SIDE_EFFECTS },
     { "glDrawArrays",                                  CALL_FLAG_RENDER },
     { "glDrawArraysEXT",                               CALL_FLAG_RENDER },
     { "glDrawArraysIndirect",                          CALL_FLAG_RENDER },
@@ -159,9 +169,316 @@ callFlagTable[] = {
     { "glDrawRangeElementsEXT",                        CALL_FLAG_RENDER },
     { "glEnd",                                         CALL_FLAG_RENDER },
     { "glFrameTerminatorGREMEDY",                      CALL_FLAG_END_FRAME },
+    { "glGetActiveAtomicCounterBufferiv",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveAttrib",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveAttribARB",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveSubroutineName",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveSubroutineUniformName",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveSubroutineUniformiv",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveUniform",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveUniformARB",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveUniformBlockName",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveUniformBlockiv",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveUniformName",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveUniformsiv",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetActiveVaryingNV",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetArrayObjectfvATI",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetArrayObjectivATI",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetAttachedObjectsARB",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetAttachedShaders",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBooleanIndexedvEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBooleani_v",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBooleanv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferParameteri64v",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferParameteriv",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferParameterivARB",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferParameterui64vNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferPointerv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferPointervARB",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferSubData",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetBufferSubDataARB",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetClipPlane",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTable",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableEXT",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableParameterfv",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableParameterfvEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableParameterfvSGI",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableParameteriv",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableParameterivEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableParameterivSGI",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetColorTableSGI",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCombinerInputParameterfvNV",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCombinerInputParameterivNV",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCombinerOutputParameterfvNV",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCombinerOutputParameterivNV",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCombinerStageParameterfvNV",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCompressedMultiTexImageEXT",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCompressedTexImageARB",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetCompressedTextureImageEXT",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetConvolutionFilterEXT",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetConvolutionParameterfv",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetConvolutionParameterfvEXT",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetConvolutionParameteriv",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetConvolutionParameterivEXT",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetDetailTexFuncSGIS",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetDoubleIndexedvEXT",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetDoublei_v",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetDoublev",                                  CALL_FLAG_NO_SIDE_EFFECTS },
     { "glGetError",                                    CALL_FLAG_NO_SIDE_EFFECTS }, // verbose will be set later for GL_NO_ERROR 
+    { "glGetFenceivNV",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFinalCombinerInputParameterfvNV",          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFinalCombinerInputParameterivNV",          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFloatIndexedvEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFloati_v",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFloatv",                                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFogFuncSGIS",                              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFragDataIndex",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFragmentLightfvSGIX",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFragmentLightivSGIX",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFragmentMaterialfvSGIX",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFragmentMaterialivSGIX",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFramebufferAttachmentParameteriv",         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFramebufferAttachmentParameterivEXT",      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFramebufferParameteriv",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetFramebufferParameterivEXT",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetGraphicsResetStatusARB",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetHandleARB",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetHistogramEXT",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetHistogramParameterfv",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetHistogramParameterfvEXT",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetHistogramParameteriv",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetHistogramParameterivEXT",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetImageTransformParameterfvHP",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetImageTransformParameterivHP",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInfoLogARB",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInstrumentsSGIX",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInteger64i_v",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInteger64v",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetIntegerIndexedvEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetIntegeri_v",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetIntegerui64i_vNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetIntegerui64vNV",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetIntegerv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInternalformati64v",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInternalformativ",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInvariantBooleanvEXT",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInvariantFloatvEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetInvariantIntegervEXT",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetLightfv",                                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetLightiv",                                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetListParameterfvSGIX",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetListParameterivSGIX",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetLocalConstantBooleanvEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetLocalConstantFloatvEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetLocalConstantIntegervEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapAttribParameterfvNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapAttribParameterivNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapControlPointsNV",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapParameterfvNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapParameterivNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapdv",                                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapfv",                                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMapiv",                                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMaterialfv",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMaterialiv",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMinmaxEXT",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMinmaxParameterfv",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMinmaxParameterfvEXT",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMinmaxParameteriv",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMinmaxParameterivEXT",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexEnvfvEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexEnvivEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexGendvEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexGenfvEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexGenivEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexImageEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexLevelParameterfvEXT",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexLevelParameterivEXT",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexParameterIivEXT",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexParameterIuivEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexParameterfvEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultiTexParameterivEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultisamplefv",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetMultisamplefvNV",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedBufferParameterivEXT",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedBufferParameterui64vNV",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedBufferPointervEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedBufferSubDataEXT",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedFramebufferAttachmentParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedFramebufferParameterivEXT",           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedProgramLocalParameterIivEXT",         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedProgramLocalParameterIuivEXT",        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedProgramLocalParameterdvEXT",          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedProgramLocalParameterfvEXT",          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedProgramStringEXT",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedProgramivEXT",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedRenderbufferParameterivEXT",          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedStringARB",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetNamedStringivARB",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectBufferfvATI",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectBufferivATI",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectLabel",                              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectParameterfvARB",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectParameterivAPPLE",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectParameterivARB",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetObjectPtrLabel",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glPopDebugGroup",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glPushDebugGroup",                              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glStringMarkerGREMEDY",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetOcclusionQueryivNV",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetOcclusionQueryuivNV",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPerfMonitorCounterDataAMD",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPerfMonitorCounterInfoAMD",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPerfMonitorCounterStringAMD",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPerfMonitorCountersAMD",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPerfMonitorGroupStringAMD",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPerfMonitorGroupsAMD",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPixelTexGenParameterfvSGIS",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPixelTexGenParameterivSGIS",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPointerIndexedvEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPointerv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetPointervEXT",                              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramBinary",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramEnvParameterIivNV",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramEnvParameterIuivNV",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramEnvParameterdvARB",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramEnvParameterfvARB",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramInfoLog",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramInterfaceiv",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramLocalParameterIivNV",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramLocalParameterIuivNV",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramLocalParameterdvARB",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramLocalParameterfvARB",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramNamedParameterdvNV",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramNamedParameterfvNV",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramParameterdvNV",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramParameterfvNV",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramPipelineInfoLog",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramPipelineiv",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramResourceIndex",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramResourceLocation",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramResourceLocationIndex",             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramResourceName",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramResourceiv",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramStageiv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramStringARB",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramStringNV",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramSubroutineParameteruivNV",          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramiv",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramivARB",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetProgramivNV",                              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryIndexediv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjecti64v",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjecti64vEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjectiv",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjectivARB",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjectui64v",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjectui64vEXT",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjectuiv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryObjectuivARB",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryiv",                                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetQueryivARB",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetRenderbufferParameteriv",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetRenderbufferParameterivEXT",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetSamplerParameterIiv",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetSamplerParameterIuiv",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetSamplerParameterfv",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetSamplerParameteriv",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetSeparableFilterEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetShaderInfoLog",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetShaderPrecisionFormat",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetShaderSource",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetShaderSourceARB",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetShaderiv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetSharpenTexFuncSGIS",                       CALL_FLAG_NO_SIDE_EFFECTS },
     { "glGetString",                                   CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "glGetStringi",                                  CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
+    { "glGetSynciv",                                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexBumpParameterfvATI",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexBumpParameterivATI",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexEnvfv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexEnviv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexFilterFuncSGIS",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexGendv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexGenfv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexGeniv",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexLevelParameterfv",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexLevelParameteriv",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameterIiv",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameterIivEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameterIuiv",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameterIuivEXT",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameterPointervAPPLE",                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameterfv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTexParameteriv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTextureLevelParameterfvEXT",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTextureLevelParameterivEXT",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTextureParameterIivEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTextureParameterIuivEXT",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTextureParameterfvEXT",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTextureParameterivEXT",                    CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTrackMatrixivNV",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTransformFeedbackVarying",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTransformFeedbackVaryingEXT",              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetTransformFeedbackVaryingNV",               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformIndices",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformSubroutineuiv",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformdv",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformfv",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformfvARB",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformi64vNV",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformiv",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformivARB",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformui64vNV",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformuiv",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetUniformuivEXT",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVariantArrayObjectfvATI",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVariantArrayObjectivATI",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVariantBooleanvEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVariantFloatvEXT",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVariantIntegervEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVariantPointervEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexArrayIntegeri_vEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexArrayIntegervEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexArrayPointeri_vEXT",                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexArrayPointervEXT",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribArrayObjectfvATI",             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribArrayObjectivATI",             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribIiv",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribIivEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribIuiv",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribIuivEXT",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribLdv",                          CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribLdvEXT",                       CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribLi64vNV",                      CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribLui64vNV",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribPointerv",                     CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribPointervARB",                  CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribPointervNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribdv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribdvARB",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribdvNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribfv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribfvARB",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribfvNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribiv",                           CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribivARB",                        CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVertexAttribivNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoCaptureStreamdvNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoCaptureStreamfvNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoCaptureStreamivNV",                   CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoCaptureivNV",                         CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoi64vNV",                              CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoivNV",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideoui64vNV",                             CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetVideouivNV",                               CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnMapdvARB",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnMapfvARB",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnMapivARB",                                CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnUniformdvARB",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnUniformfvARB",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnUniformivARB",                            CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glGetnUniformuivARB",                           CALL_FLAG_NO_SIDE_EFFECTS },
     { "glIsAsyncMarkerSGIX",                           CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "glIsBuffer",                                    CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "glIsBufferARB",                                 CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
@@ -205,6 +522,8 @@ callFlagTable[] = {
     { "glMultiDrawElementsEXT",                        CALL_FLAG_RENDER },
     { "glMultiModeDrawArraysIBM",                      CALL_FLAG_RENDER },
     { "glMultiModeDrawElementsIBM",                    CALL_FLAG_RENDER },
+    { "glObjectLabel",                                 CALL_FLAG_NO_SIDE_EFFECTS },
+    { "glObjectPtrLabel",                              CALL_FLAG_NO_SIDE_EFFECTS },
     { "glXGetClientString",                            CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "glXGetCurrentContext",                          CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
     { "glXGetCurrentDisplay",                          CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },