1 /**************************************************************************
3 * Copyright 2011 Jose Fonseca
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 **************************************************************************/
28 * Label functions based on their name.
32 #include "trace_lookup.hpp"
33 #include "trace_parser.hpp"
36 using namespace trace;
40 * Shortcut for SwapBuffers, which terminate and swap bound render buffer.
42 #define CALL_FLAG_SWAPBUFFERS (CALL_FLAG_END_FRAME | CALL_FLAG_SWAP_RENDERTARGET)
54 * Call flags lookup table.
56 const Entry<CallFlags>
58 { "CGLFlushDrawable", CALL_FLAG_END_FRAME },
59 { "CGLGetCurrentContext", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
60 { "ID3D10Device1::CheckMultisampleQualityLevels", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
61 { "ID3D10Device1::Draw", CALL_FLAG_RENDER },
62 { "ID3D10Device1::DrawAuto", CALL_FLAG_RENDER },
63 { "ID3D10Device1::DrawIndexed", CALL_FLAG_RENDER },
64 { "ID3D10Device1::DrawIndexedInstanced", CALL_FLAG_RENDER },
65 { "ID3D10Device1::DrawInstanced", CALL_FLAG_RENDER },
66 { "ID3D10Device1::OMSetRenderTargets", CALL_FLAG_SWAP_RENDERTARGET },
67 { "ID3D10Device::CheckMultisampleQualityLevels", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
68 { "ID3D10Device::Draw", CALL_FLAG_RENDER },
69 { "ID3D10Device::DrawAuto", CALL_FLAG_RENDER },
70 { "ID3D10Device::DrawIndexed", CALL_FLAG_RENDER },
71 { "ID3D10Device::DrawIndexedInstanced", CALL_FLAG_RENDER },
72 { "ID3D10Device::DrawInstanced", CALL_FLAG_RENDER },
73 { "ID3D10Device::OMSetRenderTargets", CALL_FLAG_SWAP_RENDERTARGET },
74 { "ID3D11Device::CheckMultisampleQualityLevels", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
75 { "ID3D11DeviceContext1::Draw", CALL_FLAG_RENDER },
76 { "ID3D11DeviceContext1::DrawAuto", CALL_FLAG_RENDER },
77 { "ID3D11DeviceContext1::DrawIndexed", CALL_FLAG_RENDER },
78 { "ID3D11DeviceContext1::DrawIndexedInstanced", CALL_FLAG_RENDER },
79 { "ID3D11DeviceContext1::DrawIndexedInstancedIndirect", CALL_FLAG_RENDER },
80 { "ID3D11DeviceContext1::DrawInstanced", CALL_FLAG_RENDER },
81 { "ID3D11DeviceContext1::DrawInstancedIndirect", CALL_FLAG_RENDER },
82 { "ID3D11DeviceContext1::OMSetRenderTargets", CALL_FLAG_SWAP_RENDERTARGET },
83 { "ID3D11DeviceContext1::OMSetRenderTargetsAndUnorderedAccessViews", CALL_FLAG_SWAP_RENDERTARGET },
84 { "ID3D11DeviceContext::Draw", CALL_FLAG_RENDER },
85 { "ID3D11DeviceContext::DrawAuto", CALL_FLAG_RENDER },
86 { "ID3D11DeviceContext::DrawIndexed", CALL_FLAG_RENDER },
87 { "ID3D11DeviceContext::DrawIndexedInstanced", CALL_FLAG_RENDER },
88 { "ID3D11DeviceContext::DrawIndexedInstancedIndirect", CALL_FLAG_RENDER },
89 { "ID3D11DeviceContext::DrawInstanced", CALL_FLAG_RENDER },
90 { "ID3D11DeviceContext::DrawInstancedIndirect", CALL_FLAG_RENDER },
91 { "ID3D11DeviceContext::OMSetRenderTargets", CALL_FLAG_SWAP_RENDERTARGET },
92 { "ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews", CALL_FLAG_SWAP_RENDERTARGET },
93 { "IDXGISwapChain::Present", CALL_FLAG_SWAPBUFFERS },
94 { "IDXGISwapChainDWM::Present", CALL_FLAG_SWAPBUFFERS },
95 { "IDirect3D9::CheckDeviceFormat", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
96 { "IDirect3D9::EnumAdapterModes", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
97 { "IDirect3D9::GetAdapterModeCount", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
98 { "IDirect3D9::GetDeviceCaps", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
99 { "IDirect3D9Ex::CheckDeviceFormat", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
100 { "IDirect3D9Ex::EnumAdapterModes", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
101 { "IDirect3D9Ex::GetAdapterModeCount", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
102 { "IDirect3D9Ex::GetDeviceCaps", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
103 { "IDirect3DDevice9::Clear", CALL_FLAG_RENDER },
104 { "IDirect3DDevice9::DrawIndexedPrimitive", CALL_FLAG_RENDER },
105 { "IDirect3DDevice9::DrawIndexedPrimitiveUP", CALL_FLAG_RENDER },
106 { "IDirect3DDevice9::DrawPrimitive", CALL_FLAG_RENDER },
107 { "IDirect3DDevice9::DrawPrimitiveUP", CALL_FLAG_RENDER },
108 { "IDirect3DDevice9::DrawRectPatch", CALL_FLAG_RENDER },
109 { "IDirect3DDevice9::DrawTriPatch", CALL_FLAG_RENDER },
110 { "IDirect3DDevice9::GetDeviceCaps", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
111 { "IDirect3DDevice9::GetRenderTargetData", CALL_FLAG_END_FRAME },
112 { "IDirect3DDevice9::Present", CALL_FLAG_SWAPBUFFERS },
113 { "IDirect3DDevice9::SetRenderTarget", CALL_FLAG_SWAP_RENDERTARGET },
114 { "IDirect3DDevice9Ex::Clear", CALL_FLAG_RENDER },
115 { "IDirect3DDevice9Ex::DrawIndexedPrimitive", CALL_FLAG_RENDER },
116 { "IDirect3DDevice9Ex::DrawIndexedPrimitiveUP", CALL_FLAG_RENDER },
117 { "IDirect3DDevice9Ex::DrawPrimitive", CALL_FLAG_RENDER },
118 { "IDirect3DDevice9Ex::DrawPrimitiveUP", CALL_FLAG_RENDER },
119 { "IDirect3DDevice9Ex::DrawRectPatch", CALL_FLAG_RENDER },
120 { "IDirect3DDevice9Ex::DrawTriPatch", CALL_FLAG_RENDER },
121 { "IDirect3DDevice9Ex::GetDeviceCaps", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
122 { "IDirect3DDevice9Ex::GetRenderTargetData", CALL_FLAG_END_FRAME },
123 { "IDirect3DDevice9Ex::Present", CALL_FLAG_SWAPBUFFERS },
124 { "IDirect3DDevice9Ex::PresentEx", CALL_FLAG_SWAPBUFFERS },
125 { "IDirect3DDevice9Ex::SetRenderTarget", CALL_FLAG_SWAP_RENDERTARGET },
126 { "IDirect3DSwapChain9::Present", CALL_FLAG_SWAPBUFFERS },
127 { "IDirect3DSwapChain9Ex::Present", CALL_FLAG_SWAPBUFFERS },
128 { "eglGetProcAddress", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
129 { "eglQueryString", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
130 { "eglSwapBuffers", CALL_FLAG_SWAPBUFFERS },
131 { "glAreProgramsResidentNV", CALL_FLAG_NO_SIDE_EFFECTS },
132 { "glAreTexturesResident", CALL_FLAG_NO_SIDE_EFFECTS },
133 { "glAreTexturesResidentEXT", CALL_FLAG_NO_SIDE_EFFECTS },
134 { "glBindFramebuffer", CALL_FLAG_SWAP_RENDERTARGET },
135 { "glBindFramebufferEXT", CALL_FLAG_SWAP_RENDERTARGET },
136 { "glBindFramebufferOES", CALL_FLAG_SWAP_RENDERTARGET },
137 { "glBlitFramebuffer", CALL_FLAG_RENDER },
138 { "glBlitFramebufferEXT", CALL_FLAG_RENDER },
139 { "glBufferRegionEnabled", CALL_FLAG_NO_SIDE_EFFECTS },
140 { "glCallList", CALL_FLAG_RENDER },
141 { "glCallLists", CALL_FLAG_RENDER },
142 { "glClear", CALL_FLAG_RENDER },
143 { "glDebugMessageControl", CALL_FLAG_NO_SIDE_EFFECTS },
144 { "glDebugMessageControlARB", CALL_FLAG_NO_SIDE_EFFECTS },
145 { "glDebugMessageEnableAMD", CALL_FLAG_NO_SIDE_EFFECTS },
146 { "glDebugMessageInsert", CALL_FLAG_NO_SIDE_EFFECTS },
147 { "glDebugMessageInsertAMD", CALL_FLAG_NO_SIDE_EFFECTS },
148 { "glDebugMessageInsertARB", CALL_FLAG_NO_SIDE_EFFECTS },
149 { "glDrawArrays", CALL_FLAG_RENDER },
150 { "glDrawArraysEXT", CALL_FLAG_RENDER },
151 { "glDrawArraysIndirect", CALL_FLAG_RENDER },
152 { "glDrawArraysInstanced", CALL_FLAG_RENDER },
153 { "glDrawArraysInstancedARB", CALL_FLAG_RENDER },
154 { "glDrawArraysInstancedBaseInstance", CALL_FLAG_RENDER },
155 { "glDrawArraysInstancedEXT", CALL_FLAG_RENDER },
156 { "glDrawElements", CALL_FLAG_RENDER },
157 { "glDrawElementsBaseVertex", CALL_FLAG_RENDER },
158 { "glDrawElementsIndirect", CALL_FLAG_RENDER },
159 { "glDrawElementsInstanced", CALL_FLAG_RENDER },
160 { "glDrawElementsInstancedARB", CALL_FLAG_RENDER },
161 { "glDrawElementsInstancedBaseInstance", CALL_FLAG_RENDER },
162 { "glDrawElementsInstancedBaseVertex", CALL_FLAG_RENDER },
163 { "glDrawElementsInstancedBaseVertexBaseInstance", CALL_FLAG_RENDER },
164 { "glDrawElementsInstancedEXT", CALL_FLAG_RENDER },
165 { "glDrawMeshArraysSUN", CALL_FLAG_RENDER },
166 { "glDrawPixels", CALL_FLAG_RENDER },
167 { "glDrawRangeElements", CALL_FLAG_RENDER },
168 { "glDrawRangeElementsBaseVertex", CALL_FLAG_RENDER },
169 { "glDrawRangeElementsEXT", CALL_FLAG_RENDER },
170 { "glEnd", CALL_FLAG_RENDER },
171 { "glFrameTerminatorGREMEDY", CALL_FLAG_END_FRAME },
172 { "glGetActiveAtomicCounterBufferiv", CALL_FLAG_NO_SIDE_EFFECTS },
173 { "glGetActiveAttrib", CALL_FLAG_NO_SIDE_EFFECTS },
174 { "glGetActiveAttribARB", CALL_FLAG_NO_SIDE_EFFECTS },
175 { "glGetActiveSubroutineName", CALL_FLAG_NO_SIDE_EFFECTS },
176 { "glGetActiveSubroutineUniformName", CALL_FLAG_NO_SIDE_EFFECTS },
177 { "glGetActiveSubroutineUniformiv", CALL_FLAG_NO_SIDE_EFFECTS },
178 { "glGetActiveUniform", CALL_FLAG_NO_SIDE_EFFECTS },
179 { "glGetActiveUniformARB", CALL_FLAG_NO_SIDE_EFFECTS },
180 { "glGetActiveUniformBlockName", CALL_FLAG_NO_SIDE_EFFECTS },
181 { "glGetActiveUniformBlockiv", CALL_FLAG_NO_SIDE_EFFECTS },
182 { "glGetActiveUniformName", CALL_FLAG_NO_SIDE_EFFECTS },
183 { "glGetActiveUniformsiv", CALL_FLAG_NO_SIDE_EFFECTS },
184 { "glGetActiveVaryingNV", CALL_FLAG_NO_SIDE_EFFECTS },
185 { "glGetArrayObjectfvATI", CALL_FLAG_NO_SIDE_EFFECTS },
186 { "glGetArrayObjectivATI", CALL_FLAG_NO_SIDE_EFFECTS },
187 { "glGetAttachedObjectsARB", CALL_FLAG_NO_SIDE_EFFECTS },
188 { "glGetAttachedShaders", CALL_FLAG_NO_SIDE_EFFECTS },
189 { "glGetBooleanIndexedvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
190 { "glGetBooleani_v", CALL_FLAG_NO_SIDE_EFFECTS },
191 { "glGetBooleanv", CALL_FLAG_NO_SIDE_EFFECTS },
192 { "glGetBufferParameteri64v", CALL_FLAG_NO_SIDE_EFFECTS },
193 { "glGetBufferParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
194 { "glGetBufferParameterivARB", CALL_FLAG_NO_SIDE_EFFECTS },
195 { "glGetBufferParameterui64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
196 { "glGetBufferPointerv", CALL_FLAG_NO_SIDE_EFFECTS },
197 { "glGetBufferPointervARB", CALL_FLAG_NO_SIDE_EFFECTS },
198 { "glGetBufferSubData", CALL_FLAG_NO_SIDE_EFFECTS },
199 { "glGetBufferSubDataARB", CALL_FLAG_NO_SIDE_EFFECTS },
200 { "glGetClipPlane", CALL_FLAG_NO_SIDE_EFFECTS },
201 { "glGetColorTable", CALL_FLAG_NO_SIDE_EFFECTS },
202 { "glGetColorTableEXT", CALL_FLAG_NO_SIDE_EFFECTS },
203 { "glGetColorTableParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
204 { "glGetColorTableParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
205 { "glGetColorTableParameterfvSGI", CALL_FLAG_NO_SIDE_EFFECTS },
206 { "glGetColorTableParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
207 { "glGetColorTableParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
208 { "glGetColorTableParameterivSGI", CALL_FLAG_NO_SIDE_EFFECTS },
209 { "glGetColorTableSGI", CALL_FLAG_NO_SIDE_EFFECTS },
210 { "glGetCombinerInputParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
211 { "glGetCombinerInputParameterivNV", CALL_FLAG_NO_SIDE_EFFECTS },
212 { "glGetCombinerOutputParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
213 { "glGetCombinerOutputParameterivNV", CALL_FLAG_NO_SIDE_EFFECTS },
214 { "glGetCombinerStageParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
215 { "glGetCompressedMultiTexImageEXT", CALL_FLAG_NO_SIDE_EFFECTS },
216 { "glGetCompressedTexImageARB", CALL_FLAG_NO_SIDE_EFFECTS },
217 { "glGetCompressedTextureImageEXT", CALL_FLAG_NO_SIDE_EFFECTS },
218 { "glGetConvolutionFilterEXT", CALL_FLAG_NO_SIDE_EFFECTS },
219 { "glGetConvolutionParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
220 { "glGetConvolutionParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
221 { "glGetConvolutionParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
222 { "glGetConvolutionParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
223 { "glGetDetailTexFuncSGIS", CALL_FLAG_NO_SIDE_EFFECTS },
224 { "glGetDoubleIndexedvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
225 { "glGetDoublei_v", CALL_FLAG_NO_SIDE_EFFECTS },
226 { "glGetDoublev", CALL_FLAG_NO_SIDE_EFFECTS },
227 { "glGetError", CALL_FLAG_NO_SIDE_EFFECTS }, // verbose will be set later for GL_NO_ERROR
228 { "glGetFenceivNV", CALL_FLAG_NO_SIDE_EFFECTS },
229 { "glGetFinalCombinerInputParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
230 { "glGetFinalCombinerInputParameterivNV", CALL_FLAG_NO_SIDE_EFFECTS },
231 { "glGetFloatIndexedvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
232 { "glGetFloati_v", CALL_FLAG_NO_SIDE_EFFECTS },
233 { "glGetFloatv", CALL_FLAG_NO_SIDE_EFFECTS },
234 { "glGetFogFuncSGIS", CALL_FLAG_NO_SIDE_EFFECTS },
235 { "glGetFragDataIndex", CALL_FLAG_NO_SIDE_EFFECTS },
236 { "glGetFragmentLightfvSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
237 { "glGetFragmentLightivSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
238 { "glGetFragmentMaterialfvSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
239 { "glGetFragmentMaterialivSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
240 { "glGetFramebufferAttachmentParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
241 { "glGetFramebufferAttachmentParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
242 { "glGetFramebufferParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
243 { "glGetFramebufferParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
244 { "glGetGraphicsResetStatusARB", CALL_FLAG_NO_SIDE_EFFECTS },
245 { "glGetHandleARB", CALL_FLAG_NO_SIDE_EFFECTS },
246 { "glGetHistogramEXT", CALL_FLAG_NO_SIDE_EFFECTS },
247 { "glGetHistogramParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
248 { "glGetHistogramParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
249 { "glGetHistogramParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
250 { "glGetHistogramParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
251 { "glGetImageTransformParameterfvHP", CALL_FLAG_NO_SIDE_EFFECTS },
252 { "glGetImageTransformParameterivHP", CALL_FLAG_NO_SIDE_EFFECTS },
253 { "glGetInfoLogARB", CALL_FLAG_NO_SIDE_EFFECTS },
254 { "glGetInstrumentsSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
255 { "glGetInteger64i_v", CALL_FLAG_NO_SIDE_EFFECTS },
256 { "glGetInteger64v", CALL_FLAG_NO_SIDE_EFFECTS },
257 { "glGetIntegerIndexedvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
258 { "glGetIntegeri_v", CALL_FLAG_NO_SIDE_EFFECTS },
259 { "glGetIntegerui64i_vNV", CALL_FLAG_NO_SIDE_EFFECTS },
260 { "glGetIntegerui64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
261 { "glGetIntegerv", CALL_FLAG_NO_SIDE_EFFECTS },
262 { "glGetInternalformati64v", CALL_FLAG_NO_SIDE_EFFECTS },
263 { "glGetInternalformativ", CALL_FLAG_NO_SIDE_EFFECTS },
264 { "glGetInvariantBooleanvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
265 { "glGetInvariantFloatvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
266 { "glGetInvariantIntegervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
267 { "glGetLightfv", CALL_FLAG_NO_SIDE_EFFECTS },
268 { "glGetLightiv", CALL_FLAG_NO_SIDE_EFFECTS },
269 { "glGetListParameterfvSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
270 { "glGetListParameterivSGIX", CALL_FLAG_NO_SIDE_EFFECTS },
271 { "glGetLocalConstantBooleanvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
272 { "glGetLocalConstantFloatvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
273 { "glGetLocalConstantIntegervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
274 { "glGetMapAttribParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
275 { "glGetMapAttribParameterivNV", CALL_FLAG_NO_SIDE_EFFECTS },
276 { "glGetMapControlPointsNV", CALL_FLAG_NO_SIDE_EFFECTS },
277 { "glGetMapParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
278 { "glGetMapParameterivNV", CALL_FLAG_NO_SIDE_EFFECTS },
279 { "glGetMapdv", CALL_FLAG_NO_SIDE_EFFECTS },
280 { "glGetMapfv", CALL_FLAG_NO_SIDE_EFFECTS },
281 { "glGetMapiv", CALL_FLAG_NO_SIDE_EFFECTS },
282 { "glGetMaterialfv", CALL_FLAG_NO_SIDE_EFFECTS },
283 { "glGetMaterialiv", CALL_FLAG_NO_SIDE_EFFECTS },
284 { "glGetMinmaxEXT", CALL_FLAG_NO_SIDE_EFFECTS },
285 { "glGetMinmaxParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
286 { "glGetMinmaxParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
287 { "glGetMinmaxParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
288 { "glGetMinmaxParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
289 { "glGetMultiTexEnvfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
290 { "glGetMultiTexEnvivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
291 { "glGetMultiTexGendvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
292 { "glGetMultiTexGenfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
293 { "glGetMultiTexGenivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
294 { "glGetMultiTexImageEXT", CALL_FLAG_NO_SIDE_EFFECTS },
295 { "glGetMultiTexLevelParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
296 { "glGetMultiTexLevelParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
297 { "glGetMultiTexParameterIivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
298 { "glGetMultiTexParameterIuivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
299 { "glGetMultiTexParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
300 { "glGetMultiTexParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
301 { "glGetMultisamplefv", CALL_FLAG_NO_SIDE_EFFECTS },
302 { "glGetMultisamplefvNV", CALL_FLAG_NO_SIDE_EFFECTS },
303 { "glGetNamedBufferParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
304 { "glGetNamedBufferParameterui64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
305 { "glGetNamedBufferPointervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
306 { "glGetNamedBufferSubDataEXT", CALL_FLAG_NO_SIDE_EFFECTS },
307 { "glGetNamedFramebufferAttachmentParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
308 { "glGetNamedFramebufferParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
309 { "glGetNamedProgramLocalParameterIivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
310 { "glGetNamedProgramLocalParameterIuivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
311 { "glGetNamedProgramLocalParameterdvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
312 { "glGetNamedProgramLocalParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
313 { "glGetNamedProgramStringEXT", CALL_FLAG_NO_SIDE_EFFECTS },
314 { "glGetNamedProgramivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
315 { "glGetNamedRenderbufferParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
316 { "glGetNamedStringARB", CALL_FLAG_NO_SIDE_EFFECTS },
317 { "glGetNamedStringivARB", CALL_FLAG_NO_SIDE_EFFECTS },
318 { "glGetObjectBufferfvATI", CALL_FLAG_NO_SIDE_EFFECTS },
319 { "glGetObjectBufferivATI", CALL_FLAG_NO_SIDE_EFFECTS },
320 { "glGetObjectLabel", CALL_FLAG_NO_SIDE_EFFECTS },
321 { "glGetObjectParameterfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
322 { "glGetObjectParameterivAPPLE", CALL_FLAG_NO_SIDE_EFFECTS },
323 { "glGetObjectParameterivARB", CALL_FLAG_NO_SIDE_EFFECTS },
324 { "glGetObjectPtrLabel", CALL_FLAG_NO_SIDE_EFFECTS },
325 { "glPopDebugGroup", CALL_FLAG_NO_SIDE_EFFECTS },
326 { "glPushDebugGroup", CALL_FLAG_NO_SIDE_EFFECTS },
327 { "glStringMarkerGREMEDY", CALL_FLAG_NO_SIDE_EFFECTS },
328 { "glGetOcclusionQueryivNV", CALL_FLAG_NO_SIDE_EFFECTS },
329 { "glGetOcclusionQueryuivNV", CALL_FLAG_NO_SIDE_EFFECTS },
330 { "glGetPerfMonitorCounterDataAMD", CALL_FLAG_NO_SIDE_EFFECTS },
331 { "glGetPerfMonitorCounterInfoAMD", CALL_FLAG_NO_SIDE_EFFECTS },
332 { "glGetPerfMonitorCounterStringAMD", CALL_FLAG_NO_SIDE_EFFECTS },
333 { "glGetPerfMonitorCountersAMD", CALL_FLAG_NO_SIDE_EFFECTS },
334 { "glGetPerfMonitorGroupStringAMD", CALL_FLAG_NO_SIDE_EFFECTS },
335 { "glGetPerfMonitorGroupsAMD", CALL_FLAG_NO_SIDE_EFFECTS },
336 { "glGetPixelTexGenParameterfvSGIS", CALL_FLAG_NO_SIDE_EFFECTS },
337 { "glGetPixelTexGenParameterivSGIS", CALL_FLAG_NO_SIDE_EFFECTS },
338 { "glGetPointerIndexedvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
339 { "glGetPointerv", CALL_FLAG_NO_SIDE_EFFECTS },
340 { "glGetPointervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
341 { "glGetProgramBinary", CALL_FLAG_NO_SIDE_EFFECTS },
342 { "glGetProgramEnvParameterIivNV", CALL_FLAG_NO_SIDE_EFFECTS },
343 { "glGetProgramEnvParameterIuivNV", CALL_FLAG_NO_SIDE_EFFECTS },
344 { "glGetProgramEnvParameterdvARB", CALL_FLAG_NO_SIDE_EFFECTS },
345 { "glGetProgramEnvParameterfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
346 { "glGetProgramInfoLog", CALL_FLAG_NO_SIDE_EFFECTS },
347 { "glGetProgramInterfaceiv", CALL_FLAG_NO_SIDE_EFFECTS },
348 { "glGetProgramLocalParameterIivNV", CALL_FLAG_NO_SIDE_EFFECTS },
349 { "glGetProgramLocalParameterIuivNV", CALL_FLAG_NO_SIDE_EFFECTS },
350 { "glGetProgramLocalParameterdvARB", CALL_FLAG_NO_SIDE_EFFECTS },
351 { "glGetProgramLocalParameterfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
352 { "glGetProgramNamedParameterdvNV", CALL_FLAG_NO_SIDE_EFFECTS },
353 { "glGetProgramNamedParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
354 { "glGetProgramParameterdvNV", CALL_FLAG_NO_SIDE_EFFECTS },
355 { "glGetProgramParameterfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
356 { "glGetProgramPipelineInfoLog", CALL_FLAG_NO_SIDE_EFFECTS },
357 { "glGetProgramPipelineiv", CALL_FLAG_NO_SIDE_EFFECTS },
358 { "glGetProgramResourceIndex", CALL_FLAG_NO_SIDE_EFFECTS },
359 { "glGetProgramResourceLocation", CALL_FLAG_NO_SIDE_EFFECTS },
360 { "glGetProgramResourceLocationIndex", CALL_FLAG_NO_SIDE_EFFECTS },
361 { "glGetProgramResourceName", CALL_FLAG_NO_SIDE_EFFECTS },
362 { "glGetProgramResourceiv", CALL_FLAG_NO_SIDE_EFFECTS },
363 { "glGetProgramStageiv", CALL_FLAG_NO_SIDE_EFFECTS },
364 { "glGetProgramStringARB", CALL_FLAG_NO_SIDE_EFFECTS },
365 { "glGetProgramStringNV", CALL_FLAG_NO_SIDE_EFFECTS },
366 { "glGetProgramSubroutineParameteruivNV", CALL_FLAG_NO_SIDE_EFFECTS },
367 { "glGetProgramiv", CALL_FLAG_NO_SIDE_EFFECTS },
368 { "glGetProgramivARB", CALL_FLAG_NO_SIDE_EFFECTS },
369 { "glGetProgramivNV", CALL_FLAG_NO_SIDE_EFFECTS },
370 { "glGetQueryIndexediv", CALL_FLAG_NO_SIDE_EFFECTS },
371 { "glGetQueryObjecti64v", CALL_FLAG_NO_SIDE_EFFECTS },
372 { "glGetQueryObjecti64vEXT", CALL_FLAG_NO_SIDE_EFFECTS },
373 { "glGetQueryObjectiv", CALL_FLAG_NO_SIDE_EFFECTS },
374 { "glGetQueryObjectivARB", CALL_FLAG_NO_SIDE_EFFECTS },
375 { "glGetQueryObjectui64v", CALL_FLAG_NO_SIDE_EFFECTS },
376 { "glGetQueryObjectui64vEXT", CALL_FLAG_NO_SIDE_EFFECTS },
377 { "glGetQueryObjectuiv", CALL_FLAG_NO_SIDE_EFFECTS },
378 { "glGetQueryObjectuivARB", CALL_FLAG_NO_SIDE_EFFECTS },
379 { "glGetQueryiv", CALL_FLAG_NO_SIDE_EFFECTS },
380 { "glGetQueryivARB", CALL_FLAG_NO_SIDE_EFFECTS },
381 { "glGetRenderbufferParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
382 { "glGetRenderbufferParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
383 { "glGetSamplerParameterIiv", CALL_FLAG_NO_SIDE_EFFECTS },
384 { "glGetSamplerParameterIuiv", CALL_FLAG_NO_SIDE_EFFECTS },
385 { "glGetSamplerParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
386 { "glGetSamplerParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
387 { "glGetSeparableFilterEXT", CALL_FLAG_NO_SIDE_EFFECTS },
388 { "glGetShaderInfoLog", CALL_FLAG_NO_SIDE_EFFECTS },
389 { "glGetShaderPrecisionFormat", CALL_FLAG_NO_SIDE_EFFECTS },
390 { "glGetShaderSource", CALL_FLAG_NO_SIDE_EFFECTS },
391 { "glGetShaderSourceARB", CALL_FLAG_NO_SIDE_EFFECTS },
392 { "glGetShaderiv", CALL_FLAG_NO_SIDE_EFFECTS },
393 { "glGetSharpenTexFuncSGIS", CALL_FLAG_NO_SIDE_EFFECTS },
394 { "glGetString", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
395 { "glGetStringi", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
396 { "glGetSynciv", CALL_FLAG_NO_SIDE_EFFECTS },
397 { "glGetTexBumpParameterfvATI", CALL_FLAG_NO_SIDE_EFFECTS },
398 { "glGetTexBumpParameterivATI", CALL_FLAG_NO_SIDE_EFFECTS },
399 { "glGetTexEnvfv", CALL_FLAG_NO_SIDE_EFFECTS },
400 { "glGetTexEnviv", CALL_FLAG_NO_SIDE_EFFECTS },
401 { "glGetTexFilterFuncSGIS", CALL_FLAG_NO_SIDE_EFFECTS },
402 { "glGetTexGendv", CALL_FLAG_NO_SIDE_EFFECTS },
403 { "glGetTexGenfv", CALL_FLAG_NO_SIDE_EFFECTS },
404 { "glGetTexGeniv", CALL_FLAG_NO_SIDE_EFFECTS },
405 { "glGetTexLevelParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
406 { "glGetTexLevelParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
407 { "glGetTexParameterIiv", CALL_FLAG_NO_SIDE_EFFECTS },
408 { "glGetTexParameterIivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
409 { "glGetTexParameterIuiv", CALL_FLAG_NO_SIDE_EFFECTS },
410 { "glGetTexParameterIuivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
411 { "glGetTexParameterPointervAPPLE", CALL_FLAG_NO_SIDE_EFFECTS },
412 { "glGetTexParameterfv", CALL_FLAG_NO_SIDE_EFFECTS },
413 { "glGetTexParameteriv", CALL_FLAG_NO_SIDE_EFFECTS },
414 { "glGetTextureLevelParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
415 { "glGetTextureLevelParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
416 { "glGetTextureParameterIivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
417 { "glGetTextureParameterIuivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
418 { "glGetTextureParameterfvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
419 { "glGetTextureParameterivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
420 { "glGetTrackMatrixivNV", CALL_FLAG_NO_SIDE_EFFECTS },
421 { "glGetTransformFeedbackVarying", CALL_FLAG_NO_SIDE_EFFECTS },
422 { "glGetTransformFeedbackVaryingEXT", CALL_FLAG_NO_SIDE_EFFECTS },
423 { "glGetTransformFeedbackVaryingNV", CALL_FLAG_NO_SIDE_EFFECTS },
424 { "glGetUniformIndices", CALL_FLAG_NO_SIDE_EFFECTS },
425 { "glGetUniformSubroutineuiv", CALL_FLAG_NO_SIDE_EFFECTS },
426 { "glGetUniformdv", CALL_FLAG_NO_SIDE_EFFECTS },
427 { "glGetUniformfv", CALL_FLAG_NO_SIDE_EFFECTS },
428 { "glGetUniformfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
429 { "glGetUniformi64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
430 { "glGetUniformiv", CALL_FLAG_NO_SIDE_EFFECTS },
431 { "glGetUniformivARB", CALL_FLAG_NO_SIDE_EFFECTS },
432 { "glGetUniformui64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
433 { "glGetUniformuiv", CALL_FLAG_NO_SIDE_EFFECTS },
434 { "glGetUniformuivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
435 { "glGetVariantArrayObjectfvATI", CALL_FLAG_NO_SIDE_EFFECTS },
436 { "glGetVariantArrayObjectivATI", CALL_FLAG_NO_SIDE_EFFECTS },
437 { "glGetVariantBooleanvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
438 { "glGetVariantFloatvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
439 { "glGetVariantIntegervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
440 { "glGetVariantPointervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
441 { "glGetVertexArrayIntegeri_vEXT", CALL_FLAG_NO_SIDE_EFFECTS },
442 { "glGetVertexArrayIntegervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
443 { "glGetVertexArrayPointeri_vEXT", CALL_FLAG_NO_SIDE_EFFECTS },
444 { "glGetVertexArrayPointervEXT", CALL_FLAG_NO_SIDE_EFFECTS },
445 { "glGetVertexAttribArrayObjectfvATI", CALL_FLAG_NO_SIDE_EFFECTS },
446 { "glGetVertexAttribArrayObjectivATI", CALL_FLAG_NO_SIDE_EFFECTS },
447 { "glGetVertexAttribIiv", CALL_FLAG_NO_SIDE_EFFECTS },
448 { "glGetVertexAttribIivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
449 { "glGetVertexAttribIuiv", CALL_FLAG_NO_SIDE_EFFECTS },
450 { "glGetVertexAttribIuivEXT", CALL_FLAG_NO_SIDE_EFFECTS },
451 { "glGetVertexAttribLdv", CALL_FLAG_NO_SIDE_EFFECTS },
452 { "glGetVertexAttribLdvEXT", CALL_FLAG_NO_SIDE_EFFECTS },
453 { "glGetVertexAttribLi64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
454 { "glGetVertexAttribLui64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
455 { "glGetVertexAttribPointerv", CALL_FLAG_NO_SIDE_EFFECTS },
456 { "glGetVertexAttribPointervARB", CALL_FLAG_NO_SIDE_EFFECTS },
457 { "glGetVertexAttribPointervNV", CALL_FLAG_NO_SIDE_EFFECTS },
458 { "glGetVertexAttribdv", CALL_FLAG_NO_SIDE_EFFECTS },
459 { "glGetVertexAttribdvARB", CALL_FLAG_NO_SIDE_EFFECTS },
460 { "glGetVertexAttribdvNV", CALL_FLAG_NO_SIDE_EFFECTS },
461 { "glGetVertexAttribfv", CALL_FLAG_NO_SIDE_EFFECTS },
462 { "glGetVertexAttribfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
463 { "glGetVertexAttribfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
464 { "glGetVertexAttribiv", CALL_FLAG_NO_SIDE_EFFECTS },
465 { "glGetVertexAttribivARB", CALL_FLAG_NO_SIDE_EFFECTS },
466 { "glGetVertexAttribivNV", CALL_FLAG_NO_SIDE_EFFECTS },
467 { "glGetVideoCaptureStreamdvNV", CALL_FLAG_NO_SIDE_EFFECTS },
468 { "glGetVideoCaptureStreamfvNV", CALL_FLAG_NO_SIDE_EFFECTS },
469 { "glGetVideoCaptureStreamivNV", CALL_FLAG_NO_SIDE_EFFECTS },
470 { "glGetVideoCaptureivNV", CALL_FLAG_NO_SIDE_EFFECTS },
471 { "glGetVideoi64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
472 { "glGetVideoivNV", CALL_FLAG_NO_SIDE_EFFECTS },
473 { "glGetVideoui64vNV", CALL_FLAG_NO_SIDE_EFFECTS },
474 { "glGetVideouivNV", CALL_FLAG_NO_SIDE_EFFECTS },
475 { "glGetnMapdvARB", CALL_FLAG_NO_SIDE_EFFECTS },
476 { "glGetnMapfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
477 { "glGetnMapivARB", CALL_FLAG_NO_SIDE_EFFECTS },
478 { "glGetnUniformdvARB", CALL_FLAG_NO_SIDE_EFFECTS },
479 { "glGetnUniformfvARB", CALL_FLAG_NO_SIDE_EFFECTS },
480 { "glGetnUniformivARB", CALL_FLAG_NO_SIDE_EFFECTS },
481 { "glGetnUniformuivARB", CALL_FLAG_NO_SIDE_EFFECTS },
482 { "glIsAsyncMarkerSGIX", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
483 { "glIsBuffer", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
484 { "glIsBufferARB", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
485 { "glIsBufferResidentNV", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
486 { "glIsEnabled", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
487 { "glIsEnabledIndexedEXT", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
488 { "glIsEnabledi", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
489 { "glIsFenceAPPLE", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
490 { "glIsFenceNV", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
491 { "glIsFramebuffer", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
492 { "glIsFramebufferEXT", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
493 { "glIsList", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
494 { "glIsNameAMD", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
495 { "glIsNamedBufferResidentNV", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
496 { "glIsNamedStringARB", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
497 { "glIsObjectBufferATI", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
498 { "glIsOcclusionQueryNV", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
499 { "glIsProgram", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
500 { "glIsProgramARB", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
501 { "glIsProgramNV", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
502 { "glIsProgramPipeline", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
503 { "glIsQuery", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
504 { "glIsQueryARB", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
505 { "glIsRenderbuffer", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
506 { "glIsRenderbufferEXT", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
507 { "glIsSampler", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
508 { "glIsShader", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
509 { "glIsSync", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
510 { "glIsTexture", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
511 { "glIsTextureEXT", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
512 { "glIsTransformFeedback", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
513 { "glIsTransformFeedbackNV", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
514 { "glIsVariantEnabledEXT", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
515 { "glIsVertexArray", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
516 { "glIsVertexArrayAPPLE", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
517 { "glIsVertexAttribEnabledAPPLE", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
518 { "glMultiDrawArrays", CALL_FLAG_RENDER },
519 { "glMultiDrawArraysEXT", CALL_FLAG_RENDER },
520 { "glMultiDrawElements", CALL_FLAG_RENDER },
521 { "glMultiDrawElementsBaseVertex", CALL_FLAG_RENDER },
522 { "glMultiDrawElementsEXT", CALL_FLAG_RENDER },
523 { "glMultiModeDrawArraysIBM", CALL_FLAG_RENDER },
524 { "glMultiModeDrawElementsIBM", CALL_FLAG_RENDER },
525 { "glObjectLabel", CALL_FLAG_NO_SIDE_EFFECTS },
526 { "glObjectPtrLabel", CALL_FLAG_NO_SIDE_EFFECTS },
527 { "glXGetClientString", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
528 { "glXGetCurrentContext", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
529 { "glXGetCurrentDisplay", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
530 { "glXGetCurrentDrawable", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
531 { "glXGetFBConfigAttrib", CALL_FLAG_VERBOSE },
532 { "glXGetFBConfigAttribSGIX", CALL_FLAG_VERBOSE },
533 { "glXGetProcAddress", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
534 { "glXGetProcAddressARB", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
535 { "glXIsDirect", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
536 { "glXQueryExtension", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
537 { "glXQueryExtensionsString", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
538 { "glXQueryVersion", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
539 { "glXSwapBuffers", CALL_FLAG_SWAPBUFFERS },
540 { "wglGetCurrentContext", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
541 { "wglGetCurrentDC", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
542 { "wglGetDefaultProcAddress", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
543 { "wglGetProcAddress", CALL_FLAG_NO_SIDE_EFFECTS | CALL_FLAG_VERBOSE },
544 { "wglSwapBuffers", CALL_FLAG_SWAPBUFFERS },
545 { "wglSwapLayerBuffers", CALL_FLAG_SWAPBUFFERS },
546 { "wglSwapMultipleBuffers", CALL_FLAG_SWAPBUFFERS },
547 // NOTE: New entries must be sorted alphabetically
552 * Lookup call flags by name.
555 Parser::lookupCallFlags(const char *name) {
556 return entryLookup(name, callFlagTable, defaultCallFlags);