Merge Vulkan CTS 1.0.2.2 into goog/oc-dev
[platform/upstream/VK-GL-CTS.git] / modules / egl / teglGetProcAddressTests.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  *
4  * Generated from Khronos EGL API description (egl.xml) revision 33315.
5  */
6
7 static const char* s_EGL14[] =
8 {
9         "eglBindAPI",
10         "eglBindTexImage",
11         "eglChooseConfig",
12         "eglCopyBuffers",
13         "eglCreateContext",
14         "eglCreatePbufferFromClientBuffer",
15         "eglCreatePbufferSurface",
16         "eglCreatePixmapSurface",
17         "eglCreateWindowSurface",
18         "eglDestroyContext",
19         "eglDestroySurface",
20         "eglGetConfigAttrib",
21         "eglGetConfigs",
22         "eglGetCurrentContext",
23         "eglGetCurrentDisplay",
24         "eglGetCurrentSurface",
25         "eglGetDisplay",
26         "eglGetError",
27         "eglGetProcAddress",
28         "eglInitialize",
29         "eglMakeCurrent",
30         "eglQueryAPI",
31         "eglQueryContext",
32         "eglQueryString",
33         "eglQuerySurface",
34         "eglReleaseTexImage",
35         "eglReleaseThread",
36         "eglSurfaceAttrib",
37         "eglSwapBuffers",
38         "eglSwapInterval",
39         "eglTerminate",
40         "eglWaitClient",
41         "eglWaitGL",
42         "eglWaitNative",
43 };
44
45 static const char* s_GLES10[] =
46 {
47         "glActiveTexture",
48         "glAlphaFunc",
49         "glAlphaFuncx",
50         "glBindBuffer",
51         "glBindTexture",
52         "glBlendFunc",
53         "glBufferData",
54         "glBufferSubData",
55         "glClear",
56         "glClearColor",
57         "glClearColorx",
58         "glClearDepthf",
59         "glClearDepthx",
60         "glClearStencil",
61         "glClientActiveTexture",
62         "glClipPlanef",
63         "glClipPlanex",
64         "glColor4f",
65         "glColor4ub",
66         "glColor4x",
67         "glColorMask",
68         "glColorPointer",
69         "glCompressedTexImage2D",
70         "glCompressedTexSubImage2D",
71         "glCopyTexImage2D",
72         "glCopyTexSubImage2D",
73         "glCullFace",
74         "glDeleteBuffers",
75         "glDeleteTextures",
76         "glDepthFunc",
77         "glDepthMask",
78         "glDepthRangef",
79         "glDepthRangex",
80         "glDisable",
81         "glDisableClientState",
82         "glDrawArrays",
83         "glDrawElements",
84         "glEnable",
85         "glEnableClientState",
86         "glFinish",
87         "glFlush",
88         "glFogf",
89         "glFogfv",
90         "glFogx",
91         "glFogxv",
92         "glFrontFace",
93         "glFrustumf",
94         "glFrustumx",
95         "glGenBuffers",
96         "glGenTextures",
97         "glGetBooleanv",
98         "glGetBufferParameteriv",
99         "glGetClipPlanef",
100         "glGetClipPlanex",
101         "glGetError",
102         "glGetFixedv",
103         "glGetFloatv",
104         "glGetIntegerv",
105         "glGetLightfv",
106         "glGetLightxv",
107         "glGetMaterialfv",
108         "glGetMaterialxv",
109         "glGetPointerv",
110         "glGetString",
111         "glGetTexEnvfv",
112         "glGetTexEnviv",
113         "glGetTexEnvxv",
114         "glGetTexParameterfv",
115         "glGetTexParameteriv",
116         "glGetTexParameterxv",
117         "glHint",
118         "glIsBuffer",
119         "glIsEnabled",
120         "glIsTexture",
121         "glLightModelf",
122         "glLightModelfv",
123         "glLightModelx",
124         "glLightModelxv",
125         "glLightf",
126         "glLightfv",
127         "glLightx",
128         "glLightxv",
129         "glLineWidth",
130         "glLineWidthx",
131         "glLoadIdentity",
132         "glLoadMatrixf",
133         "glLoadMatrixx",
134         "glLogicOp",
135         "glMaterialf",
136         "glMaterialfv",
137         "glMaterialx",
138         "glMaterialxv",
139         "glMatrixMode",
140         "glMultMatrixf",
141         "glMultMatrixx",
142         "glMultiTexCoord4f",
143         "glMultiTexCoord4x",
144         "glNormal3f",
145         "glNormal3x",
146         "glNormalPointer",
147         "glOrthof",
148         "glOrthox",
149         "glPixelStorei",
150         "glPointParameterf",
151         "glPointParameterfv",
152         "glPointParameterx",
153         "glPointParameterxv",
154         "glPointSize",
155         "glPointSizex",
156         "glPolygonOffset",
157         "glPolygonOffsetx",
158         "glPopMatrix",
159         "glPushMatrix",
160         "glReadPixels",
161         "glRotatef",
162         "glRotatex",
163         "glSampleCoverage",
164         "glSampleCoveragex",
165         "glScalef",
166         "glScalex",
167         "glScissor",
168         "glShadeModel",
169         "glStencilFunc",
170         "glStencilMask",
171         "glStencilOp",
172         "glTexCoordPointer",
173         "glTexEnvf",
174         "glTexEnvfv",
175         "glTexEnvi",
176         "glTexEnviv",
177         "glTexEnvx",
178         "glTexEnvxv",
179         "glTexImage2D",
180         "glTexParameterf",
181         "glTexParameterfv",
182         "glTexParameteri",
183         "glTexParameteriv",
184         "glTexParameterx",
185         "glTexParameterxv",
186         "glTexSubImage2D",
187         "glTranslatef",
188         "glTranslatex",
189         "glVertexPointer",
190         "glViewport",
191 };
192
193 static const char* s_GLES20[] =
194 {
195         "glActiveTexture",
196         "glAttachShader",
197         "glBindAttribLocation",
198         "glBindBuffer",
199         "glBindFramebuffer",
200         "glBindRenderbuffer",
201         "glBindTexture",
202         "glBlendColor",
203         "glBlendEquation",
204         "glBlendEquationSeparate",
205         "glBlendFunc",
206         "glBlendFuncSeparate",
207         "glBufferData",
208         "glBufferSubData",
209         "glCheckFramebufferStatus",
210         "glClear",
211         "glClearColor",
212         "glClearDepthf",
213         "glClearStencil",
214         "glColorMask",
215         "glCompileShader",
216         "glCompressedTexImage2D",
217         "glCompressedTexSubImage2D",
218         "glCopyTexImage2D",
219         "glCopyTexSubImage2D",
220         "glCreateProgram",
221         "glCreateShader",
222         "glCullFace",
223         "glDeleteBuffers",
224         "glDeleteFramebuffers",
225         "glDeleteProgram",
226         "glDeleteRenderbuffers",
227         "glDeleteShader",
228         "glDeleteTextures",
229         "glDepthFunc",
230         "glDepthMask",
231         "glDepthRangef",
232         "glDetachShader",
233         "glDisable",
234         "glDisableVertexAttribArray",
235         "glDrawArrays",
236         "glDrawElements",
237         "glEnable",
238         "glEnableVertexAttribArray",
239         "glFinish",
240         "glFlush",
241         "glFramebufferRenderbuffer",
242         "glFramebufferTexture2D",
243         "glFrontFace",
244         "glGenBuffers",
245         "glGenFramebuffers",
246         "glGenRenderbuffers",
247         "glGenTextures",
248         "glGenerateMipmap",
249         "glGetActiveAttrib",
250         "glGetActiveUniform",
251         "glGetAttachedShaders",
252         "glGetAttribLocation",
253         "glGetBooleanv",
254         "glGetBufferParameteriv",
255         "glGetError",
256         "glGetFloatv",
257         "glGetFramebufferAttachmentParameteriv",
258         "glGetIntegerv",
259         "glGetProgramInfoLog",
260         "glGetProgramiv",
261         "glGetRenderbufferParameteriv",
262         "glGetShaderInfoLog",
263         "glGetShaderPrecisionFormat",
264         "glGetShaderSource",
265         "glGetShaderiv",
266         "glGetString",
267         "glGetTexParameterfv",
268         "glGetTexParameteriv",
269         "glGetUniformLocation",
270         "glGetUniformfv",
271         "glGetUniformiv",
272         "glGetVertexAttribPointerv",
273         "glGetVertexAttribfv",
274         "glGetVertexAttribiv",
275         "glHint",
276         "glIsBuffer",
277         "glIsEnabled",
278         "glIsFramebuffer",
279         "glIsProgram",
280         "glIsRenderbuffer",
281         "glIsShader",
282         "glIsTexture",
283         "glLineWidth",
284         "glLinkProgram",
285         "glPixelStorei",
286         "glPolygonOffset",
287         "glReadPixels",
288         "glReleaseShaderCompiler",
289         "glRenderbufferStorage",
290         "glSampleCoverage",
291         "glScissor",
292         "glShaderBinary",
293         "glShaderSource",
294         "glStencilFunc",
295         "glStencilFuncSeparate",
296         "glStencilMask",
297         "glStencilMaskSeparate",
298         "glStencilOp",
299         "glStencilOpSeparate",
300         "glTexImage2D",
301         "glTexParameterf",
302         "glTexParameterfv",
303         "glTexParameteri",
304         "glTexParameteriv",
305         "glTexSubImage2D",
306         "glUniform1f",
307         "glUniform1fv",
308         "glUniform1i",
309         "glUniform1iv",
310         "glUniform2f",
311         "glUniform2fv",
312         "glUniform2i",
313         "glUniform2iv",
314         "glUniform3f",
315         "glUniform3fv",
316         "glUniform3i",
317         "glUniform3iv",
318         "glUniform4f",
319         "glUniform4fv",
320         "glUniform4i",
321         "glUniform4iv",
322         "glUniformMatrix2fv",
323         "glUniformMatrix3fv",
324         "glUniformMatrix4fv",
325         "glUseProgram",
326         "glValidateProgram",
327         "glVertexAttrib1f",
328         "glVertexAttrib1fv",
329         "glVertexAttrib2f",
330         "glVertexAttrib2fv",
331         "glVertexAttrib3f",
332         "glVertexAttrib3fv",
333         "glVertexAttrib4f",
334         "glVertexAttrib4fv",
335         "glVertexAttribPointer",
336         "glViewport",
337 };
338
339 static const char* s_GLES30[] =
340 {
341         "glBeginQuery",
342         "glBeginTransformFeedback",
343         "glBindBufferBase",
344         "glBindBufferRange",
345         "glBindSampler",
346         "glBindTransformFeedback",
347         "glBindVertexArray",
348         "glBlitFramebuffer",
349         "glClearBufferfi",
350         "glClearBufferfv",
351         "glClearBufferiv",
352         "glClearBufferuiv",
353         "glClientWaitSync",
354         "glCompressedTexImage3D",
355         "glCompressedTexSubImage3D",
356         "glCopyBufferSubData",
357         "glCopyTexSubImage3D",
358         "glDeleteQueries",
359         "glDeleteSamplers",
360         "glDeleteSync",
361         "glDeleteTransformFeedbacks",
362         "glDeleteVertexArrays",
363         "glDrawArraysInstanced",
364         "glDrawBuffers",
365         "glDrawElementsInstanced",
366         "glDrawRangeElements",
367         "glEndQuery",
368         "glEndTransformFeedback",
369         "glFenceSync",
370         "glFlushMappedBufferRange",
371         "glFramebufferTextureLayer",
372         "glGenQueries",
373         "glGenSamplers",
374         "glGenTransformFeedbacks",
375         "glGenVertexArrays",
376         "glGetActiveUniformBlockName",
377         "glGetActiveUniformBlockiv",
378         "glGetActiveUniformsiv",
379         "glGetBufferParameteri64v",
380         "glGetBufferPointerv",
381         "glGetFragDataLocation",
382         "glGetInteger64i_v",
383         "glGetInteger64v",
384         "glGetIntegeri_v",
385         "glGetInternalformativ",
386         "glGetProgramBinary",
387         "glGetQueryObjectuiv",
388         "glGetQueryiv",
389         "glGetSamplerParameterfv",
390         "glGetSamplerParameteriv",
391         "glGetStringi",
392         "glGetSynciv",
393         "glGetTransformFeedbackVarying",
394         "glGetUniformBlockIndex",
395         "glGetUniformIndices",
396         "glGetUniformuiv",
397         "glGetVertexAttribIiv",
398         "glGetVertexAttribIuiv",
399         "glInvalidateFramebuffer",
400         "glInvalidateSubFramebuffer",
401         "glIsQuery",
402         "glIsSampler",
403         "glIsSync",
404         "glIsTransformFeedback",
405         "glIsVertexArray",
406         "glMapBufferRange",
407         "glPauseTransformFeedback",
408         "glProgramBinary",
409         "glProgramParameteri",
410         "glReadBuffer",
411         "glRenderbufferStorageMultisample",
412         "glResumeTransformFeedback",
413         "glSamplerParameterf",
414         "glSamplerParameterfv",
415         "glSamplerParameteri",
416         "glSamplerParameteriv",
417         "glTexImage3D",
418         "glTexStorage2D",
419         "glTexStorage3D",
420         "glTexSubImage3D",
421         "glTransformFeedbackVaryings",
422         "glUniform1ui",
423         "glUniform1uiv",
424         "glUniform2ui",
425         "glUniform2uiv",
426         "glUniform3ui",
427         "glUniform3uiv",
428         "glUniform4ui",
429         "glUniform4uiv",
430         "glUniformBlockBinding",
431         "glUniformMatrix2x3fv",
432         "glUniformMatrix2x4fv",
433         "glUniformMatrix3x2fv",
434         "glUniformMatrix3x4fv",
435         "glUniformMatrix4x2fv",
436         "glUniformMatrix4x3fv",
437         "glUnmapBuffer",
438         "glVertexAttribDivisor",
439         "glVertexAttribI4i",
440         "glVertexAttribI4iv",
441         "glVertexAttribI4ui",
442         "glVertexAttribI4uiv",
443         "glVertexAttribIPointer",
444         "glWaitSync",
445 };
446
447 static const char* s_EGL_ANDROID_blob_cache[] =
448 {
449         "eglSetBlobCacheFuncsANDROID",
450 };
451
452 static const char* s_EGL_ANDROID_create_native_client_buffer[] =
453 {
454         "eglCreateNativeClientBufferANDROID",
455 };
456
457 static const char* s_EGL_ANDROID_native_fence_sync[] =
458 {
459         "eglDupNativeFenceFDANDROID",
460 };
461
462 static const char* s_EGL_ANDROID_presentation_time[] =
463 {
464         "eglPresentationTimeANDROID",
465 };
466
467 static const char* s_EGL_ANGLE_query_surface_pointer[] =
468 {
469         "eglQuerySurfacePointerANGLE",
470 };
471
472 static const char* s_EGL_EXT_device_base[] =
473 {
474         "eglQueryDeviceAttribEXT",
475         "eglQueryDeviceStringEXT",
476         "eglQueryDevicesEXT",
477         "eglQueryDisplayAttribEXT",
478 };
479
480 static const char* s_EGL_EXT_device_enumeration[] =
481 {
482         "eglQueryDevicesEXT",
483 };
484
485 static const char* s_EGL_EXT_device_query[] =
486 {
487         "eglQueryDeviceAttribEXT",
488         "eglQueryDeviceStringEXT",
489         "eglQueryDisplayAttribEXT",
490 };
491
492 static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] =
493 {
494         "eglQueryDmaBufFormatsEXT",
495         "eglQueryDmaBufModifiersEXT",
496 };
497
498 static const char* s_EGL_EXT_output_base[] =
499 {
500         "eglGetOutputLayersEXT",
501         "eglGetOutputPortsEXT",
502         "eglOutputLayerAttribEXT",
503         "eglOutputPortAttribEXT",
504         "eglQueryOutputLayerAttribEXT",
505         "eglQueryOutputLayerStringEXT",
506         "eglQueryOutputPortAttribEXT",
507         "eglQueryOutputPortStringEXT",
508 };
509
510 static const char* s_EGL_EXT_platform_base[] =
511 {
512         "eglCreatePlatformPixmapSurfaceEXT",
513         "eglCreatePlatformWindowSurfaceEXT",
514         "eglGetPlatformDisplayEXT",
515 };
516
517 static const char* s_EGL_EXT_stream_consumer_egloutput[] =
518 {
519         "eglStreamConsumerOutputEXT",
520 };
521
522 static const char* s_EGL_EXT_swap_buffers_with_damage[] =
523 {
524         "eglSwapBuffersWithDamageEXT",
525 };
526
527 static const char* s_EGL_HI_clientpixmap[] =
528 {
529         "eglCreatePixmapSurfaceHI",
530 };
531
532 static const char* s_EGL_KHR_cl_event2[] =
533 {
534         "eglCreateSync64KHR",
535 };
536
537 static const char* s_EGL_KHR_debug[] =
538 {
539         "eglDebugMessageControlKHR",
540         "eglLabelObjectKHR",
541         "eglQueryDebugKHR",
542 };
543
544 static const char* s_EGL_KHR_fence_sync[] =
545 {
546         "eglClientWaitSyncKHR",
547         "eglCreateSyncKHR",
548         "eglDestroySyncKHR",
549         "eglGetSyncAttribKHR",
550 };
551
552 static const char* s_EGL_KHR_image[] =
553 {
554         "eglCreateImageKHR",
555         "eglDestroyImageKHR",
556 };
557
558 static const char* s_EGL_KHR_image_base[] =
559 {
560         "eglCreateImageKHR",
561         "eglDestroyImageKHR",
562 };
563
564 static const char* s_EGL_KHR_lock_surface[] =
565 {
566         "eglLockSurfaceKHR",
567         "eglUnlockSurfaceKHR",
568 };
569
570 static const char* s_EGL_KHR_lock_surface3[] =
571 {
572         "eglLockSurfaceKHR",
573         "eglQuerySurface64KHR",
574         "eglUnlockSurfaceKHR",
575 };
576
577 static const char* s_EGL_KHR_partial_update[] =
578 {
579         "eglSetDamageRegionKHR",
580 };
581
582 static const char* s_EGL_KHR_reusable_sync[] =
583 {
584         "eglClientWaitSyncKHR",
585         "eglCreateSyncKHR",
586         "eglDestroySyncKHR",
587         "eglGetSyncAttribKHR",
588         "eglSignalSyncKHR",
589 };
590
591 static const char* s_EGL_KHR_stream[] =
592 {
593         "eglCreateStreamKHR",
594         "eglDestroyStreamKHR",
595         "eglQueryStreamKHR",
596         "eglQueryStreamu64KHR",
597         "eglStreamAttribKHR",
598 };
599
600 static const char* s_EGL_KHR_stream_attrib[] =
601 {
602         "eglCreateStreamAttribKHR",
603         "eglQueryStreamAttribKHR",
604         "eglSetStreamAttribKHR",
605         "eglStreamConsumerAcquireAttribKHR",
606         "eglStreamConsumerReleaseAttribKHR",
607 };
608
609 static const char* s_EGL_KHR_stream_consumer_gltexture[] =
610 {
611         "eglStreamConsumerAcquireKHR",
612         "eglStreamConsumerGLTextureExternalKHR",
613         "eglStreamConsumerReleaseKHR",
614 };
615
616 static const char* s_EGL_KHR_stream_cross_process_fd[] =
617 {
618         "eglCreateStreamFromFileDescriptorKHR",
619         "eglGetStreamFileDescriptorKHR",
620 };
621
622 static const char* s_EGL_KHR_stream_fifo[] =
623 {
624         "eglQueryStreamTimeKHR",
625 };
626
627 static const char* s_EGL_KHR_stream_producer_eglsurface[] =
628 {
629         "eglCreateStreamProducerSurfaceKHR",
630 };
631
632 static const char* s_EGL_KHR_swap_buffers_with_damage[] =
633 {
634         "eglSwapBuffersWithDamageKHR",
635 };
636
637 static const char* s_EGL_KHR_wait_sync[] =
638 {
639         "eglWaitSyncKHR",
640 };
641
642 static const char* s_EGL_MESA_drm_image[] =
643 {
644         "eglCreateDRMImageMESA",
645         "eglExportDRMImageMESA",
646 };
647
648 static const char* s_EGL_MESA_image_dma_buf_export[] =
649 {
650         "eglExportDMABUFImageMESA",
651         "eglExportDMABUFImageQueryMESA",
652 };
653
654 static const char* s_EGL_NOK_swap_region[] =
655 {
656         "eglSwapBuffersRegionNOK",
657 };
658
659 static const char* s_EGL_NOK_swap_region2[] =
660 {
661         "eglSwapBuffersRegion2NOK",
662 };
663
664 static const char* s_EGL_NV_native_query[] =
665 {
666         "eglQueryNativeDisplayNV",
667         "eglQueryNativePixmapNV",
668         "eglQueryNativeWindowNV",
669 };
670
671 static const char* s_EGL_NV_post_sub_buffer[] =
672 {
673         "eglPostSubBufferNV",
674 };
675
676 static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] =
677 {
678         "eglStreamConsumerGLTextureExternalAttribsNV",
679 };
680
681 static const char* s_EGL_NV_stream_metadata[] =
682 {
683         "eglQueryDisplayAttribNV",
684         "eglQueryStreamMetadataNV",
685         "eglSetStreamMetadataNV",
686 };
687
688 static const char* s_EGL_NV_stream_reset[] =
689 {
690         "eglResetStreamNV",
691 };
692
693 static const char* s_EGL_NV_stream_sync[] =
694 {
695         "eglCreateStreamSyncNV",
696 };
697
698 static const char* s_EGL_NV_sync[] =
699 {
700         "eglClientWaitSyncNV",
701         "eglCreateFenceSyncNV",
702         "eglDestroySyncNV",
703         "eglFenceNV",
704         "eglGetSyncAttribNV",
705         "eglSignalSyncNV",
706 };
707
708 static const char* s_EGL_NV_system_time[] =
709 {
710         "eglGetSystemTimeFrequencyNV",
711         "eglGetSystemTimeNV",
712 };
713
714 static const char* s_GL_APPLE_copy_texture_levels[] =
715 {
716         "glCopyTextureLevelsAPPLE",
717 };
718
719 static const char* s_GL_APPLE_framebuffer_multisample[] =
720 {
721         "glRenderbufferStorageMultisampleAPPLE",
722         "glResolveMultisampleFramebufferAPPLE",
723 };
724
725 static const char* s_GL_APPLE_sync[] =
726 {
727         "glClientWaitSyncAPPLE",
728         "glDeleteSyncAPPLE",
729         "glFenceSyncAPPLE",
730         "glGetInteger64vAPPLE",
731         "glGetSyncivAPPLE",
732         "glIsSyncAPPLE",
733         "glWaitSyncAPPLE",
734 };
735
736 static const char* s_GL_EXT_discard_framebuffer[] =
737 {
738         "glDiscardFramebufferEXT",
739 };
740
741 static const char* s_GL_EXT_map_buffer_range[] =
742 {
743         "glFlushMappedBufferRangeEXT",
744         "glMapBufferRangeEXT",
745 };
746
747 static const char* s_GL_EXT_multi_draw_arrays[] =
748 {
749         "glMultiDrawArraysEXT",
750         "glMultiDrawElementsEXT",
751 };
752
753 static const char* s_GL_EXT_multisampled_render_to_texture[] =
754 {
755         "glFramebufferTexture2DMultisampleEXT",
756         "glRenderbufferStorageMultisampleEXT",
757 };
758
759 static const char* s_GL_EXT_robustness[] =
760 {
761         "glGetGraphicsResetStatusEXT",
762         "glGetnUniformfvEXT",
763         "glGetnUniformivEXT",
764         "glReadnPixelsEXT",
765 };
766
767 static const char* s_GL_EXT_texture_storage[] =
768 {
769         "glTexStorage1DEXT",
770         "glTexStorage2DEXT",
771         "glTexStorage3DEXT",
772         "glTextureStorage1DEXT",
773         "glTextureStorage2DEXT",
774         "glTextureStorage3DEXT",
775 };
776
777 static const char* s_GL_IMG_multisampled_render_to_texture[] =
778 {
779         "glFramebufferTexture2DMultisampleIMG",
780         "glRenderbufferStorageMultisampleIMG",
781 };
782
783 static const char* s_GL_IMG_user_clip_plane[] =
784 {
785         "glClipPlanefIMG",
786         "glClipPlanexIMG",
787 };
788
789 static const char* s_GL_NV_fence[] =
790 {
791         "glDeleteFencesNV",
792         "glFinishFenceNV",
793         "glGenFencesNV",
794         "glGetFenceivNV",
795         "glIsFenceNV",
796         "glSetFenceNV",
797         "glTestFenceNV",
798 };
799
800 static const char* s_GL_OES_EGL_image[] =
801 {
802         "glEGLImageTargetRenderbufferStorageOES",
803         "glEGLImageTargetTexture2DOES",
804 };
805
806 static const char* s_GL_OES_blend_equation_separate[] =
807 {
808         "glBlendEquationSeparateOES",
809 };
810
811 static const char* s_GL_OES_blend_func_separate[] =
812 {
813         "glBlendFuncSeparateOES",
814 };
815
816 static const char* s_GL_OES_blend_subtract[] =
817 {
818         "glBlendEquationOES",
819 };
820
821 static const char* s_GL_OES_draw_texture[] =
822 {
823         "glDrawTexfOES",
824         "glDrawTexfvOES",
825         "glDrawTexiOES",
826         "glDrawTexivOES",
827         "glDrawTexsOES",
828         "glDrawTexsvOES",
829         "glDrawTexxOES",
830         "glDrawTexxvOES",
831 };
832
833 static const char* s_GL_OES_fixed_point[] =
834 {
835         "glAlphaFuncxOES",
836         "glClearColorxOES",
837         "glClearDepthxOES",
838         "glClipPlanexOES",
839         "glColor4xOES",
840         "glDepthRangexOES",
841         "glFogxOES",
842         "glFogxvOES",
843         "glFrustumxOES",
844         "glGetClipPlanexOES",
845         "glGetFixedvOES",
846         "glGetLightxvOES",
847         "glGetMaterialxvOES",
848         "glGetTexEnvxvOES",
849         "glGetTexParameterxvOES",
850         "glLightModelxOES",
851         "glLightModelxvOES",
852         "glLightxOES",
853         "glLightxvOES",
854         "glLineWidthxOES",
855         "glLoadMatrixxOES",
856         "glMaterialxOES",
857         "glMaterialxvOES",
858         "glMultMatrixxOES",
859         "glMultiTexCoord4xOES",
860         "glNormal3xOES",
861         "glOrthoxOES",
862         "glPointParameterxOES",
863         "glPointParameterxvOES",
864         "glPointSizexOES",
865         "glPolygonOffsetxOES",
866         "glRotatexOES",
867         "glSampleCoveragexOES",
868         "glScalexOES",
869         "glTexEnvxOES",
870         "glTexEnvxvOES",
871         "glTexParameterxOES",
872         "glTexParameterxvOES",
873         "glTranslatexOES",
874 };
875
876 static const char* s_GL_OES_framebuffer_object[] =
877 {
878         "glBindFramebufferOES",
879         "glBindRenderbufferOES",
880         "glCheckFramebufferStatusOES",
881         "glDeleteFramebuffersOES",
882         "glDeleteRenderbuffersOES",
883         "glFramebufferRenderbufferOES",
884         "glFramebufferTexture2DOES",
885         "glGenFramebuffersOES",
886         "glGenRenderbuffersOES",
887         "glGenerateMipmapOES",
888         "glGetFramebufferAttachmentParameterivOES",
889         "glGetRenderbufferParameterivOES",
890         "glIsFramebufferOES",
891         "glIsRenderbufferOES",
892         "glRenderbufferStorageOES",
893 };
894
895 static const char* s_GL_OES_mapbuffer[] =
896 {
897         "glGetBufferPointervOES",
898         "glMapBufferOES",
899         "glUnmapBufferOES",
900 };
901
902 static const char* s_GL_OES_matrix_palette[] =
903 {
904         "glCurrentPaletteMatrixOES",
905         "glLoadPaletteFromModelViewMatrixOES",
906         "glMatrixIndexPointerOES",
907         "glWeightPointerOES",
908 };
909
910 static const char* s_GL_OES_point_size_array[] =
911 {
912         "glPointSizePointerOES",
913 };
914
915 static const char* s_GL_OES_query_matrix[] =
916 {
917         "glQueryMatrixxOES",
918 };
919
920 static const char* s_GL_OES_single_precision[] =
921 {
922         "glClearDepthfOES",
923         "glClipPlanefOES",
924         "glDepthRangefOES",
925         "glFrustumfOES",
926         "glGetClipPlanefOES",
927         "glOrthofOES",
928 };
929
930 static const char* s_GL_OES_texture_cube_map[] =
931 {
932         "glGetTexGenfvOES",
933         "glGetTexGenivOES",
934         "glGetTexGenxvOES",
935         "glTexGenfOES",
936         "glTexGenfvOES",
937         "glTexGeniOES",
938         "glTexGenivOES",
939         "glTexGenxOES",
940         "glTexGenxvOES",
941 };
942
943 static const char* s_GL_OES_vertex_array_object[] =
944 {
945         "glBindVertexArrayOES",
946         "glDeleteVertexArraysOES",
947         "glGenVertexArraysOES",
948         "glIsVertexArrayOES",
949 };
950
951 static const char* s_GL_QCOM_driver_control[] =
952 {
953         "glDisableDriverControlQCOM",
954         "glEnableDriverControlQCOM",
955         "glGetDriverControlStringQCOM",
956         "glGetDriverControlsQCOM",
957 };
958
959 static const char* s_GL_QCOM_extended_get[] =
960 {
961         "glExtGetBufferPointervQCOM",
962         "glExtGetBuffersQCOM",
963         "glExtGetFramebuffersQCOM",
964         "glExtGetRenderbuffersQCOM",
965         "glExtGetTexLevelParameterivQCOM",
966         "glExtGetTexSubImageQCOM",
967         "glExtGetTexturesQCOM",
968         "glExtTexObjectStateOverrideiQCOM",
969 };
970
971 static const char* s_GL_QCOM_extended_get2[] =
972 {
973         "glExtGetProgramBinarySourceQCOM",
974         "glExtGetProgramsQCOM",
975         "glExtGetShadersQCOM",
976         "glExtIsProgramBinaryQCOM",
977 };
978
979 static const char* s_GL_QCOM_tiled_rendering[] =
980 {
981         "glEndTilingQCOM",
982         "glStartTilingQCOM",
983 };
984
985 static const char* s_GL_AMD_performance_monitor[] =
986 {
987         "glBeginPerfMonitorAMD",
988         "glDeletePerfMonitorsAMD",
989         "glEndPerfMonitorAMD",
990         "glGenPerfMonitorsAMD",
991         "glGetPerfMonitorCounterDataAMD",
992         "glGetPerfMonitorCounterInfoAMD",
993         "glGetPerfMonitorCounterStringAMD",
994         "glGetPerfMonitorCountersAMD",
995         "glGetPerfMonitorGroupStringAMD",
996         "glGetPerfMonitorGroupsAMD",
997         "glSelectPerfMonitorCountersAMD",
998 };
999
1000 static const char* s_GL_ANGLE_framebuffer_blit[] =
1001 {
1002         "glBlitFramebufferANGLE",
1003 };
1004
1005 static const char* s_GL_ANGLE_framebuffer_multisample[] =
1006 {
1007         "glRenderbufferStorageMultisampleANGLE",
1008 };
1009
1010 static const char* s_GL_ANGLE_instanced_arrays[] =
1011 {
1012         "glDrawArraysInstancedANGLE",
1013         "glDrawElementsInstancedANGLE",
1014         "glVertexAttribDivisorANGLE",
1015 };
1016
1017 static const char* s_GL_ANGLE_translated_shader_source[] =
1018 {
1019         "glGetTranslatedShaderSourceANGLE",
1020 };
1021
1022 static const char* s_GL_EXT_base_instance[] =
1023 {
1024         "glDrawArraysInstancedBaseInstanceEXT",
1025         "glDrawElementsInstancedBaseInstanceEXT",
1026         "glDrawElementsInstancedBaseVertexBaseInstanceEXT",
1027 };
1028
1029 static const char* s_GL_EXT_blend_func_extended[] =
1030 {
1031         "glBindFragDataLocationEXT",
1032         "glBindFragDataLocationIndexedEXT",
1033         "glGetFragDataIndexEXT",
1034         "glGetProgramResourceLocationIndexEXT",
1035 };
1036
1037 static const char* s_GL_EXT_buffer_storage[] =
1038 {
1039         "glBufferStorageEXT",
1040 };
1041
1042 static const char* s_GL_EXT_copy_image[] =
1043 {
1044         "glCopyImageSubDataEXT",
1045 };
1046
1047 static const char* s_GL_EXT_debug_label[] =
1048 {
1049         "glGetObjectLabelEXT",
1050         "glLabelObjectEXT",
1051 };
1052
1053 static const char* s_GL_EXT_debug_marker[] =
1054 {
1055         "glInsertEventMarkerEXT",
1056         "glPopGroupMarkerEXT",
1057         "glPushGroupMarkerEXT",
1058 };
1059
1060 static const char* s_GL_EXT_disjoint_timer_query[] =
1061 {
1062         "glBeginQueryEXT",
1063         "glDeleteQueriesEXT",
1064         "glEndQueryEXT",
1065         "glGenQueriesEXT",
1066         "glGetQueryObjecti64vEXT",
1067         "glGetQueryObjectivEXT",
1068         "glGetQueryObjectui64vEXT",
1069         "glGetQueryObjectuivEXT",
1070         "glGetQueryivEXT",
1071         "glIsQueryEXT",
1072         "glQueryCounterEXT",
1073 };
1074
1075 static const char* s_GL_EXT_draw_buffers[] =
1076 {
1077         "glDrawBuffersEXT",
1078 };
1079
1080 static const char* s_GL_EXT_draw_buffers_indexed[] =
1081 {
1082         "glBlendEquationSeparateiEXT",
1083         "glBlendEquationiEXT",
1084         "glBlendFuncSeparateiEXT",
1085         "glBlendFunciEXT",
1086         "glColorMaskiEXT",
1087         "glDisableiEXT",
1088         "glEnableiEXT",
1089         "glIsEnablediEXT",
1090 };
1091
1092 static const char* s_GL_EXT_draw_elements_base_vertex[] =
1093 {
1094         "glDrawElementsBaseVertexEXT",
1095         "glDrawElementsInstancedBaseVertexEXT",
1096         "glDrawRangeElementsBaseVertexEXT",
1097         "glMultiDrawElementsBaseVertexEXT",
1098 };
1099
1100 static const char* s_GL_EXT_draw_instanced[] =
1101 {
1102         "glDrawArraysInstancedEXT",
1103         "glDrawElementsInstancedEXT",
1104 };
1105
1106 static const char* s_GL_EXT_geometry_shader[] =
1107 {
1108         "glFramebufferTextureEXT",
1109 };
1110
1111 static const char* s_GL_EXT_instanced_arrays[] =
1112 {
1113         "glDrawArraysInstancedEXT",
1114         "glDrawElementsInstancedEXT",
1115         "glVertexAttribDivisorEXT",
1116 };
1117
1118 static const char* s_GL_EXT_multi_draw_indirect[] =
1119 {
1120         "glMultiDrawArraysIndirectEXT",
1121         "glMultiDrawElementsIndirectEXT",
1122 };
1123
1124 static const char* s_GL_EXT_multiview_draw_buffers[] =
1125 {
1126         "glDrawBuffersIndexedEXT",
1127         "glGetIntegeri_vEXT",
1128         "glReadBufferIndexedEXT",
1129 };
1130
1131 static const char* s_GL_EXT_occlusion_query_boolean[] =
1132 {
1133         "glBeginQueryEXT",
1134         "glDeleteQueriesEXT",
1135         "glEndQueryEXT",
1136         "glGenQueriesEXT",
1137         "glGetQueryObjectuivEXT",
1138         "glGetQueryivEXT",
1139         "glIsQueryEXT",
1140 };
1141
1142 static const char* s_GL_EXT_primitive_bounding_box[] =
1143 {
1144         "glPrimitiveBoundingBoxEXT",
1145 };
1146
1147 static const char* s_GL_EXT_raster_multisample[] =
1148 {
1149         "glRasterSamplesEXT",
1150 };
1151
1152 static const char* s_GL_EXT_separate_shader_objects[] =
1153 {
1154         "glActiveShaderProgramEXT",
1155         "glBindProgramPipelineEXT",
1156         "glCreateShaderProgramvEXT",
1157         "glDeleteProgramPipelinesEXT",
1158         "glGenProgramPipelinesEXT",
1159         "glGetProgramPipelineInfoLogEXT",
1160         "glGetProgramPipelineivEXT",
1161         "glIsProgramPipelineEXT",
1162         "glProgramParameteriEXT",
1163         "glProgramUniform1fEXT",
1164         "glProgramUniform1fvEXT",
1165         "glProgramUniform1iEXT",
1166         "glProgramUniform1ivEXT",
1167         "glProgramUniform1uiEXT",
1168         "glProgramUniform1uivEXT",
1169         "glProgramUniform2fEXT",
1170         "glProgramUniform2fvEXT",
1171         "glProgramUniform2iEXT",
1172         "glProgramUniform2ivEXT",
1173         "glProgramUniform2uiEXT",
1174         "glProgramUniform2uivEXT",
1175         "glProgramUniform3fEXT",
1176         "glProgramUniform3fvEXT",
1177         "glProgramUniform3iEXT",
1178         "glProgramUniform3ivEXT",
1179         "glProgramUniform3uiEXT",
1180         "glProgramUniform3uivEXT",
1181         "glProgramUniform4fEXT",
1182         "glProgramUniform4fvEXT",
1183         "glProgramUniform4iEXT",
1184         "glProgramUniform4ivEXT",
1185         "glProgramUniform4uiEXT",
1186         "glProgramUniform4uivEXT",
1187         "glProgramUniformMatrix2fvEXT",
1188         "glProgramUniformMatrix2x3fvEXT",
1189         "glProgramUniformMatrix2x4fvEXT",
1190         "glProgramUniformMatrix3fvEXT",
1191         "glProgramUniformMatrix3x2fvEXT",
1192         "glProgramUniformMatrix3x4fvEXT",
1193         "glProgramUniformMatrix4fvEXT",
1194         "glProgramUniformMatrix4x2fvEXT",
1195         "glProgramUniformMatrix4x3fvEXT",
1196         "glUseProgramStagesEXT",
1197         "glValidateProgramPipelineEXT",
1198 };
1199
1200 static const char* s_GL_EXT_sparse_texture[] =
1201 {
1202         "glTexPageCommitmentEXT",
1203 };
1204
1205 static const char* s_GL_EXT_tessellation_shader[] =
1206 {
1207         "glPatchParameteriEXT",
1208 };
1209
1210 static const char* s_GL_EXT_texture_border_clamp[] =
1211 {
1212         "glGetSamplerParameterIivEXT",
1213         "glGetSamplerParameterIuivEXT",
1214         "glGetTexParameterIivEXT",
1215         "glGetTexParameterIuivEXT",
1216         "glSamplerParameterIivEXT",
1217         "glSamplerParameterIuivEXT",
1218         "glTexParameterIivEXT",
1219         "glTexParameterIuivEXT",
1220 };
1221
1222 static const char* s_GL_EXT_texture_buffer[] =
1223 {
1224         "glTexBufferEXT",
1225         "glTexBufferRangeEXT",
1226 };
1227
1228 static const char* s_GL_EXT_texture_filter_minmax[] =
1229 {
1230         "glRasterSamplesEXT",
1231 };
1232
1233 static const char* s_GL_EXT_texture_view[] =
1234 {
1235         "glTextureViewEXT",
1236 };
1237
1238 static const char* s_GL_INTEL_framebuffer_CMAA[] =
1239 {
1240         "glApplyFramebufferAttachmentCMAAINTEL",
1241 };
1242
1243 static const char* s_GL_INTEL_performance_query[] =
1244 {
1245         "glBeginPerfQueryINTEL",
1246         "glCreatePerfQueryINTEL",
1247         "glDeletePerfQueryINTEL",
1248         "glEndPerfQueryINTEL",
1249         "glGetFirstPerfQueryIdINTEL",
1250         "glGetNextPerfQueryIdINTEL",
1251         "glGetPerfCounterInfoINTEL",
1252         "glGetPerfQueryDataINTEL",
1253         "glGetPerfQueryIdByNameINTEL",
1254         "glGetPerfQueryInfoINTEL",
1255 };
1256
1257 static const char* s_GL_KHR_blend_equation_advanced[] =
1258 {
1259         "glBlendBarrierKHR",
1260 };
1261
1262 static const char* s_GL_KHR_debug[] =
1263 {
1264         "glDebugMessageCallbackKHR",
1265         "glDebugMessageControlKHR",
1266         "glDebugMessageInsertKHR",
1267         "glGetDebugMessageLogKHR",
1268         "glGetObjectLabelKHR",
1269         "glGetObjectPtrLabelKHR",
1270         "glGetPointervKHR",
1271         "glObjectLabelKHR",
1272         "glObjectPtrLabelKHR",
1273         "glPopDebugGroupKHR",
1274         "glPushDebugGroupKHR",
1275 };
1276
1277 static const char* s_GL_KHR_robustness[] =
1278 {
1279         "glGetGraphicsResetStatusKHR",
1280         "glGetnUniformfvKHR",
1281         "glGetnUniformivKHR",
1282         "glGetnUniformuivKHR",
1283         "glReadnPixelsKHR",
1284 };
1285
1286 static const char* s_GL_NV_bindless_texture[] =
1287 {
1288         "glGetImageHandleNV",
1289         "glGetTextureHandleNV",
1290         "glGetTextureSamplerHandleNV",
1291         "glIsImageHandleResidentNV",
1292         "glIsTextureHandleResidentNV",
1293         "glMakeImageHandleNonResidentNV",
1294         "glMakeImageHandleResidentNV",
1295         "glMakeTextureHandleNonResidentNV",
1296         "glMakeTextureHandleResidentNV",
1297         "glProgramUniformHandleui64NV",
1298         "glProgramUniformHandleui64vNV",
1299         "glUniformHandleui64NV",
1300         "glUniformHandleui64vNV",
1301 };
1302
1303 static const char* s_GL_NV_blend_equation_advanced[] =
1304 {
1305         "glBlendBarrierNV",
1306         "glBlendParameteriNV",
1307 };
1308
1309 static const char* s_GL_NV_conditional_render[] =
1310 {
1311         "glBeginConditionalRenderNV",
1312         "glEndConditionalRenderNV",
1313 };
1314
1315 static const char* s_GL_NV_conservative_raster[] =
1316 {
1317         "glSubpixelPrecisionBiasNV",
1318 };
1319
1320 static const char* s_GL_NV_copy_buffer[] =
1321 {
1322         "glCopyBufferSubDataNV",
1323 };
1324
1325 static const char* s_GL_NV_coverage_sample[] =
1326 {
1327         "glCoverageMaskNV",
1328         "glCoverageOperationNV",
1329 };
1330
1331 static const char* s_GL_NV_draw_buffers[] =
1332 {
1333         "glDrawBuffersNV",
1334 };
1335
1336 static const char* s_GL_NV_draw_instanced[] =
1337 {
1338         "glDrawArraysInstancedNV",
1339         "glDrawElementsInstancedNV",
1340 };
1341
1342 static const char* s_GL_NV_fragment_coverage_to_color[] =
1343 {
1344         "glFragmentCoverageColorNV",
1345 };
1346
1347 static const char* s_GL_NV_framebuffer_blit[] =
1348 {
1349         "glBlitFramebufferNV",
1350 };
1351
1352 static const char* s_GL_NV_framebuffer_mixed_samples[] =
1353 {
1354         "glCoverageModulationNV",
1355         "glCoverageModulationTableNV",
1356         "glGetCoverageModulationTableNV",
1357         "glRasterSamplesEXT",
1358 };
1359
1360 static const char* s_GL_NV_framebuffer_multisample[] =
1361 {
1362         "glRenderbufferStorageMultisampleNV",
1363 };
1364
1365 static const char* s_GL_NV_instanced_arrays[] =
1366 {
1367         "glVertexAttribDivisorNV",
1368 };
1369
1370 static const char* s_GL_NV_internalformat_sample_query[] =
1371 {
1372         "glGetInternalformatSampleivNV",
1373 };
1374
1375 static const char* s_GL_NV_non_square_matrices[] =
1376 {
1377         "glUniformMatrix2x3fvNV",
1378         "glUniformMatrix2x4fvNV",
1379         "glUniformMatrix3x2fvNV",
1380         "glUniformMatrix3x4fvNV",
1381         "glUniformMatrix4x2fvNV",
1382         "glUniformMatrix4x3fvNV",
1383 };
1384
1385 static const char* s_GL_NV_path_rendering[] =
1386 {
1387         "glCopyPathNV",
1388         "glCoverFillPathInstancedNV",
1389         "glCoverFillPathNV",
1390         "glCoverStrokePathInstancedNV",
1391         "glCoverStrokePathNV",
1392         "glDeletePathsNV",
1393         "glGenPathsNV",
1394         "glGetPathCommandsNV",
1395         "glGetPathCoordsNV",
1396         "glGetPathDashArrayNV",
1397         "glGetPathLengthNV",
1398         "glGetPathMetricRangeNV",
1399         "glGetPathMetricsNV",
1400         "glGetPathParameterfvNV",
1401         "glGetPathParameterivNV",
1402         "glGetPathSpacingNV",
1403         "glGetProgramResourcefvNV",
1404         "glInterpolatePathsNV",
1405         "glIsPathNV",
1406         "glIsPointInFillPathNV",
1407         "glIsPointInStrokePathNV",
1408         "glMatrixLoad3x2fNV",
1409         "glMatrixLoad3x3fNV",
1410         "glMatrixLoadTranspose3x3fNV",
1411         "glMatrixMult3x2fNV",
1412         "glMatrixMult3x3fNV",
1413         "glMatrixMultTranspose3x3fNV",
1414         "glPathCommandsNV",
1415         "glPathCoordsNV",
1416         "glPathCoverDepthFuncNV",
1417         "glPathDashArrayNV",
1418         "glPathGlyphIndexArrayNV",
1419         "glPathGlyphIndexRangeNV",
1420         "glPathGlyphRangeNV",
1421         "glPathGlyphsNV",
1422         "glPathMemoryGlyphIndexArrayNV",
1423         "glPathParameterfNV",
1424         "glPathParameterfvNV",
1425         "glPathParameteriNV",
1426         "glPathParameterivNV",
1427         "glPathStencilDepthOffsetNV",
1428         "glPathStencilFuncNV",
1429         "glPathStringNV",
1430         "glPathSubCommandsNV",
1431         "glPathSubCoordsNV",
1432         "glPointAlongPathNV",
1433         "glProgramPathFragmentInputGenNV",
1434         "glStencilFillPathInstancedNV",
1435         "glStencilFillPathNV",
1436         "glStencilStrokePathInstancedNV",
1437         "glStencilStrokePathNV",
1438         "glStencilThenCoverFillPathInstancedNV",
1439         "glStencilThenCoverFillPathNV",
1440         "glStencilThenCoverStrokePathInstancedNV",
1441         "glStencilThenCoverStrokePathNV",
1442         "glTransformPathNV",
1443         "glWeightPathsNV",
1444 };
1445
1446 static const char* s_GL_NV_polygon_mode[] =
1447 {
1448         "glPolygonModeNV",
1449 };
1450
1451 static const char* s_GL_NV_read_buffer[] =
1452 {
1453         "glReadBufferNV",
1454 };
1455
1456 static const char* s_GL_NV_sample_locations[] =
1457 {
1458         "glFramebufferSampleLocationsfvNV",
1459         "glNamedFramebufferSampleLocationsfvNV",
1460         "glResolveDepthValuesNV",
1461 };
1462
1463 static const char* s_GL_NV_viewport_array[] =
1464 {
1465         "glDepthRangeArrayfvNV",
1466         "glDepthRangeIndexedfNV",
1467         "glDisableiNV",
1468         "glEnableiNV",
1469         "glGetFloati_vNV",
1470         "glIsEnablediNV",
1471         "glScissorArrayvNV",
1472         "glScissorIndexedNV",
1473         "glScissorIndexedvNV",
1474         "glViewportArrayvNV",
1475         "glViewportIndexedfNV",
1476         "glViewportIndexedfvNV",
1477 };
1478
1479 static const char* s_GL_OES_copy_image[] =
1480 {
1481         "glCopyImageSubDataOES",
1482 };
1483
1484 static const char* s_GL_OES_draw_buffers_indexed[] =
1485 {
1486         "glBlendEquationSeparateiOES",
1487         "glBlendEquationiOES",
1488         "glBlendFuncSeparateiOES",
1489         "glBlendFunciOES",
1490         "glColorMaskiOES",
1491         "glDisableiOES",
1492         "glEnableiOES",
1493         "glIsEnablediOES",
1494 };
1495
1496 static const char* s_GL_OES_draw_elements_base_vertex[] =
1497 {
1498         "glDrawElementsBaseVertexOES",
1499         "glDrawElementsInstancedBaseVertexOES",
1500         "glDrawRangeElementsBaseVertexOES",
1501         "glMultiDrawElementsBaseVertexOES",
1502 };
1503
1504 static const char* s_GL_OES_geometry_shader[] =
1505 {
1506         "glFramebufferTextureOES",
1507 };
1508
1509 static const char* s_GL_OES_get_program_binary[] =
1510 {
1511         "glGetProgramBinaryOES",
1512         "glProgramBinaryOES",
1513 };
1514
1515 static const char* s_GL_OES_primitive_bounding_box[] =
1516 {
1517         "glPrimitiveBoundingBoxOES",
1518 };
1519
1520 static const char* s_GL_OES_sample_shading[] =
1521 {
1522         "glMinSampleShadingOES",
1523 };
1524
1525 static const char* s_GL_OES_tessellation_shader[] =
1526 {
1527         "glPatchParameteriOES",
1528 };
1529
1530 static const char* s_GL_OES_texture_3D[] =
1531 {
1532         "glCompressedTexImage3DOES",
1533         "glCompressedTexSubImage3DOES",
1534         "glCopyTexSubImage3DOES",
1535         "glFramebufferTexture3DOES",
1536         "glTexImage3DOES",
1537         "glTexSubImage3DOES",
1538 };
1539
1540 static const char* s_GL_OES_texture_border_clamp[] =
1541 {
1542         "glGetSamplerParameterIivOES",
1543         "glGetSamplerParameterIuivOES",
1544         "glGetTexParameterIivOES",
1545         "glGetTexParameterIuivOES",
1546         "glSamplerParameterIivOES",
1547         "glSamplerParameterIuivOES",
1548         "glTexParameterIivOES",
1549         "glTexParameterIuivOES",
1550 };
1551
1552 static const char* s_GL_OES_texture_buffer[] =
1553 {
1554         "glTexBufferOES",
1555         "glTexBufferRangeOES",
1556 };
1557
1558 static const char* s_GL_OES_texture_storage_multisample_2d_array[] =
1559 {
1560         "glTexStorage3DMultisampleOES",
1561 };
1562
1563 static const char* s_GL_OES_texture_view[] =
1564 {
1565         "glTextureViewOES",
1566 };
1567
1568 static const char* s_GL_OVR_multiview[] =
1569 {
1570         "glFramebufferTextureMultiviewOVR",
1571 };
1572
1573 static const char* s_GL_QCOM_alpha_test[] =
1574 {
1575         "glAlphaFuncQCOM",
1576 };
1577
1578 static const struct
1579 {
1580         const char*                     name;
1581         const int                       numFunctions;
1582         const char* const*      functions;
1583 } s_extensions[] =
1584 {
1585         { "EGL_ANDROID_blob_cache",                                                     DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache),                                           s_EGL_ANDROID_blob_cache                                                },
1586         { "EGL_ANDROID_create_native_client_buffer",            DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer),          s_EGL_ANDROID_create_native_client_buffer               },
1587         { "EGL_ANDROID_native_fence_sync",                                      DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync),                            s_EGL_ANDROID_native_fence_sync                                 },
1588         { "EGL_ANDROID_presentation_time",                                      DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time),                            s_EGL_ANDROID_presentation_time                                 },
1589         { "EGL_ANGLE_query_surface_pointer",                            DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer),                          s_EGL_ANGLE_query_surface_pointer                               },
1590         { "EGL_EXT_device_base",                                                        DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base),                                                      s_EGL_EXT_device_base                                                   },
1591         { "EGL_EXT_device_enumeration",                                         DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration),                                       s_EGL_EXT_device_enumeration                                    },
1592         { "EGL_EXT_device_query",                                                       DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query),                                                     s_EGL_EXT_device_query                                                  },
1593         { "EGL_EXT_image_dma_buf_import_modifiers",                     DE_LENGTH_OF_ARRAY(s_EGL_EXT_image_dma_buf_import_modifiers),           s_EGL_EXT_image_dma_buf_import_modifiers                },
1594         { "EGL_EXT_output_base",                                                        DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base),                                                      s_EGL_EXT_output_base                                                   },
1595         { "EGL_EXT_platform_base",                                                      DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base),                                            s_EGL_EXT_platform_base                                                 },
1596         { "EGL_EXT_stream_consumer_egloutput",                          DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput),                        s_EGL_EXT_stream_consumer_egloutput                             },
1597         { "EGL_EXT_swap_buffers_with_damage",                           DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage),                         s_EGL_EXT_swap_buffers_with_damage                              },
1598         { "EGL_HI_clientpixmap",                                                        DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap),                                                      s_EGL_HI_clientpixmap                                                   },
1599         { "EGL_KHR_cl_event2",                                                          DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2),                                                        s_EGL_KHR_cl_event2                                                             },
1600         { "EGL_KHR_debug",                                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug),                                                            s_EGL_KHR_debug                                                                 },
1601         { "EGL_KHR_fence_sync",                                                         DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync),                                                       s_EGL_KHR_fence_sync                                                    },
1602         { "EGL_KHR_image",                                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_image),                                                            s_EGL_KHR_image                                                                 },
1603         { "EGL_KHR_image_base",                                                         DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base),                                                       s_EGL_KHR_image_base                                                    },
1604         { "EGL_KHR_lock_surface",                                                       DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface),                                                     s_EGL_KHR_lock_surface                                                  },
1605         { "EGL_KHR_lock_surface3",                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3),                                            s_EGL_KHR_lock_surface3                                                 },
1606         { "EGL_KHR_partial_update",                                                     DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update),                                           s_EGL_KHR_partial_update                                                },
1607         { "EGL_KHR_reusable_sync",                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync),                                            s_EGL_KHR_reusable_sync                                                 },
1608         { "EGL_KHR_stream",                                                                     DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream),                                                           s_EGL_KHR_stream                                                                },
1609         { "EGL_KHR_stream_attrib",                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib),                                            s_EGL_KHR_stream_attrib                                                 },
1610         { "EGL_KHR_stream_consumer_gltexture",                          DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture),                        s_EGL_KHR_stream_consumer_gltexture                             },
1611         { "EGL_KHR_stream_cross_process_fd",                            DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd),                          s_EGL_KHR_stream_cross_process_fd                               },
1612         { "EGL_KHR_stream_fifo",                                                        DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo),                                                      s_EGL_KHR_stream_fifo                                                   },
1613         { "EGL_KHR_stream_producer_eglsurface",                         DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface),                       s_EGL_KHR_stream_producer_eglsurface                    },
1614         { "EGL_KHR_swap_buffers_with_damage",                           DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage),                         s_EGL_KHR_swap_buffers_with_damage                              },
1615         { "EGL_KHR_wait_sync",                                                          DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync),                                                        s_EGL_KHR_wait_sync                                                             },
1616         { "EGL_MESA_drm_image",                                                         DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image),                                                       s_EGL_MESA_drm_image                                                    },
1617         { "EGL_MESA_image_dma_buf_export",                                      DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export),                            s_EGL_MESA_image_dma_buf_export                                 },
1618         { "EGL_NOK_swap_region",                                                        DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region),                                                      s_EGL_NOK_swap_region                                                   },
1619         { "EGL_NOK_swap_region2",                                                       DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2),                                                     s_EGL_NOK_swap_region2                                                  },
1620         { "EGL_NV_native_query",                                                        DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query),                                                      s_EGL_NV_native_query                                                   },
1621         { "EGL_NV_post_sub_buffer",                                                     DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer),                                           s_EGL_NV_post_sub_buffer                                                },
1622         { "EGL_NV_stream_consumer_gltexture_yuv",                       DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv),                     s_EGL_NV_stream_consumer_gltexture_yuv                  },
1623         { "EGL_NV_stream_metadata",                                                     DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata),                                           s_EGL_NV_stream_metadata                                                },
1624         { "EGL_NV_stream_reset",                                                        DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset),                                                      s_EGL_NV_stream_reset                                                   },
1625         { "EGL_NV_stream_sync",                                                         DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync),                                                       s_EGL_NV_stream_sync                                                    },
1626         { "EGL_NV_sync",                                                                        DE_LENGTH_OF_ARRAY(s_EGL_NV_sync),                                                                      s_EGL_NV_sync                                                                   },
1627         { "EGL_NV_system_time",                                                         DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time),                                                       s_EGL_NV_system_time                                                    },
1628         { "GL_APPLE_copy_texture_levels",                                       DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels),                                     s_GL_APPLE_copy_texture_levels                                  },
1629         { "GL_APPLE_framebuffer_multisample",                           DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample),                         s_GL_APPLE_framebuffer_multisample                              },
1630         { "GL_APPLE_sync",                                                                      DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync),                                                            s_GL_APPLE_sync                                                                 },
1631         { "GL_EXT_discard_framebuffer",                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer),                                       s_GL_EXT_discard_framebuffer                                    },
1632         { "GL_EXT_map_buffer_range",                                            DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range),                                          s_GL_EXT_map_buffer_range                                               },
1633         { "GL_EXT_multi_draw_arrays",                                           DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays),                                         s_GL_EXT_multi_draw_arrays                                              },
1634         { "GL_EXT_multisampled_render_to_texture",                      DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture),            s_GL_EXT_multisampled_render_to_texture                 },
1635         { "GL_EXT_robustness",                                                          DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness),                                                        s_GL_EXT_robustness                                                             },
1636         { "GL_EXT_texture_storage",                                                     DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage),                                           s_GL_EXT_texture_storage                                                },
1637         { "GL_IMG_multisampled_render_to_texture",                      DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture),            s_GL_IMG_multisampled_render_to_texture                 },
1638         { "GL_IMG_user_clip_plane",                                                     DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane),                                           s_GL_IMG_user_clip_plane                                                },
1639         { "GL_NV_fence",                                                                        DE_LENGTH_OF_ARRAY(s_GL_NV_fence),                                                                      s_GL_NV_fence                                                                   },
1640         { "GL_OES_EGL_image",                                                           DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image),                                                         s_GL_OES_EGL_image                                                              },
1641         { "GL_OES_blend_equation_separate",                                     DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate),                           s_GL_OES_blend_equation_separate                                },
1642         { "GL_OES_blend_func_separate",                                         DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate),                                       s_GL_OES_blend_func_separate                                    },
1643         { "GL_OES_blend_subtract",                                                      DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract),                                            s_GL_OES_blend_subtract                                                 },
1644         { "GL_OES_draw_texture",                                                        DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture),                                                      s_GL_OES_draw_texture                                                   },
1645         { "GL_OES_fixed_point",                                                         DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point),                                                       s_GL_OES_fixed_point                                                    },
1646         { "GL_OES_framebuffer_object",                                          DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object),                                        s_GL_OES_framebuffer_object                                             },
1647         { "GL_OES_mapbuffer",                                                           DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer),                                                         s_GL_OES_mapbuffer                                                              },
1648         { "GL_OES_matrix_palette",                                                      DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette),                                            s_GL_OES_matrix_palette                                                 },
1649         { "GL_OES_point_size_array",                                            DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array),                                          s_GL_OES_point_size_array                                               },
1650         { "GL_OES_query_matrix",                                                        DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix),                                                      s_GL_OES_query_matrix                                                   },
1651         { "GL_OES_single_precision",                                            DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision),                                          s_GL_OES_single_precision                                               },
1652         { "GL_OES_texture_cube_map",                                            DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map),                                          s_GL_OES_texture_cube_map                                               },
1653         { "GL_OES_vertex_array_object",                                         DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object),                                       s_GL_OES_vertex_array_object                                    },
1654         { "GL_QCOM_driver_control",                                                     DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control),                                           s_GL_QCOM_driver_control                                                },
1655         { "GL_QCOM_extended_get",                                                       DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get),                                                     s_GL_QCOM_extended_get                                                  },
1656         { "GL_QCOM_extended_get2",                                                      DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2),                                            s_GL_QCOM_extended_get2                                                 },
1657         { "GL_QCOM_tiled_rendering",                                            DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering),                                          s_GL_QCOM_tiled_rendering                                               },
1658         { "GL_AMD_performance_monitor",                                         DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor),                                       s_GL_AMD_performance_monitor                                    },
1659         { "GL_ANGLE_framebuffer_blit",                                          DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit),                                        s_GL_ANGLE_framebuffer_blit                                             },
1660         { "GL_ANGLE_framebuffer_multisample",                           DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample),                         s_GL_ANGLE_framebuffer_multisample                              },
1661         { "GL_ANGLE_instanced_arrays",                                          DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays),                                        s_GL_ANGLE_instanced_arrays                                             },
1662         { "GL_ANGLE_translated_shader_source",                          DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source),                        s_GL_ANGLE_translated_shader_source                             },
1663         { "GL_EXT_base_instance",                                                       DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance),                                                     s_GL_EXT_base_instance                                                  },
1664         { "GL_EXT_blend_func_extended",                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended),                                       s_GL_EXT_blend_func_extended                                    },
1665         { "GL_EXT_buffer_storage",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage),                                            s_GL_EXT_buffer_storage                                                 },
1666         { "GL_EXT_copy_image",                                                          DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image),                                                        s_GL_EXT_copy_image                                                             },
1667         { "GL_EXT_debug_label",                                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label),                                                       s_GL_EXT_debug_label                                                    },
1668         { "GL_EXT_debug_marker",                                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker),                                                      s_GL_EXT_debug_marker                                                   },
1669         { "GL_EXT_disjoint_timer_query",                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query),                                      s_GL_EXT_disjoint_timer_query                                   },
1670         { "GL_EXT_draw_buffers",                                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers),                                                      s_GL_EXT_draw_buffers                                                   },
1671         { "GL_EXT_draw_buffers_indexed",                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed),                                      s_GL_EXT_draw_buffers_indexed                                   },
1672         { "GL_EXT_draw_elements_base_vertex",                           DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex),                         s_GL_EXT_draw_elements_base_vertex                              },
1673         { "GL_EXT_draw_instanced",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced),                                            s_GL_EXT_draw_instanced                                                 },
1674         { "GL_EXT_geometry_shader",                                                     DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader),                                           s_GL_EXT_geometry_shader                                                },
1675         { "GL_EXT_instanced_arrays",                                            DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays),                                          s_GL_EXT_instanced_arrays                                               },
1676         { "GL_EXT_multi_draw_indirect",                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect),                                       s_GL_EXT_multi_draw_indirect                                    },
1677         { "GL_EXT_multiview_draw_buffers",                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers),                            s_GL_EXT_multiview_draw_buffers                                 },
1678         { "GL_EXT_occlusion_query_boolean",                                     DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean),                           s_GL_EXT_occlusion_query_boolean                                },
1679         { "GL_EXT_primitive_bounding_box",                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),                            s_GL_EXT_primitive_bounding_box                                 },
1680         { "GL_EXT_raster_multisample",                                          DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample),                                        s_GL_EXT_raster_multisample                                             },
1681         { "GL_EXT_separate_shader_objects",                                     DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects),                           s_GL_EXT_separate_shader_objects                                },
1682         { "GL_EXT_sparse_texture",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture),                                            s_GL_EXT_sparse_texture                                                 },
1683         { "GL_EXT_tessellation_shader",                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader),                                       s_GL_EXT_tessellation_shader                                    },
1684         { "GL_EXT_texture_border_clamp",                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp),                                      s_GL_EXT_texture_border_clamp                                   },
1685         { "GL_EXT_texture_buffer",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer),                                            s_GL_EXT_texture_buffer                                                 },
1686         { "GL_EXT_texture_filter_minmax",                                       DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_filter_minmax),                                     s_GL_EXT_texture_filter_minmax                                  },
1687         { "GL_EXT_texture_view",                                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view),                                                      s_GL_EXT_texture_view                                                   },
1688         { "GL_INTEL_framebuffer_CMAA",                                          DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA),                                        s_GL_INTEL_framebuffer_CMAA                                             },
1689         { "GL_INTEL_performance_query",                                         DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query),                                       s_GL_INTEL_performance_query                                    },
1690         { "GL_KHR_blend_equation_advanced",                                     DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced),                           s_GL_KHR_blend_equation_advanced                                },
1691         { "GL_KHR_debug",                                                                       DE_LENGTH_OF_ARRAY(s_GL_KHR_debug),                                                                     s_GL_KHR_debug                                                                  },
1692         { "GL_KHR_robustness",                                                          DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness),                                                        s_GL_KHR_robustness                                                             },
1693         { "GL_NV_bindless_texture",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture),                                           s_GL_NV_bindless_texture                                                },
1694         { "GL_NV_blend_equation_advanced",                                      DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced),                            s_GL_NV_blend_equation_advanced                                 },
1695         { "GL_NV_conditional_render",                                           DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render),                                         s_GL_NV_conditional_render                                              },
1696         { "GL_NV_conservative_raster",                                          DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster),                                        s_GL_NV_conservative_raster                                             },
1697         { "GL_NV_copy_buffer",                                                          DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer),                                                        s_GL_NV_copy_buffer                                                             },
1698         { "GL_NV_coverage_sample",                                                      DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample),                                            s_GL_NV_coverage_sample                                                 },
1699         { "GL_NV_draw_buffers",                                                         DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers),                                                       s_GL_NV_draw_buffers                                                    },
1700         { "GL_NV_draw_instanced",                                                       DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced),                                                     s_GL_NV_draw_instanced                                                  },
1701         { "GL_NV_fragment_coverage_to_color",                           DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color),                         s_GL_NV_fragment_coverage_to_color                              },
1702         { "GL_NV_framebuffer_blit",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit),                                           s_GL_NV_framebuffer_blit                                                },
1703         { "GL_NV_framebuffer_mixed_samples",                            DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples),                          s_GL_NV_framebuffer_mixed_samples                               },
1704         { "GL_NV_framebuffer_multisample",                                      DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample),                            s_GL_NV_framebuffer_multisample                                 },
1705         { "GL_NV_instanced_arrays",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays),                                           s_GL_NV_instanced_arrays                                                },
1706         { "GL_NV_internalformat_sample_query",                          DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query),                        s_GL_NV_internalformat_sample_query                             },
1707         { "GL_NV_non_square_matrices",                                          DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices),                                        s_GL_NV_non_square_matrices                                             },
1708         { "GL_NV_path_rendering",                                                       DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering),                                                     s_GL_NV_path_rendering                                                  },
1709         { "GL_NV_polygon_mode",                                                         DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode),                                                       s_GL_NV_polygon_mode                                                    },
1710         { "GL_NV_read_buffer",                                                          DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer),                                                        s_GL_NV_read_buffer                                                             },
1711         { "GL_NV_sample_locations",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations),                                           s_GL_NV_sample_locations                                                },
1712         { "GL_NV_viewport_array",                                                       DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array),                                                     s_GL_NV_viewport_array                                                  },
1713         { "GL_OES_copy_image",                                                          DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image),                                                        s_GL_OES_copy_image                                                             },
1714         { "GL_OES_draw_buffers_indexed",                                        DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed),                                      s_GL_OES_draw_buffers_indexed                                   },
1715         { "GL_OES_draw_elements_base_vertex",                           DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex),                         s_GL_OES_draw_elements_base_vertex                              },
1716         { "GL_OES_geometry_shader",                                                     DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader),                                           s_GL_OES_geometry_shader                                                },
1717         { "GL_OES_get_program_binary",                                          DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary),                                        s_GL_OES_get_program_binary                                             },
1718         { "GL_OES_primitive_bounding_box",                                      DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box),                            s_GL_OES_primitive_bounding_box                                 },
1719         { "GL_OES_sample_shading",                                                      DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading),                                            s_GL_OES_sample_shading                                                 },
1720         { "GL_OES_tessellation_shader",                                         DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader),                                       s_GL_OES_tessellation_shader                                    },
1721         { "GL_OES_texture_3D",                                                          DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D),                                                        s_GL_OES_texture_3D                                                             },
1722         { "GL_OES_texture_border_clamp",                                        DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp),                                      s_GL_OES_texture_border_clamp                                   },
1723         { "GL_OES_texture_buffer",                                                      DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer),                                            s_GL_OES_texture_buffer                                                 },
1724         { "GL_OES_texture_storage_multisample_2d_array",        DE_LENGTH_OF_ARRAY(s_GL_OES_texture_storage_multisample_2d_array),      s_GL_OES_texture_storage_multisample_2d_array   },
1725         { "GL_OES_texture_view",                                                        DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view),                                                      s_GL_OES_texture_view                                                   },
1726         { "GL_OVR_multiview",                                                           DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview),                                                         s_GL_OVR_multiview                                                              },
1727         { "GL_QCOM_alpha_test",                                                         DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),                                                       s_GL_QCOM_alpha_test                                                    },
1728 };