• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // validationESEXT_autogen.h:
9 //   Validation functions for the OpenGL ES extension entry points.
10 
11 #ifndef LIBANGLE_VALIDATION_ESEXT_AUTOGEN_H_
12 #define LIBANGLE_VALIDATION_ESEXT_AUTOGEN_H_
13 
14 #include "common/PackedEnums.h"
15 #include "common/entry_points_enum_autogen.h"
16 
17 namespace gl
18 {
19 class Context;
20 class PrivateState;
21 class ErrorSet;
22 
23 // GL_AMD_performance_monitor
24 bool ValidateBeginPerfMonitorAMD(const Context *context,
25                                  angle::EntryPoint entryPoint,
26                                  GLuint monitor);
27 bool ValidateDeletePerfMonitorsAMD(const Context *context,
28                                    angle::EntryPoint entryPoint,
29                                    GLsizei n,
30                                    const GLuint *monitors);
31 bool ValidateEndPerfMonitorAMD(const Context *context,
32                                angle::EntryPoint entryPoint,
33                                GLuint monitor);
34 bool ValidateGenPerfMonitorsAMD(const Context *context,
35                                 angle::EntryPoint entryPoint,
36                                 GLsizei n,
37                                 const GLuint *monitors);
38 bool ValidateGetPerfMonitorCounterDataAMD(const Context *context,
39                                           angle::EntryPoint entryPoint,
40                                           GLuint monitor,
41                                           GLenum pname,
42                                           GLsizei dataSize,
43                                           const GLuint *data,
44                                           const GLint *bytesWritten);
45 bool ValidateGetPerfMonitorCounterInfoAMD(const Context *context,
46                                           angle::EntryPoint entryPoint,
47                                           GLuint group,
48                                           GLuint counter,
49                                           GLenum pname,
50                                           const void *data);
51 bool ValidateGetPerfMonitorCounterStringAMD(const Context *context,
52                                             angle::EntryPoint entryPoint,
53                                             GLuint group,
54                                             GLuint counter,
55                                             GLsizei bufSize,
56                                             const GLsizei *length,
57                                             const GLchar *counterString);
58 bool ValidateGetPerfMonitorCountersAMD(const Context *context,
59                                        angle::EntryPoint entryPoint,
60                                        GLuint group,
61                                        const GLint *numCounters,
62                                        const GLint *maxActiveCounters,
63                                        GLsizei counterSize,
64                                        const GLuint *counters);
65 bool ValidateGetPerfMonitorGroupStringAMD(const Context *context,
66                                           angle::EntryPoint entryPoint,
67                                           GLuint group,
68                                           GLsizei bufSize,
69                                           const GLsizei *length,
70                                           const GLchar *groupString);
71 bool ValidateGetPerfMonitorGroupsAMD(const Context *context,
72                                      angle::EntryPoint entryPoint,
73                                      const GLint *numGroups,
74                                      GLsizei groupsSize,
75                                      const GLuint *groups);
76 bool ValidateSelectPerfMonitorCountersAMD(const Context *context,
77                                           angle::EntryPoint entryPoint,
78                                           GLuint monitor,
79                                           GLboolean enable,
80                                           GLuint group,
81                                           GLint numCounters,
82                                           const GLuint *counterList);
83 
84 // GL_ANDROID_extension_pack_es31a
85 
86 // GL_ANGLE_base_vertex_base_instance
87 bool ValidateDrawArraysInstancedBaseInstanceANGLE(const Context *context,
88                                                   angle::EntryPoint entryPoint,
89                                                   PrimitiveMode modePacked,
90                                                   GLint first,
91                                                   GLsizei count,
92                                                   GLsizei instanceCount,
93                                                   GLuint baseInstance);
94 bool ValidateDrawElementsInstancedBaseVertexBaseInstanceANGLE(const Context *context,
95                                                               angle::EntryPoint entryPoint,
96                                                               PrimitiveMode modePacked,
97                                                               GLsizei count,
98                                                               DrawElementsType typePacked,
99                                                               const void *indices,
100                                                               GLsizei instanceCount,
101                                                               GLint baseVertex,
102                                                               GLuint baseInstance);
103 bool ValidateMultiDrawArraysInstancedBaseInstanceANGLE(const Context *context,
104                                                        angle::EntryPoint entryPoint,
105                                                        PrimitiveMode modePacked,
106                                                        const GLint *firsts,
107                                                        const GLsizei *counts,
108                                                        const GLsizei *instanceCounts,
109                                                        const GLuint *baseInstances,
110                                                        GLsizei drawcount);
111 bool ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(const Context *context,
112                                                                    angle::EntryPoint entryPoint,
113                                                                    PrimitiveMode modePacked,
114                                                                    const GLsizei *counts,
115                                                                    DrawElementsType typePacked,
116                                                                    const void *const *indices,
117                                                                    const GLsizei *instanceCounts,
118                                                                    const GLint *baseVertices,
119                                                                    const GLuint *baseInstances,
120                                                                    GLsizei drawcount);
121 
122 // GL_ANGLE_clip_cull_distance
123 
124 // GL_ANGLE_copy_texture_3d
125 bool ValidateCopyTexture3DANGLE(const Context *context,
126                                 angle::EntryPoint entryPoint,
127                                 TextureID sourceIdPacked,
128                                 GLint sourceLevel,
129                                 TextureTarget destTargetPacked,
130                                 TextureID destIdPacked,
131                                 GLint destLevel,
132                                 GLint internalFormat,
133                                 GLenum destType,
134                                 GLboolean unpackFlipY,
135                                 GLboolean unpackPremultiplyAlpha,
136                                 GLboolean unpackUnmultiplyAlpha);
137 bool ValidateCopySubTexture3DANGLE(const Context *context,
138                                    angle::EntryPoint entryPoint,
139                                    TextureID sourceIdPacked,
140                                    GLint sourceLevel,
141                                    TextureTarget destTargetPacked,
142                                    TextureID destIdPacked,
143                                    GLint destLevel,
144                                    GLint xoffset,
145                                    GLint yoffset,
146                                    GLint zoffset,
147                                    GLint x,
148                                    GLint y,
149                                    GLint z,
150                                    GLint width,
151                                    GLint height,
152                                    GLint depth,
153                                    GLboolean unpackFlipY,
154                                    GLboolean unpackPremultiplyAlpha,
155                                    GLboolean unpackUnmultiplyAlpha);
156 
157 // GL_ANGLE_depth_texture
158 
159 // GL_ANGLE_framebuffer_blit
160 bool ValidateBlitFramebufferANGLE(const Context *context,
161                                   angle::EntryPoint entryPoint,
162                                   GLint srcX0,
163                                   GLint srcY0,
164                                   GLint srcX1,
165                                   GLint srcY1,
166                                   GLint dstX0,
167                                   GLint dstY0,
168                                   GLint dstX1,
169                                   GLint dstY1,
170                                   GLbitfield mask,
171                                   GLenum filter);
172 
173 // GL_ANGLE_framebuffer_multisample
174 bool ValidateRenderbufferStorageMultisampleANGLE(const Context *context,
175                                                  angle::EntryPoint entryPoint,
176                                                  GLenum target,
177                                                  GLsizei samples,
178                                                  GLenum internalformat,
179                                                  GLsizei width,
180                                                  GLsizei height);
181 
182 // GL_ANGLE_get_image
183 bool ValidateGetTexImageANGLE(const Context *context,
184                               angle::EntryPoint entryPoint,
185                               TextureTarget targetPacked,
186                               GLint level,
187                               GLenum format,
188                               GLenum type,
189                               const void *pixels);
190 bool ValidateGetCompressedTexImageANGLE(const Context *context,
191                                         angle::EntryPoint entryPoint,
192                                         TextureTarget targetPacked,
193                                         GLint level,
194                                         const void *pixels);
195 bool ValidateGetRenderbufferImageANGLE(const Context *context,
196                                        angle::EntryPoint entryPoint,
197                                        GLenum target,
198                                        GLenum format,
199                                        GLenum type,
200                                        const void *pixels);
201 
202 // GL_ANGLE_get_tex_level_parameter
203 bool ValidateGetTexLevelParameterivANGLE(const Context *context,
204                                          angle::EntryPoint entryPoint,
205                                          TextureTarget targetPacked,
206                                          GLint level,
207                                          GLenum pname,
208                                          const GLint *params);
209 bool ValidateGetTexLevelParameterfvANGLE(const Context *context,
210                                          angle::EntryPoint entryPoint,
211                                          TextureTarget targetPacked,
212                                          GLint level,
213                                          GLenum pname,
214                                          const GLfloat *params);
215 
216 // GL_ANGLE_instanced_arrays
217 bool ValidateDrawArraysInstancedANGLE(const Context *context,
218                                       angle::EntryPoint entryPoint,
219                                       PrimitiveMode modePacked,
220                                       GLint first,
221                                       GLsizei count,
222                                       GLsizei primcount);
223 bool ValidateDrawElementsInstancedANGLE(const Context *context,
224                                         angle::EntryPoint entryPoint,
225                                         PrimitiveMode modePacked,
226                                         GLsizei count,
227                                         DrawElementsType typePacked,
228                                         const void *indices,
229                                         GLsizei primcount);
230 bool ValidateVertexAttribDivisorANGLE(const Context *context,
231                                       angle::EntryPoint entryPoint,
232                                       GLuint index,
233                                       GLuint divisor);
234 
235 // GL_ANGLE_logic_op
236 bool ValidateLogicOpANGLE(const PrivateState &state,
237                           ErrorSet *errors,
238                           angle::EntryPoint entryPoint,
239                           LogicalOperation opcodePacked);
240 
241 // GL_ANGLE_memory_object_flags
242 bool ValidateTexStorageMemFlags2DANGLE(const Context *context,
243                                        angle::EntryPoint entryPoint,
244                                        TextureType targetPacked,
245                                        GLsizei levels,
246                                        GLenum internalFormat,
247                                        GLsizei width,
248                                        GLsizei height,
249                                        MemoryObjectID memoryPacked,
250                                        GLuint64 offset,
251                                        GLbitfield createFlags,
252                                        GLbitfield usageFlags,
253                                        const void *imageCreateInfoPNext);
254 bool ValidateTexStorageMemFlags2DMultisampleANGLE(const Context *context,
255                                                   angle::EntryPoint entryPoint,
256                                                   TextureType targetPacked,
257                                                   GLsizei samples,
258                                                   GLenum internalFormat,
259                                                   GLsizei width,
260                                                   GLsizei height,
261                                                   GLboolean fixedSampleLocations,
262                                                   MemoryObjectID memoryPacked,
263                                                   GLuint64 offset,
264                                                   GLbitfield createFlags,
265                                                   GLbitfield usageFlags,
266                                                   const void *imageCreateInfoPNext);
267 bool ValidateTexStorageMemFlags3DANGLE(const Context *context,
268                                        angle::EntryPoint entryPoint,
269                                        TextureType targetPacked,
270                                        GLsizei levels,
271                                        GLenum internalFormat,
272                                        GLsizei width,
273                                        GLsizei height,
274                                        GLsizei depth,
275                                        MemoryObjectID memoryPacked,
276                                        GLuint64 offset,
277                                        GLbitfield createFlags,
278                                        GLbitfield usageFlags,
279                                        const void *imageCreateInfoPNext);
280 bool ValidateTexStorageMemFlags3DMultisampleANGLE(const Context *context,
281                                                   angle::EntryPoint entryPoint,
282                                                   TextureType targetPacked,
283                                                   GLsizei samples,
284                                                   GLenum internalFormat,
285                                                   GLsizei width,
286                                                   GLsizei height,
287                                                   GLsizei depth,
288                                                   GLboolean fixedSampleLocations,
289                                                   MemoryObjectID memoryPacked,
290                                                   GLuint64 offset,
291                                                   GLbitfield createFlags,
292                                                   GLbitfield usageFlags,
293                                                   const void *imageCreateInfoPNext);
294 
295 // GL_ANGLE_memory_object_fuchsia
296 bool ValidateImportMemoryZirconHandleANGLE(const Context *context,
297                                            angle::EntryPoint entryPoint,
298                                            MemoryObjectID memoryPacked,
299                                            GLuint64 size,
300                                            HandleType handleTypePacked,
301                                            GLuint handle);
302 
303 // GL_ANGLE_multi_draw
304 bool ValidateMultiDrawArraysANGLE(const Context *context,
305                                   angle::EntryPoint entryPoint,
306                                   PrimitiveMode modePacked,
307                                   const GLint *firsts,
308                                   const GLsizei *counts,
309                                   GLsizei drawcount);
310 bool ValidateMultiDrawArraysInstancedANGLE(const Context *context,
311                                            angle::EntryPoint entryPoint,
312                                            PrimitiveMode modePacked,
313                                            const GLint *firsts,
314                                            const GLsizei *counts,
315                                            const GLsizei *instanceCounts,
316                                            GLsizei drawcount);
317 bool ValidateMultiDrawElementsANGLE(const Context *context,
318                                     angle::EntryPoint entryPoint,
319                                     PrimitiveMode modePacked,
320                                     const GLsizei *counts,
321                                     DrawElementsType typePacked,
322                                     const void *const *indices,
323                                     GLsizei drawcount);
324 bool ValidateMultiDrawElementsInstancedANGLE(const Context *context,
325                                              angle::EntryPoint entryPoint,
326                                              PrimitiveMode modePacked,
327                                              const GLsizei *counts,
328                                              DrawElementsType typePacked,
329                                              const void *const *indices,
330                                              const GLsizei *instanceCounts,
331                                              GLsizei drawcount);
332 
333 // GL_ANGLE_pack_reverse_row_order
334 
335 // GL_ANGLE_polygon_mode
336 bool ValidatePolygonModeANGLE(const PrivateState &state,
337                               ErrorSet *errors,
338                               angle::EntryPoint entryPoint,
339                               GLenum face,
340                               PolygonMode modePacked);
341 
342 // GL_ANGLE_program_binary
343 
344 // GL_ANGLE_provoking_vertex
345 bool ValidateProvokingVertexANGLE(const PrivateState &state,
346                                   ErrorSet *errors,
347                                   angle::EntryPoint entryPoint,
348                                   ProvokingVertexConvention provokeModePacked);
349 
350 // GL_ANGLE_renderability_validation
351 
352 // GL_ANGLE_request_extension
353 bool ValidateRequestExtensionANGLE(const Context *context,
354                                    angle::EntryPoint entryPoint,
355                                    const GLchar *name);
356 bool ValidateDisableExtensionANGLE(const Context *context,
357                                    angle::EntryPoint entryPoint,
358                                    const GLchar *name);
359 
360 // GL_ANGLE_robust_client_memory
361 bool ValidateGetBooleanvRobustANGLE(const Context *context,
362                                     angle::EntryPoint entryPoint,
363                                     GLenum pname,
364                                     GLsizei bufSize,
365                                     const GLsizei *length,
366                                     const GLboolean *params);
367 bool ValidateGetBufferParameterivRobustANGLE(const Context *context,
368                                              angle::EntryPoint entryPoint,
369                                              BufferBinding targetPacked,
370                                              GLenum pname,
371                                              GLsizei bufSize,
372                                              const GLsizei *length,
373                                              const GLint *params);
374 bool ValidateGetFloatvRobustANGLE(const Context *context,
375                                   angle::EntryPoint entryPoint,
376                                   GLenum pname,
377                                   GLsizei bufSize,
378                                   const GLsizei *length,
379                                   const GLfloat *params);
380 bool ValidateGetFramebufferAttachmentParameterivRobustANGLE(const Context *context,
381                                                             angle::EntryPoint entryPoint,
382                                                             GLenum target,
383                                                             GLenum attachment,
384                                                             GLenum pname,
385                                                             GLsizei bufSize,
386                                                             const GLsizei *length,
387                                                             const GLint *params);
388 bool ValidateGetIntegervRobustANGLE(const Context *context,
389                                     angle::EntryPoint entryPoint,
390                                     GLenum pname,
391                                     GLsizei bufSize,
392                                     const GLsizei *length,
393                                     const GLint *data);
394 bool ValidateGetProgramivRobustANGLE(const Context *context,
395                                      angle::EntryPoint entryPoint,
396                                      ShaderProgramID programPacked,
397                                      GLenum pname,
398                                      GLsizei bufSize,
399                                      const GLsizei *length,
400                                      const GLint *params);
401 bool ValidateGetRenderbufferParameterivRobustANGLE(const Context *context,
402                                                    angle::EntryPoint entryPoint,
403                                                    GLenum target,
404                                                    GLenum pname,
405                                                    GLsizei bufSize,
406                                                    const GLsizei *length,
407                                                    const GLint *params);
408 bool ValidateGetShaderivRobustANGLE(const Context *context,
409                                     angle::EntryPoint entryPoint,
410                                     ShaderProgramID shaderPacked,
411                                     GLenum pname,
412                                     GLsizei bufSize,
413                                     const GLsizei *length,
414                                     const GLint *params);
415 bool ValidateGetTexParameterfvRobustANGLE(const Context *context,
416                                           angle::EntryPoint entryPoint,
417                                           TextureType targetPacked,
418                                           GLenum pname,
419                                           GLsizei bufSize,
420                                           const GLsizei *length,
421                                           const GLfloat *params);
422 bool ValidateGetTexParameterivRobustANGLE(const Context *context,
423                                           angle::EntryPoint entryPoint,
424                                           TextureType targetPacked,
425                                           GLenum pname,
426                                           GLsizei bufSize,
427                                           const GLsizei *length,
428                                           const GLint *params);
429 bool ValidateGetUniformfvRobustANGLE(const Context *context,
430                                      angle::EntryPoint entryPoint,
431                                      ShaderProgramID programPacked,
432                                      UniformLocation locationPacked,
433                                      GLsizei bufSize,
434                                      const GLsizei *length,
435                                      const GLfloat *params);
436 bool ValidateGetUniformivRobustANGLE(const Context *context,
437                                      angle::EntryPoint entryPoint,
438                                      ShaderProgramID programPacked,
439                                      UniformLocation locationPacked,
440                                      GLsizei bufSize,
441                                      const GLsizei *length,
442                                      const GLint *params);
443 bool ValidateGetVertexAttribfvRobustANGLE(const Context *context,
444                                           angle::EntryPoint entryPoint,
445                                           GLuint index,
446                                           GLenum pname,
447                                           GLsizei bufSize,
448                                           const GLsizei *length,
449                                           const GLfloat *params);
450 bool ValidateGetVertexAttribivRobustANGLE(const Context *context,
451                                           angle::EntryPoint entryPoint,
452                                           GLuint index,
453                                           GLenum pname,
454                                           GLsizei bufSize,
455                                           const GLsizei *length,
456                                           const GLint *params);
457 bool ValidateGetVertexAttribPointervRobustANGLE(const Context *context,
458                                                 angle::EntryPoint entryPoint,
459                                                 GLuint index,
460                                                 GLenum pname,
461                                                 GLsizei bufSize,
462                                                 const GLsizei *length,
463                                                 void *const *pointer);
464 bool ValidateReadPixelsRobustANGLE(const Context *context,
465                                    angle::EntryPoint entryPoint,
466                                    GLint x,
467                                    GLint y,
468                                    GLsizei width,
469                                    GLsizei height,
470                                    GLenum format,
471                                    GLenum type,
472                                    GLsizei bufSize,
473                                    const GLsizei *length,
474                                    const GLsizei *columns,
475                                    const GLsizei *rows,
476                                    const void *pixels);
477 bool ValidateTexImage2DRobustANGLE(const Context *context,
478                                    angle::EntryPoint entryPoint,
479                                    TextureTarget targetPacked,
480                                    GLint level,
481                                    GLint internalformat,
482                                    GLsizei width,
483                                    GLsizei height,
484                                    GLint border,
485                                    GLenum format,
486                                    GLenum type,
487                                    GLsizei bufSize,
488                                    const void *pixels);
489 bool ValidateTexParameterfvRobustANGLE(const Context *context,
490                                        angle::EntryPoint entryPoint,
491                                        TextureType targetPacked,
492                                        GLenum pname,
493                                        GLsizei bufSize,
494                                        const GLfloat *params);
495 bool ValidateTexParameterivRobustANGLE(const Context *context,
496                                        angle::EntryPoint entryPoint,
497                                        TextureType targetPacked,
498                                        GLenum pname,
499                                        GLsizei bufSize,
500                                        const GLint *params);
501 bool ValidateTexSubImage2DRobustANGLE(const Context *context,
502                                       angle::EntryPoint entryPoint,
503                                       TextureTarget targetPacked,
504                                       GLint level,
505                                       GLint xoffset,
506                                       GLint yoffset,
507                                       GLsizei width,
508                                       GLsizei height,
509                                       GLenum format,
510                                       GLenum type,
511                                       GLsizei bufSize,
512                                       const void *pixels);
513 bool ValidateTexImage3DRobustANGLE(const Context *context,
514                                    angle::EntryPoint entryPoint,
515                                    TextureTarget targetPacked,
516                                    GLint level,
517                                    GLint internalformat,
518                                    GLsizei width,
519                                    GLsizei height,
520                                    GLsizei depth,
521                                    GLint border,
522                                    GLenum format,
523                                    GLenum type,
524                                    GLsizei bufSize,
525                                    const void *pixels);
526 bool ValidateTexSubImage3DRobustANGLE(const Context *context,
527                                       angle::EntryPoint entryPoint,
528                                       TextureTarget targetPacked,
529                                       GLint level,
530                                       GLint xoffset,
531                                       GLint yoffset,
532                                       GLint zoffset,
533                                       GLsizei width,
534                                       GLsizei height,
535                                       GLsizei depth,
536                                       GLenum format,
537                                       GLenum type,
538                                       GLsizei bufSize,
539                                       const void *pixels);
540 bool ValidateCompressedTexImage2DRobustANGLE(const Context *context,
541                                              angle::EntryPoint entryPoint,
542                                              TextureTarget targetPacked,
543                                              GLint level,
544                                              GLenum internalformat,
545                                              GLsizei width,
546                                              GLsizei height,
547                                              GLint border,
548                                              GLsizei imageSize,
549                                              GLsizei dataSize,
550                                              const void *data);
551 bool ValidateCompressedTexSubImage2DRobustANGLE(const Context *context,
552                                                 angle::EntryPoint entryPoint,
553                                                 TextureTarget targetPacked,
554                                                 GLint level,
555                                                 GLsizei xoffset,
556                                                 GLsizei yoffset,
557                                                 GLsizei width,
558                                                 GLsizei height,
559                                                 GLenum format,
560                                                 GLsizei imageSize,
561                                                 GLsizei dataSize,
562                                                 const void *data);
563 bool ValidateCompressedTexImage3DRobustANGLE(const Context *context,
564                                              angle::EntryPoint entryPoint,
565                                              TextureTarget targetPacked,
566                                              GLint level,
567                                              GLenum internalformat,
568                                              GLsizei width,
569                                              GLsizei height,
570                                              GLsizei depth,
571                                              GLint border,
572                                              GLsizei imageSize,
573                                              GLsizei dataSize,
574                                              const void *data);
575 bool ValidateCompressedTexSubImage3DRobustANGLE(const Context *context,
576                                                 angle::EntryPoint entryPoint,
577                                                 TextureTarget targetPacked,
578                                                 GLint level,
579                                                 GLint xoffset,
580                                                 GLint yoffset,
581                                                 GLint zoffset,
582                                                 GLsizei width,
583                                                 GLsizei height,
584                                                 GLsizei depth,
585                                                 GLenum format,
586                                                 GLsizei imageSize,
587                                                 GLsizei dataSize,
588                                                 const void *data);
589 bool ValidateGetQueryivRobustANGLE(const Context *context,
590                                    angle::EntryPoint entryPoint,
591                                    QueryType targetPacked,
592                                    GLenum pname,
593                                    GLsizei bufSize,
594                                    const GLsizei *length,
595                                    const GLint *params);
596 bool ValidateGetQueryObjectuivRobustANGLE(const Context *context,
597                                           angle::EntryPoint entryPoint,
598                                           QueryID idPacked,
599                                           GLenum pname,
600                                           GLsizei bufSize,
601                                           const GLsizei *length,
602                                           const GLuint *params);
603 bool ValidateGetBufferPointervRobustANGLE(const Context *context,
604                                           angle::EntryPoint entryPoint,
605                                           BufferBinding targetPacked,
606                                           GLenum pname,
607                                           GLsizei bufSize,
608                                           const GLsizei *length,
609                                           void *const *params);
610 bool ValidateGetIntegeri_vRobustANGLE(const Context *context,
611                                       angle::EntryPoint entryPoint,
612                                       GLenum target,
613                                       GLuint index,
614                                       GLsizei bufSize,
615                                       const GLsizei *length,
616                                       const GLint *data);
617 bool ValidateGetInternalformativRobustANGLE(const Context *context,
618                                             angle::EntryPoint entryPoint,
619                                             GLenum target,
620                                             GLenum internalformat,
621                                             GLenum pname,
622                                             GLsizei bufSize,
623                                             const GLsizei *length,
624                                             const GLint *params);
625 bool ValidateGetVertexAttribIivRobustANGLE(const Context *context,
626                                            angle::EntryPoint entryPoint,
627                                            GLuint index,
628                                            GLenum pname,
629                                            GLsizei bufSize,
630                                            const GLsizei *length,
631                                            const GLint *params);
632 bool ValidateGetVertexAttribIuivRobustANGLE(const Context *context,
633                                             angle::EntryPoint entryPoint,
634                                             GLuint index,
635                                             GLenum pname,
636                                             GLsizei bufSize,
637                                             const GLsizei *length,
638                                             const GLuint *params);
639 bool ValidateGetUniformuivRobustANGLE(const Context *context,
640                                       angle::EntryPoint entryPoint,
641                                       ShaderProgramID programPacked,
642                                       UniformLocation locationPacked,
643                                       GLsizei bufSize,
644                                       const GLsizei *length,
645                                       const GLuint *params);
646 bool ValidateGetActiveUniformBlockivRobustANGLE(const Context *context,
647                                                 angle::EntryPoint entryPoint,
648                                                 ShaderProgramID programPacked,
649                                                 UniformBlockIndex uniformBlockIndexPacked,
650                                                 GLenum pname,
651                                                 GLsizei bufSize,
652                                                 const GLsizei *length,
653                                                 const GLint *params);
654 bool ValidateGetInteger64vRobustANGLE(const Context *context,
655                                       angle::EntryPoint entryPoint,
656                                       GLenum pname,
657                                       GLsizei bufSize,
658                                       const GLsizei *length,
659                                       const GLint64 *data);
660 bool ValidateGetInteger64i_vRobustANGLE(const Context *context,
661                                         angle::EntryPoint entryPoint,
662                                         GLenum target,
663                                         GLuint index,
664                                         GLsizei bufSize,
665                                         const GLsizei *length,
666                                         const GLint64 *data);
667 bool ValidateGetBufferParameteri64vRobustANGLE(const Context *context,
668                                                angle::EntryPoint entryPoint,
669                                                BufferBinding targetPacked,
670                                                GLenum pname,
671                                                GLsizei bufSize,
672                                                const GLsizei *length,
673                                                const GLint64 *params);
674 bool ValidateSamplerParameterivRobustANGLE(const Context *context,
675                                            angle::EntryPoint entryPoint,
676                                            SamplerID samplerPacked,
677                                            GLuint pname,
678                                            GLsizei bufSize,
679                                            const GLint *param);
680 bool ValidateSamplerParameterfvRobustANGLE(const Context *context,
681                                            angle::EntryPoint entryPoint,
682                                            SamplerID samplerPacked,
683                                            GLenum pname,
684                                            GLsizei bufSize,
685                                            const GLfloat *param);
686 bool ValidateGetSamplerParameterivRobustANGLE(const Context *context,
687                                               angle::EntryPoint entryPoint,
688                                               SamplerID samplerPacked,
689                                               GLenum pname,
690                                               GLsizei bufSize,
691                                               const GLsizei *length,
692                                               const GLint *params);
693 bool ValidateGetSamplerParameterfvRobustANGLE(const Context *context,
694                                               angle::EntryPoint entryPoint,
695                                               SamplerID samplerPacked,
696                                               GLenum pname,
697                                               GLsizei bufSize,
698                                               const GLsizei *length,
699                                               const GLfloat *params);
700 bool ValidateGetFramebufferParameterivRobustANGLE(const Context *context,
701                                                   angle::EntryPoint entryPoint,
702                                                   GLenum target,
703                                                   GLenum pname,
704                                                   GLsizei bufSize,
705                                                   const GLsizei *length,
706                                                   const GLint *params);
707 bool ValidateGetProgramInterfaceivRobustANGLE(const Context *context,
708                                               angle::EntryPoint entryPoint,
709                                               ShaderProgramID programPacked,
710                                               GLenum programInterface,
711                                               GLenum pname,
712                                               GLsizei bufSize,
713                                               const GLsizei *length,
714                                               const GLint *params);
715 bool ValidateGetBooleani_vRobustANGLE(const Context *context,
716                                       angle::EntryPoint entryPoint,
717                                       GLenum target,
718                                       GLuint index,
719                                       GLsizei bufSize,
720                                       const GLsizei *length,
721                                       const GLboolean *data);
722 bool ValidateGetMultisamplefvRobustANGLE(const Context *context,
723                                          angle::EntryPoint entryPoint,
724                                          GLenum pname,
725                                          GLuint index,
726                                          GLsizei bufSize,
727                                          const GLsizei *length,
728                                          const GLfloat *val);
729 bool ValidateGetTexLevelParameterivRobustANGLE(const Context *context,
730                                                angle::EntryPoint entryPoint,
731                                                TextureTarget targetPacked,
732                                                GLint level,
733                                                GLenum pname,
734                                                GLsizei bufSize,
735                                                const GLsizei *length,
736                                                const GLint *params);
737 bool ValidateGetTexLevelParameterfvRobustANGLE(const Context *context,
738                                                angle::EntryPoint entryPoint,
739                                                TextureTarget targetPacked,
740                                                GLint level,
741                                                GLenum pname,
742                                                GLsizei bufSize,
743                                                const GLsizei *length,
744                                                const GLfloat *params);
745 bool ValidateGetPointervRobustANGLERobustANGLE(const Context *context,
746                                                angle::EntryPoint entryPoint,
747                                                GLenum pname,
748                                                GLsizei bufSize,
749                                                const GLsizei *length,
750                                                void *const *params);
751 bool ValidateReadnPixelsRobustANGLE(const Context *context,
752                                     angle::EntryPoint entryPoint,
753                                     GLint x,
754                                     GLint y,
755                                     GLsizei width,
756                                     GLsizei height,
757                                     GLenum format,
758                                     GLenum type,
759                                     GLsizei bufSize,
760                                     const GLsizei *length,
761                                     const GLsizei *columns,
762                                     const GLsizei *rows,
763                                     const void *data);
764 bool ValidateGetnUniformfvRobustANGLE(const Context *context,
765                                       angle::EntryPoint entryPoint,
766                                       ShaderProgramID programPacked,
767                                       UniformLocation locationPacked,
768                                       GLsizei bufSize,
769                                       const GLsizei *length,
770                                       const GLfloat *params);
771 bool ValidateGetnUniformivRobustANGLE(const Context *context,
772                                       angle::EntryPoint entryPoint,
773                                       ShaderProgramID programPacked,
774                                       UniformLocation locationPacked,
775                                       GLsizei bufSize,
776                                       const GLsizei *length,
777                                       const GLint *params);
778 bool ValidateGetnUniformuivRobustANGLE(const Context *context,
779                                        angle::EntryPoint entryPoint,
780                                        ShaderProgramID programPacked,
781                                        UniformLocation locationPacked,
782                                        GLsizei bufSize,
783                                        const GLsizei *length,
784                                        const GLuint *params);
785 bool ValidateTexParameterIivRobustANGLE(const Context *context,
786                                         angle::EntryPoint entryPoint,
787                                         TextureType targetPacked,
788                                         GLenum pname,
789                                         GLsizei bufSize,
790                                         const GLint *params);
791 bool ValidateTexParameterIuivRobustANGLE(const Context *context,
792                                          angle::EntryPoint entryPoint,
793                                          TextureType targetPacked,
794                                          GLenum pname,
795                                          GLsizei bufSize,
796                                          const GLuint *params);
797 bool ValidateGetTexParameterIivRobustANGLE(const Context *context,
798                                            angle::EntryPoint entryPoint,
799                                            TextureType targetPacked,
800                                            GLenum pname,
801                                            GLsizei bufSize,
802                                            const GLsizei *length,
803                                            const GLint *params);
804 bool ValidateGetTexParameterIuivRobustANGLE(const Context *context,
805                                             angle::EntryPoint entryPoint,
806                                             TextureType targetPacked,
807                                             GLenum pname,
808                                             GLsizei bufSize,
809                                             const GLsizei *length,
810                                             const GLuint *params);
811 bool ValidateSamplerParameterIivRobustANGLE(const Context *context,
812                                             angle::EntryPoint entryPoint,
813                                             SamplerID samplerPacked,
814                                             GLenum pname,
815                                             GLsizei bufSize,
816                                             const GLint *param);
817 bool ValidateSamplerParameterIuivRobustANGLE(const Context *context,
818                                              angle::EntryPoint entryPoint,
819                                              SamplerID samplerPacked,
820                                              GLenum pname,
821                                              GLsizei bufSize,
822                                              const GLuint *param);
823 bool ValidateGetSamplerParameterIivRobustANGLE(const Context *context,
824                                                angle::EntryPoint entryPoint,
825                                                SamplerID samplerPacked,
826                                                GLenum pname,
827                                                GLsizei bufSize,
828                                                const GLsizei *length,
829                                                const GLint *params);
830 bool ValidateGetSamplerParameterIuivRobustANGLE(const Context *context,
831                                                 angle::EntryPoint entryPoint,
832                                                 SamplerID samplerPacked,
833                                                 GLenum pname,
834                                                 GLsizei bufSize,
835                                                 const GLsizei *length,
836                                                 const GLuint *params);
837 bool ValidateGetQueryObjectivRobustANGLE(const Context *context,
838                                          angle::EntryPoint entryPoint,
839                                          QueryID idPacked,
840                                          GLenum pname,
841                                          GLsizei bufSize,
842                                          const GLsizei *length,
843                                          const GLint *params);
844 bool ValidateGetQueryObjecti64vRobustANGLE(const Context *context,
845                                            angle::EntryPoint entryPoint,
846                                            QueryID idPacked,
847                                            GLenum pname,
848                                            GLsizei bufSize,
849                                            const GLsizei *length,
850                                            const GLint64 *params);
851 bool ValidateGetQueryObjectui64vRobustANGLE(const Context *context,
852                                             angle::EntryPoint entryPoint,
853                                             QueryID idPacked,
854                                             GLenum pname,
855                                             GLsizei bufSize,
856                                             const GLsizei *length,
857                                             const GLuint64 *params);
858 
859 // GL_ANGLE_robust_resource_initialization
860 
861 // GL_ANGLE_semaphore_fuchsia
862 bool ValidateImportSemaphoreZirconHandleANGLE(const Context *context,
863                                               angle::EntryPoint entryPoint,
864                                               SemaphoreID semaphorePacked,
865                                               HandleType handleTypePacked,
866                                               GLuint handle);
867 
868 // GL_ANGLE_shader_pixel_local_storage
869 bool ValidateFramebufferMemorylessPixelLocalStorageANGLE(const Context *context,
870                                                          angle::EntryPoint entryPoint,
871                                                          GLint plane,
872                                                          GLenum internalformat);
873 bool ValidateFramebufferTexturePixelLocalStorageANGLE(const Context *context,
874                                                       angle::EntryPoint entryPoint,
875                                                       GLint plane,
876                                                       TextureID backingtexturePacked,
877                                                       GLint level,
878                                                       GLint layer);
879 bool ValidateFramebufferPixelLocalClearValuefvANGLE(const Context *context,
880                                                     angle::EntryPoint entryPoint,
881                                                     GLint plane,
882                                                     const GLfloat *value);
883 bool ValidateFramebufferPixelLocalClearValueivANGLE(const Context *context,
884                                                     angle::EntryPoint entryPoint,
885                                                     GLint plane,
886                                                     const GLint *value);
887 bool ValidateFramebufferPixelLocalClearValueuivANGLE(const Context *context,
888                                                      angle::EntryPoint entryPoint,
889                                                      GLint plane,
890                                                      const GLuint *value);
891 bool ValidateBeginPixelLocalStorageANGLE(const Context *context,
892                                          angle::EntryPoint entryPoint,
893                                          GLsizei n,
894                                          const GLenum *loadops);
895 bool ValidateEndPixelLocalStorageANGLE(const Context *context,
896                                        angle::EntryPoint entryPoint,
897                                        GLsizei n,
898                                        const GLenum *storeops);
899 bool ValidatePixelLocalStorageBarrierANGLE(const Context *context, angle::EntryPoint entryPoint);
900 bool ValidateFramebufferPixelLocalStorageInterruptANGLE(const Context *context,
901                                                         angle::EntryPoint entryPoint);
902 bool ValidateFramebufferPixelLocalStorageRestoreANGLE(const Context *context,
903                                                       angle::EntryPoint entryPoint);
904 bool ValidateGetFramebufferPixelLocalStorageParameterfvANGLE(const Context *context,
905                                                              angle::EntryPoint entryPoint,
906                                                              GLint plane,
907                                                              GLenum pname,
908                                                              const GLfloat *params);
909 bool ValidateGetFramebufferPixelLocalStorageParameterivANGLE(const Context *context,
910                                                              angle::EntryPoint entryPoint,
911                                                              GLint plane,
912                                                              GLenum pname,
913                                                              const GLint *params);
914 bool ValidateGetFramebufferPixelLocalStorageParameterfvRobustANGLE(const Context *context,
915                                                                    angle::EntryPoint entryPoint,
916                                                                    GLint plane,
917                                                                    GLenum pname,
918                                                                    GLsizei bufSize,
919                                                                    const GLsizei *length,
920                                                                    const GLfloat *params);
921 bool ValidateGetFramebufferPixelLocalStorageParameterivRobustANGLE(const Context *context,
922                                                                    angle::EntryPoint entryPoint,
923                                                                    GLint plane,
924                                                                    GLenum pname,
925                                                                    GLsizei bufSize,
926                                                                    const GLsizei *length,
927                                                                    const GLint *params);
928 
929 // GL_ANGLE_stencil_texturing
930 
931 // GL_ANGLE_texture_compression_dxt3
932 
933 // GL_ANGLE_texture_compression_dxt5
934 
935 // GL_ANGLE_texture_external_update
936 bool ValidateTexImage2DExternalANGLE(const Context *context,
937                                      angle::EntryPoint entryPoint,
938                                      TextureTarget targetPacked,
939                                      GLint level,
940                                      GLint internalformat,
941                                      GLsizei width,
942                                      GLsizei height,
943                                      GLint border,
944                                      GLenum format,
945                                      GLenum type);
946 bool ValidateInvalidateTextureANGLE(const Context *context,
947                                     angle::EntryPoint entryPoint,
948                                     TextureType targetPacked);
949 
950 // GL_ANGLE_texture_multisample
951 bool ValidateTexStorage2DMultisampleANGLE(const Context *context,
952                                           angle::EntryPoint entryPoint,
953                                           TextureType targetPacked,
954                                           GLsizei samples,
955                                           GLenum internalformat,
956                                           GLsizei width,
957                                           GLsizei height,
958                                           GLboolean fixedsamplelocations);
959 bool ValidateGetMultisamplefvANGLE(const Context *context,
960                                    angle::EntryPoint entryPoint,
961                                    GLenum pname,
962                                    GLuint index,
963                                    const GLfloat *val);
964 bool ValidateSampleMaskiANGLE(const PrivateState &state,
965                               ErrorSet *errors,
966                               angle::EntryPoint entryPoint,
967                               GLuint maskNumber,
968                               GLbitfield mask);
969 
970 // GL_ANGLE_texture_usage
971 
972 // GL_ANGLE_translated_shader_source
973 bool ValidateGetTranslatedShaderSourceANGLE(const Context *context,
974                                             angle::EntryPoint entryPoint,
975                                             ShaderProgramID shaderPacked,
976                                             GLsizei bufSize,
977                                             const GLsizei *length,
978                                             const GLchar *source);
979 
980 // GL_ANGLE_vulkan_image
981 bool ValidateAcquireTexturesANGLE(const Context *context,
982                                   angle::EntryPoint entryPoint,
983                                   GLuint numTextures,
984                                   const TextureID *texturesPacked,
985                                   const GLenum *layouts);
986 bool ValidateReleaseTexturesANGLE(const Context *context,
987                                   angle::EntryPoint entryPoint,
988                                   GLuint numTextures,
989                                   const TextureID *texturesPacked,
990                                   const GLenum *layouts);
991 
992 // GL_APPLE_clip_distance
993 
994 // GL_ARB_sync
995 
996 // GL_ARM_shader_framebuffer_fetch
997 
998 // GL_CHROMIUM_bind_uniform_location
999 bool ValidateBindUniformLocationCHROMIUM(const Context *context,
1000                                          angle::EntryPoint entryPoint,
1001                                          ShaderProgramID programPacked,
1002                                          UniformLocation locationPacked,
1003                                          const GLchar *name);
1004 
1005 // GL_CHROMIUM_copy_compressed_texture
1006 bool ValidateCompressedCopyTextureCHROMIUM(const Context *context,
1007                                            angle::EntryPoint entryPoint,
1008                                            TextureID sourceIdPacked,
1009                                            TextureID destIdPacked);
1010 
1011 // GL_CHROMIUM_copy_texture
1012 bool ValidateCopyTextureCHROMIUM(const Context *context,
1013                                  angle::EntryPoint entryPoint,
1014                                  TextureID sourceIdPacked,
1015                                  GLint sourceLevel,
1016                                  TextureTarget destTargetPacked,
1017                                  TextureID destIdPacked,
1018                                  GLint destLevel,
1019                                  GLint internalFormat,
1020                                  GLenum destType,
1021                                  GLboolean unpackFlipY,
1022                                  GLboolean unpackPremultiplyAlpha,
1023                                  GLboolean unpackUnmultiplyAlpha);
1024 bool ValidateCopySubTextureCHROMIUM(const Context *context,
1025                                     angle::EntryPoint entryPoint,
1026                                     TextureID sourceIdPacked,
1027                                     GLint sourceLevel,
1028                                     TextureTarget destTargetPacked,
1029                                     TextureID destIdPacked,
1030                                     GLint destLevel,
1031                                     GLint xoffset,
1032                                     GLint yoffset,
1033                                     GLint x,
1034                                     GLint y,
1035                                     GLint width,
1036                                     GLint height,
1037                                     GLboolean unpackFlipY,
1038                                     GLboolean unpackPremultiplyAlpha,
1039                                     GLboolean unpackUnmultiplyAlpha);
1040 
1041 // GL_CHROMIUM_framebuffer_mixed_samples
1042 bool ValidateCoverageModulationCHROMIUM(const PrivateState &state,
1043                                         ErrorSet *errors,
1044                                         angle::EntryPoint entryPoint,
1045                                         GLenum components);
1046 
1047 // GL_CHROMIUM_lose_context
1048 bool ValidateLoseContextCHROMIUM(const Context *context,
1049                                  angle::EntryPoint entryPoint,
1050                                  GraphicsResetStatus currentPacked,
1051                                  GraphicsResetStatus otherPacked);
1052 
1053 // GL_EXT_EGL_image_array
1054 
1055 // GL_EXT_EGL_image_storage
1056 bool ValidateEGLImageTargetTexStorageEXT(const Context *context,
1057                                          angle::EntryPoint entryPoint,
1058                                          GLenum target,
1059                                          egl::ImageID imagePacked,
1060                                          const GLint *attrib_list);
1061 bool ValidateEGLImageTargetTextureStorageEXT(const Context *context,
1062                                              angle::EntryPoint entryPoint,
1063                                              GLuint texture,
1064                                              egl::ImageID imagePacked,
1065                                              const GLint *attrib_list);
1066 
1067 // GL_EXT_YUV_target
1068 
1069 // GL_EXT_base_instance
1070 bool ValidateDrawArraysInstancedBaseInstanceEXT(const Context *context,
1071                                                 angle::EntryPoint entryPoint,
1072                                                 PrimitiveMode modePacked,
1073                                                 GLint first,
1074                                                 GLsizei count,
1075                                                 GLsizei instancecount,
1076                                                 GLuint baseinstance);
1077 bool ValidateDrawElementsInstancedBaseInstanceEXT(const Context *context,
1078                                                   angle::EntryPoint entryPoint,
1079                                                   PrimitiveMode modePacked,
1080                                                   GLsizei count,
1081                                                   DrawElementsType typePacked,
1082                                                   const void *indices,
1083                                                   GLsizei instancecount,
1084                                                   GLuint baseinstance);
1085 bool ValidateDrawElementsInstancedBaseVertexBaseInstanceEXT(const Context *context,
1086                                                             angle::EntryPoint entryPoint,
1087                                                             PrimitiveMode modePacked,
1088                                                             GLsizei count,
1089                                                             DrawElementsType typePacked,
1090                                                             const void *indices,
1091                                                             GLsizei instancecount,
1092                                                             GLint basevertex,
1093                                                             GLuint baseinstance);
1094 
1095 // GL_EXT_blend_func_extended
1096 bool ValidateBindFragDataLocationEXT(const Context *context,
1097                                      angle::EntryPoint entryPoint,
1098                                      ShaderProgramID programPacked,
1099                                      GLuint color,
1100                                      const GLchar *name);
1101 bool ValidateBindFragDataLocationIndexedEXT(const Context *context,
1102                                             angle::EntryPoint entryPoint,
1103                                             ShaderProgramID programPacked,
1104                                             GLuint colorNumber,
1105                                             GLuint index,
1106                                             const GLchar *name);
1107 bool ValidateGetFragDataIndexEXT(const Context *context,
1108                                  angle::EntryPoint entryPoint,
1109                                  ShaderProgramID programPacked,
1110                                  const GLchar *name);
1111 bool ValidateGetProgramResourceLocationIndexEXT(const Context *context,
1112                                                 angle::EntryPoint entryPoint,
1113                                                 ShaderProgramID programPacked,
1114                                                 GLenum programInterface,
1115                                                 const GLchar *name);
1116 
1117 // GL_EXT_blend_minmax
1118 
1119 // GL_EXT_buffer_storage
1120 bool ValidateBufferStorageEXT(const Context *context,
1121                               angle::EntryPoint entryPoint,
1122                               BufferBinding targetPacked,
1123                               GLsizeiptr size,
1124                               const void *data,
1125                               GLbitfield flags);
1126 
1127 // GL_EXT_clip_control
1128 bool ValidateClipControlEXT(const PrivateState &state,
1129                             ErrorSet *errors,
1130                             angle::EntryPoint entryPoint,
1131                             ClipOrigin originPacked,
1132                             ClipDepthMode depthPacked);
1133 
1134 // GL_EXT_clip_cull_distance
1135 
1136 // GL_EXT_color_buffer_float
1137 
1138 // GL_EXT_color_buffer_half_float
1139 
1140 // GL_EXT_conservative_depth
1141 
1142 // GL_EXT_copy_image
1143 bool ValidateCopyImageSubDataEXT(const Context *context,
1144                                  angle::EntryPoint entryPoint,
1145                                  GLuint srcName,
1146                                  GLenum srcTarget,
1147                                  GLint srcLevel,
1148                                  GLint srcX,
1149                                  GLint srcY,
1150                                  GLint srcZ,
1151                                  GLuint dstName,
1152                                  GLenum dstTarget,
1153                                  GLint dstLevel,
1154                                  GLint dstX,
1155                                  GLint dstY,
1156                                  GLint dstZ,
1157                                  GLsizei srcWidth,
1158                                  GLsizei srcHeight,
1159                                  GLsizei srcDepth);
1160 
1161 // GL_EXT_debug_label
1162 bool ValidateGetObjectLabelEXT(const Context *context,
1163                                angle::EntryPoint entryPoint,
1164                                GLenum type,
1165                                GLuint object,
1166                                GLsizei bufSize,
1167                                const GLsizei *length,
1168                                const GLchar *label);
1169 bool ValidateLabelObjectEXT(const Context *context,
1170                             angle::EntryPoint entryPoint,
1171                             GLenum type,
1172                             GLuint object,
1173                             GLsizei length,
1174                             const GLchar *label);
1175 
1176 // GL_EXT_debug_marker
1177 bool ValidateInsertEventMarkerEXT(const Context *context,
1178                                   angle::EntryPoint entryPoint,
1179                                   GLsizei length,
1180                                   const GLchar *marker);
1181 bool ValidatePopGroupMarkerEXT(const Context *context, angle::EntryPoint entryPoint);
1182 bool ValidatePushGroupMarkerEXT(const Context *context,
1183                                 angle::EntryPoint entryPoint,
1184                                 GLsizei length,
1185                                 const GLchar *marker);
1186 
1187 // GL_EXT_depth_clamp
1188 
1189 // GL_EXT_discard_framebuffer
1190 bool ValidateDiscardFramebufferEXT(const Context *context,
1191                                    angle::EntryPoint entryPoint,
1192                                    GLenum target,
1193                                    GLsizei numAttachments,
1194                                    const GLenum *attachments);
1195 
1196 // GL_EXT_disjoint_timer_query
1197 bool ValidateBeginQueryEXT(const Context *context,
1198                            angle::EntryPoint entryPoint,
1199                            QueryType targetPacked,
1200                            QueryID idPacked);
1201 bool ValidateDeleteQueriesEXT(const Context *context,
1202                               angle::EntryPoint entryPoint,
1203                               GLsizei n,
1204                               const QueryID *idsPacked);
1205 bool ValidateEndQueryEXT(const Context *context,
1206                          angle::EntryPoint entryPoint,
1207                          QueryType targetPacked);
1208 bool ValidateGenQueriesEXT(const Context *context,
1209                            angle::EntryPoint entryPoint,
1210                            GLsizei n,
1211                            const QueryID *idsPacked);
1212 bool ValidateGetInteger64vEXT(const Context *context,
1213                               angle::EntryPoint entryPoint,
1214                               GLenum pname,
1215                               const GLint64 *data);
1216 bool ValidateGetQueryObjecti64vEXT(const Context *context,
1217                                    angle::EntryPoint entryPoint,
1218                                    QueryID idPacked,
1219                                    GLenum pname,
1220                                    const GLint64 *params);
1221 bool ValidateGetQueryObjectivEXT(const Context *context,
1222                                  angle::EntryPoint entryPoint,
1223                                  QueryID idPacked,
1224                                  GLenum pname,
1225                                  const GLint *params);
1226 bool ValidateGetQueryObjectui64vEXT(const Context *context,
1227                                     angle::EntryPoint entryPoint,
1228                                     QueryID idPacked,
1229                                     GLenum pname,
1230                                     const GLuint64 *params);
1231 bool ValidateGetQueryObjectuivEXT(const Context *context,
1232                                   angle::EntryPoint entryPoint,
1233                                   QueryID idPacked,
1234                                   GLenum pname,
1235                                   const GLuint *params);
1236 bool ValidateGetQueryivEXT(const Context *context,
1237                            angle::EntryPoint entryPoint,
1238                            QueryType targetPacked,
1239                            GLenum pname,
1240                            const GLint *params);
1241 bool ValidateIsQueryEXT(const Context *context, angle::EntryPoint entryPoint, QueryID idPacked);
1242 bool ValidateQueryCounterEXT(const Context *context,
1243                              angle::EntryPoint entryPoint,
1244                              QueryID idPacked,
1245                              QueryType targetPacked);
1246 
1247 // GL_EXT_draw_buffers
1248 bool ValidateDrawBuffersEXT(const Context *context,
1249                             angle::EntryPoint entryPoint,
1250                             GLsizei n,
1251                             const GLenum *bufs);
1252 
1253 // GL_EXT_draw_buffers_indexed
1254 bool ValidateBlendEquationSeparateiEXT(const PrivateState &state,
1255                                        ErrorSet *errors,
1256                                        angle::EntryPoint entryPoint,
1257                                        GLuint buf,
1258                                        GLenum modeRGB,
1259                                        GLenum modeAlpha);
1260 bool ValidateBlendEquationiEXT(const PrivateState &state,
1261                                ErrorSet *errors,
1262                                angle::EntryPoint entryPoint,
1263                                GLuint buf,
1264                                GLenum mode);
1265 bool ValidateBlendFuncSeparateiEXT(const PrivateState &state,
1266                                    ErrorSet *errors,
1267                                    angle::EntryPoint entryPoint,
1268                                    GLuint buf,
1269                                    GLenum srcRGB,
1270                                    GLenum dstRGB,
1271                                    GLenum srcAlpha,
1272                                    GLenum dstAlpha);
1273 bool ValidateBlendFunciEXT(const PrivateState &state,
1274                            ErrorSet *errors,
1275                            angle::EntryPoint entryPoint,
1276                            GLuint buf,
1277                            GLenum src,
1278                            GLenum dst);
1279 bool ValidateColorMaskiEXT(const PrivateState &state,
1280                            ErrorSet *errors,
1281                            angle::EntryPoint entryPoint,
1282                            GLuint index,
1283                            GLboolean r,
1284                            GLboolean g,
1285                            GLboolean b,
1286                            GLboolean a);
1287 bool ValidateDisableiEXT(const PrivateState &state,
1288                          ErrorSet *errors,
1289                          angle::EntryPoint entryPoint,
1290                          GLenum target,
1291                          GLuint index);
1292 bool ValidateEnableiEXT(const PrivateState &state,
1293                         ErrorSet *errors,
1294                         angle::EntryPoint entryPoint,
1295                         GLenum target,
1296                         GLuint index);
1297 bool ValidateIsEnablediEXT(const PrivateState &state,
1298                            ErrorSet *errors,
1299                            angle::EntryPoint entryPoint,
1300                            GLenum target,
1301                            GLuint index);
1302 
1303 // GL_EXT_draw_elements_base_vertex
1304 bool ValidateDrawElementsBaseVertexEXT(const Context *context,
1305                                        angle::EntryPoint entryPoint,
1306                                        PrimitiveMode modePacked,
1307                                        GLsizei count,
1308                                        DrawElementsType typePacked,
1309                                        const void *indices,
1310                                        GLint basevertex);
1311 bool ValidateDrawElementsInstancedBaseVertexEXT(const Context *context,
1312                                                 angle::EntryPoint entryPoint,
1313                                                 PrimitiveMode modePacked,
1314                                                 GLsizei count,
1315                                                 DrawElementsType typePacked,
1316                                                 const void *indices,
1317                                                 GLsizei instancecount,
1318                                                 GLint basevertex);
1319 bool ValidateDrawRangeElementsBaseVertexEXT(const Context *context,
1320                                             angle::EntryPoint entryPoint,
1321                                             PrimitiveMode modePacked,
1322                                             GLuint start,
1323                                             GLuint end,
1324                                             GLsizei count,
1325                                             DrawElementsType typePacked,
1326                                             const void *indices,
1327                                             GLint basevertex);
1328 bool ValidateMultiDrawElementsBaseVertexEXT(const Context *context,
1329                                             angle::EntryPoint entryPoint,
1330                                             PrimitiveMode modePacked,
1331                                             const GLsizei *count,
1332                                             DrawElementsType typePacked,
1333                                             const void *const *indices,
1334                                             GLsizei drawcount,
1335                                             const GLint *basevertex);
1336 
1337 // GL_EXT_external_buffer
1338 bool ValidateBufferStorageExternalEXT(const Context *context,
1339                                       angle::EntryPoint entryPoint,
1340                                       BufferBinding targetPacked,
1341                                       GLintptr offset,
1342                                       GLsizeiptr size,
1343                                       GLeglClientBufferEXT clientBuffer,
1344                                       GLbitfield flags);
1345 bool ValidateNamedBufferStorageExternalEXT(const Context *context,
1346                                            angle::EntryPoint entryPoint,
1347                                            GLuint buffer,
1348                                            GLintptr offset,
1349                                            GLsizeiptr size,
1350                                            GLeglClientBufferEXT clientBuffer,
1351                                            GLbitfield flags);
1352 
1353 // GL_EXT_float_blend
1354 
1355 // GL_EXT_geometry_shader
1356 bool ValidateFramebufferTextureEXT(const Context *context,
1357                                    angle::EntryPoint entryPoint,
1358                                    GLenum target,
1359                                    GLenum attachment,
1360                                    TextureID texturePacked,
1361                                    GLint level);
1362 
1363 // GL_EXT_gpu_shader5
1364 
1365 // GL_EXT_instanced_arrays
1366 bool ValidateDrawArraysInstancedEXT(const Context *context,
1367                                     angle::EntryPoint entryPoint,
1368                                     PrimitiveMode modePacked,
1369                                     GLint start,
1370                                     GLsizei count,
1371                                     GLsizei primcount);
1372 bool ValidateDrawElementsInstancedEXT(const Context *context,
1373                                       angle::EntryPoint entryPoint,
1374                                       PrimitiveMode modePacked,
1375                                       GLsizei count,
1376                                       DrawElementsType typePacked,
1377                                       const void *indices,
1378                                       GLsizei primcount);
1379 bool ValidateVertexAttribDivisorEXT(const Context *context,
1380                                     angle::EntryPoint entryPoint,
1381                                     GLuint index,
1382                                     GLuint divisor);
1383 
1384 // GL_EXT_map_buffer_range
1385 bool ValidateFlushMappedBufferRangeEXT(const Context *context,
1386                                        angle::EntryPoint entryPoint,
1387                                        BufferBinding targetPacked,
1388                                        GLintptr offset,
1389                                        GLsizeiptr length);
1390 bool ValidateMapBufferRangeEXT(const Context *context,
1391                                angle::EntryPoint entryPoint,
1392                                BufferBinding targetPacked,
1393                                GLintptr offset,
1394                                GLsizeiptr length,
1395                                GLbitfield access);
1396 
1397 // GL_EXT_memory_object
1398 bool ValidateBufferStorageMemEXT(const Context *context,
1399                                  angle::EntryPoint entryPoint,
1400                                  TextureType targetPacked,
1401                                  GLsizeiptr size,
1402                                  MemoryObjectID memoryPacked,
1403                                  GLuint64 offset);
1404 bool ValidateCreateMemoryObjectsEXT(const Context *context,
1405                                     angle::EntryPoint entryPoint,
1406                                     GLsizei n,
1407                                     const MemoryObjectID *memoryObjectsPacked);
1408 bool ValidateDeleteMemoryObjectsEXT(const Context *context,
1409                                     angle::EntryPoint entryPoint,
1410                                     GLsizei n,
1411                                     const MemoryObjectID *memoryObjectsPacked);
1412 bool ValidateGetMemoryObjectParameterivEXT(const Context *context,
1413                                            angle::EntryPoint entryPoint,
1414                                            MemoryObjectID memoryObjectPacked,
1415                                            GLenum pname,
1416                                            const GLint *params);
1417 bool ValidateGetUnsignedBytevEXT(const Context *context,
1418                                  angle::EntryPoint entryPoint,
1419                                  GLenum pname,
1420                                  const GLubyte *data);
1421 bool ValidateGetUnsignedBytei_vEXT(const Context *context,
1422                                    angle::EntryPoint entryPoint,
1423                                    GLenum target,
1424                                    GLuint index,
1425                                    const GLubyte *data);
1426 bool ValidateIsMemoryObjectEXT(const Context *context,
1427                                angle::EntryPoint entryPoint,
1428                                MemoryObjectID memoryObjectPacked);
1429 bool ValidateMemoryObjectParameterivEXT(const Context *context,
1430                                         angle::EntryPoint entryPoint,
1431                                         MemoryObjectID memoryObjectPacked,
1432                                         GLenum pname,
1433                                         const GLint *params);
1434 bool ValidateTexStorageMem2DEXT(const Context *context,
1435                                 angle::EntryPoint entryPoint,
1436                                 TextureType targetPacked,
1437                                 GLsizei levels,
1438                                 GLenum internalFormat,
1439                                 GLsizei width,
1440                                 GLsizei height,
1441                                 MemoryObjectID memoryPacked,
1442                                 GLuint64 offset);
1443 bool ValidateTexStorageMem2DMultisampleEXT(const Context *context,
1444                                            angle::EntryPoint entryPoint,
1445                                            TextureType targetPacked,
1446                                            GLsizei samples,
1447                                            GLenum internalFormat,
1448                                            GLsizei width,
1449                                            GLsizei height,
1450                                            GLboolean fixedSampleLocations,
1451                                            MemoryObjectID memoryPacked,
1452                                            GLuint64 offset);
1453 bool ValidateTexStorageMem3DEXT(const Context *context,
1454                                 angle::EntryPoint entryPoint,
1455                                 TextureType targetPacked,
1456                                 GLsizei levels,
1457                                 GLenum internalFormat,
1458                                 GLsizei width,
1459                                 GLsizei height,
1460                                 GLsizei depth,
1461                                 MemoryObjectID memoryPacked,
1462                                 GLuint64 offset);
1463 bool ValidateTexStorageMem3DMultisampleEXT(const Context *context,
1464                                            angle::EntryPoint entryPoint,
1465                                            TextureType targetPacked,
1466                                            GLsizei samples,
1467                                            GLenum internalFormat,
1468                                            GLsizei width,
1469                                            GLsizei height,
1470                                            GLsizei depth,
1471                                            GLboolean fixedSampleLocations,
1472                                            MemoryObjectID memoryPacked,
1473                                            GLuint64 offset);
1474 
1475 // GL_EXT_memory_object_fd
1476 bool ValidateImportMemoryFdEXT(const Context *context,
1477                                angle::EntryPoint entryPoint,
1478                                MemoryObjectID memoryPacked,
1479                                GLuint64 size,
1480                                HandleType handleTypePacked,
1481                                GLint fd);
1482 
1483 // GL_EXT_multi_draw_indirect
1484 bool ValidateMultiDrawArraysIndirectEXT(const Context *context,
1485                                         angle::EntryPoint entryPoint,
1486                                         PrimitiveMode modePacked,
1487                                         const void *indirect,
1488                                         GLsizei drawcount,
1489                                         GLsizei stride);
1490 bool ValidateMultiDrawElementsIndirectEXT(const Context *context,
1491                                           angle::EntryPoint entryPoint,
1492                                           PrimitiveMode modePacked,
1493                                           DrawElementsType typePacked,
1494                                           const void *indirect,
1495                                           GLsizei drawcount,
1496                                           GLsizei stride);
1497 
1498 // GL_EXT_multisampled_render_to_texture
1499 bool ValidateFramebufferTexture2DMultisampleEXT(const Context *context,
1500                                                 angle::EntryPoint entryPoint,
1501                                                 GLenum target,
1502                                                 GLenum attachment,
1503                                                 TextureTarget textargetPacked,
1504                                                 TextureID texturePacked,
1505                                                 GLint level,
1506                                                 GLsizei samples);
1507 bool ValidateRenderbufferStorageMultisampleEXT(const Context *context,
1508                                                angle::EntryPoint entryPoint,
1509                                                GLenum target,
1510                                                GLsizei samples,
1511                                                GLenum internalformat,
1512                                                GLsizei width,
1513                                                GLsizei height);
1514 
1515 // GL_EXT_multisampled_render_to_texture2
1516 
1517 // GL_EXT_occlusion_query_boolean
1518 
1519 // GL_EXT_polygon_offset_clamp
1520 bool ValidatePolygonOffsetClampEXT(const PrivateState &state,
1521                                    ErrorSet *errors,
1522                                    angle::EntryPoint entryPoint,
1523                                    GLfloat factor,
1524                                    GLfloat units,
1525                                    GLfloat clamp);
1526 
1527 // GL_EXT_primitive_bounding_box
1528 bool ValidatePrimitiveBoundingBoxEXT(const PrivateState &state,
1529                                      ErrorSet *errors,
1530                                      angle::EntryPoint entryPoint,
1531                                      GLfloat minX,
1532                                      GLfloat minY,
1533                                      GLfloat minZ,
1534                                      GLfloat minW,
1535                                      GLfloat maxX,
1536                                      GLfloat maxY,
1537                                      GLfloat maxZ,
1538                                      GLfloat maxW);
1539 
1540 // GL_EXT_protected_textures
1541 
1542 // GL_EXT_pvrtc_sRGB
1543 
1544 // GL_EXT_read_format_bgra
1545 
1546 // GL_EXT_render_snorm
1547 
1548 // GL_EXT_robustness
1549 bool ValidateGetGraphicsResetStatusEXT(const Context *context, angle::EntryPoint entryPoint);
1550 bool ValidateGetnUniformfvEXT(const Context *context,
1551                               angle::EntryPoint entryPoint,
1552                               ShaderProgramID programPacked,
1553                               UniformLocation locationPacked,
1554                               GLsizei bufSize,
1555                               const GLfloat *params);
1556 bool ValidateGetnUniformivEXT(const Context *context,
1557                               angle::EntryPoint entryPoint,
1558                               ShaderProgramID programPacked,
1559                               UniformLocation locationPacked,
1560                               GLsizei bufSize,
1561                               const GLint *params);
1562 bool ValidateReadnPixelsEXT(const Context *context,
1563                             angle::EntryPoint entryPoint,
1564                             GLint x,
1565                             GLint y,
1566                             GLsizei width,
1567                             GLsizei height,
1568                             GLenum format,
1569                             GLenum type,
1570                             GLsizei bufSize,
1571                             const void *data);
1572 
1573 // GL_EXT_sRGB
1574 
1575 // GL_EXT_sRGB_write_control
1576 
1577 // GL_EXT_semaphore
1578 bool ValidateDeleteSemaphoresEXT(const Context *context,
1579                                  angle::EntryPoint entryPoint,
1580                                  GLsizei n,
1581                                  const SemaphoreID *semaphoresPacked);
1582 bool ValidateGenSemaphoresEXT(const Context *context,
1583                               angle::EntryPoint entryPoint,
1584                               GLsizei n,
1585                               const SemaphoreID *semaphoresPacked);
1586 bool ValidateGetSemaphoreParameterui64vEXT(const Context *context,
1587                                            angle::EntryPoint entryPoint,
1588                                            SemaphoreID semaphorePacked,
1589                                            GLenum pname,
1590                                            const GLuint64 *params);
1591 bool ValidateIsSemaphoreEXT(const Context *context,
1592                             angle::EntryPoint entryPoint,
1593                             SemaphoreID semaphorePacked);
1594 bool ValidateSemaphoreParameterui64vEXT(const Context *context,
1595                                         angle::EntryPoint entryPoint,
1596                                         SemaphoreID semaphorePacked,
1597                                         GLenum pname,
1598                                         const GLuint64 *params);
1599 bool ValidateSignalSemaphoreEXT(const Context *context,
1600                                 angle::EntryPoint entryPoint,
1601                                 SemaphoreID semaphorePacked,
1602                                 GLuint numBufferBarriers,
1603                                 const BufferID *buffersPacked,
1604                                 GLuint numTextureBarriers,
1605                                 const TextureID *texturesPacked,
1606                                 const GLenum *dstLayouts);
1607 bool ValidateWaitSemaphoreEXT(const Context *context,
1608                               angle::EntryPoint entryPoint,
1609                               SemaphoreID semaphorePacked,
1610                               GLuint numBufferBarriers,
1611                               const BufferID *buffersPacked,
1612                               GLuint numTextureBarriers,
1613                               const TextureID *texturesPacked,
1614                               const GLenum *srcLayouts);
1615 
1616 // GL_EXT_semaphore_fd
1617 bool ValidateImportSemaphoreFdEXT(const Context *context,
1618                                   angle::EntryPoint entryPoint,
1619                                   SemaphoreID semaphorePacked,
1620                                   HandleType handleTypePacked,
1621                                   GLint fd);
1622 
1623 // GL_EXT_separate_shader_objects
1624 bool ValidateActiveShaderProgramEXT(const Context *context,
1625                                     angle::EntryPoint entryPoint,
1626                                     ProgramPipelineID pipelinePacked,
1627                                     ShaderProgramID programPacked);
1628 bool ValidateBindProgramPipelineEXT(const Context *context,
1629                                     angle::EntryPoint entryPoint,
1630                                     ProgramPipelineID pipelinePacked);
1631 bool ValidateCreateShaderProgramvEXT(const Context *context,
1632                                      angle::EntryPoint entryPoint,
1633                                      ShaderType typePacked,
1634                                      GLsizei count,
1635                                      const GLchar **strings);
1636 bool ValidateDeleteProgramPipelinesEXT(const Context *context,
1637                                        angle::EntryPoint entryPoint,
1638                                        GLsizei n,
1639                                        const ProgramPipelineID *pipelinesPacked);
1640 bool ValidateGenProgramPipelinesEXT(const Context *context,
1641                                     angle::EntryPoint entryPoint,
1642                                     GLsizei n,
1643                                     const ProgramPipelineID *pipelinesPacked);
1644 bool ValidateGetProgramPipelineInfoLogEXT(const Context *context,
1645                                           angle::EntryPoint entryPoint,
1646                                           ProgramPipelineID pipelinePacked,
1647                                           GLsizei bufSize,
1648                                           const GLsizei *length,
1649                                           const GLchar *infoLog);
1650 bool ValidateGetProgramPipelineivEXT(const Context *context,
1651                                      angle::EntryPoint entryPoint,
1652                                      ProgramPipelineID pipelinePacked,
1653                                      GLenum pname,
1654                                      const GLint *params);
1655 bool ValidateIsProgramPipelineEXT(const Context *context,
1656                                   angle::EntryPoint entryPoint,
1657                                   ProgramPipelineID pipelinePacked);
1658 bool ValidateProgramParameteriEXT(const Context *context,
1659                                   angle::EntryPoint entryPoint,
1660                                   ShaderProgramID programPacked,
1661                                   GLenum pname,
1662                                   GLint value);
1663 bool ValidateProgramUniform1fEXT(const Context *context,
1664                                  angle::EntryPoint entryPoint,
1665                                  ShaderProgramID programPacked,
1666                                  UniformLocation locationPacked,
1667                                  GLfloat v0);
1668 bool ValidateProgramUniform1fvEXT(const Context *context,
1669                                   angle::EntryPoint entryPoint,
1670                                   ShaderProgramID programPacked,
1671                                   UniformLocation locationPacked,
1672                                   GLsizei count,
1673                                   const GLfloat *value);
1674 bool ValidateProgramUniform1iEXT(const Context *context,
1675                                  angle::EntryPoint entryPoint,
1676                                  ShaderProgramID programPacked,
1677                                  UniformLocation locationPacked,
1678                                  GLint v0);
1679 bool ValidateProgramUniform1ivEXT(const Context *context,
1680                                   angle::EntryPoint entryPoint,
1681                                   ShaderProgramID programPacked,
1682                                   UniformLocation locationPacked,
1683                                   GLsizei count,
1684                                   const GLint *value);
1685 bool ValidateProgramUniform1uiEXT(const Context *context,
1686                                   angle::EntryPoint entryPoint,
1687                                   ShaderProgramID programPacked,
1688                                   UniformLocation locationPacked,
1689                                   GLuint v0);
1690 bool ValidateProgramUniform1uivEXT(const Context *context,
1691                                    angle::EntryPoint entryPoint,
1692                                    ShaderProgramID programPacked,
1693                                    UniformLocation locationPacked,
1694                                    GLsizei count,
1695                                    const GLuint *value);
1696 bool ValidateProgramUniform2fEXT(const Context *context,
1697                                  angle::EntryPoint entryPoint,
1698                                  ShaderProgramID programPacked,
1699                                  UniformLocation locationPacked,
1700                                  GLfloat v0,
1701                                  GLfloat v1);
1702 bool ValidateProgramUniform2fvEXT(const Context *context,
1703                                   angle::EntryPoint entryPoint,
1704                                   ShaderProgramID programPacked,
1705                                   UniformLocation locationPacked,
1706                                   GLsizei count,
1707                                   const GLfloat *value);
1708 bool ValidateProgramUniform2iEXT(const Context *context,
1709                                  angle::EntryPoint entryPoint,
1710                                  ShaderProgramID programPacked,
1711                                  UniformLocation locationPacked,
1712                                  GLint v0,
1713                                  GLint v1);
1714 bool ValidateProgramUniform2ivEXT(const Context *context,
1715                                   angle::EntryPoint entryPoint,
1716                                   ShaderProgramID programPacked,
1717                                   UniformLocation locationPacked,
1718                                   GLsizei count,
1719                                   const GLint *value);
1720 bool ValidateProgramUniform2uiEXT(const Context *context,
1721                                   angle::EntryPoint entryPoint,
1722                                   ShaderProgramID programPacked,
1723                                   UniformLocation locationPacked,
1724                                   GLuint v0,
1725                                   GLuint v1);
1726 bool ValidateProgramUniform2uivEXT(const Context *context,
1727                                    angle::EntryPoint entryPoint,
1728                                    ShaderProgramID programPacked,
1729                                    UniformLocation locationPacked,
1730                                    GLsizei count,
1731                                    const GLuint *value);
1732 bool ValidateProgramUniform3fEXT(const Context *context,
1733                                  angle::EntryPoint entryPoint,
1734                                  ShaderProgramID programPacked,
1735                                  UniformLocation locationPacked,
1736                                  GLfloat v0,
1737                                  GLfloat v1,
1738                                  GLfloat v2);
1739 bool ValidateProgramUniform3fvEXT(const Context *context,
1740                                   angle::EntryPoint entryPoint,
1741                                   ShaderProgramID programPacked,
1742                                   UniformLocation locationPacked,
1743                                   GLsizei count,
1744                                   const GLfloat *value);
1745 bool ValidateProgramUniform3iEXT(const Context *context,
1746                                  angle::EntryPoint entryPoint,
1747                                  ShaderProgramID programPacked,
1748                                  UniformLocation locationPacked,
1749                                  GLint v0,
1750                                  GLint v1,
1751                                  GLint v2);
1752 bool ValidateProgramUniform3ivEXT(const Context *context,
1753                                   angle::EntryPoint entryPoint,
1754                                   ShaderProgramID programPacked,
1755                                   UniformLocation locationPacked,
1756                                   GLsizei count,
1757                                   const GLint *value);
1758 bool ValidateProgramUniform3uiEXT(const Context *context,
1759                                   angle::EntryPoint entryPoint,
1760                                   ShaderProgramID programPacked,
1761                                   UniformLocation locationPacked,
1762                                   GLuint v0,
1763                                   GLuint v1,
1764                                   GLuint v2);
1765 bool ValidateProgramUniform3uivEXT(const Context *context,
1766                                    angle::EntryPoint entryPoint,
1767                                    ShaderProgramID programPacked,
1768                                    UniformLocation locationPacked,
1769                                    GLsizei count,
1770                                    const GLuint *value);
1771 bool ValidateProgramUniform4fEXT(const Context *context,
1772                                  angle::EntryPoint entryPoint,
1773                                  ShaderProgramID programPacked,
1774                                  UniformLocation locationPacked,
1775                                  GLfloat v0,
1776                                  GLfloat v1,
1777                                  GLfloat v2,
1778                                  GLfloat v3);
1779 bool ValidateProgramUniform4fvEXT(const Context *context,
1780                                   angle::EntryPoint entryPoint,
1781                                   ShaderProgramID programPacked,
1782                                   UniformLocation locationPacked,
1783                                   GLsizei count,
1784                                   const GLfloat *value);
1785 bool ValidateProgramUniform4iEXT(const Context *context,
1786                                  angle::EntryPoint entryPoint,
1787                                  ShaderProgramID programPacked,
1788                                  UniformLocation locationPacked,
1789                                  GLint v0,
1790                                  GLint v1,
1791                                  GLint v2,
1792                                  GLint v3);
1793 bool ValidateProgramUniform4ivEXT(const Context *context,
1794                                   angle::EntryPoint entryPoint,
1795                                   ShaderProgramID programPacked,
1796                                   UniformLocation locationPacked,
1797                                   GLsizei count,
1798                                   const GLint *value);
1799 bool ValidateProgramUniform4uiEXT(const Context *context,
1800                                   angle::EntryPoint entryPoint,
1801                                   ShaderProgramID programPacked,
1802                                   UniformLocation locationPacked,
1803                                   GLuint v0,
1804                                   GLuint v1,
1805                                   GLuint v2,
1806                                   GLuint v3);
1807 bool ValidateProgramUniform4uivEXT(const Context *context,
1808                                    angle::EntryPoint entryPoint,
1809                                    ShaderProgramID programPacked,
1810                                    UniformLocation locationPacked,
1811                                    GLsizei count,
1812                                    const GLuint *value);
1813 bool ValidateProgramUniformMatrix2fvEXT(const Context *context,
1814                                         angle::EntryPoint entryPoint,
1815                                         ShaderProgramID programPacked,
1816                                         UniformLocation locationPacked,
1817                                         GLsizei count,
1818                                         GLboolean transpose,
1819                                         const GLfloat *value);
1820 bool ValidateProgramUniformMatrix2x3fvEXT(const Context *context,
1821                                           angle::EntryPoint entryPoint,
1822                                           ShaderProgramID programPacked,
1823                                           UniformLocation locationPacked,
1824                                           GLsizei count,
1825                                           GLboolean transpose,
1826                                           const GLfloat *value);
1827 bool ValidateProgramUniformMatrix2x4fvEXT(const Context *context,
1828                                           angle::EntryPoint entryPoint,
1829                                           ShaderProgramID programPacked,
1830                                           UniformLocation locationPacked,
1831                                           GLsizei count,
1832                                           GLboolean transpose,
1833                                           const GLfloat *value);
1834 bool ValidateProgramUniformMatrix3fvEXT(const Context *context,
1835                                         angle::EntryPoint entryPoint,
1836                                         ShaderProgramID programPacked,
1837                                         UniformLocation locationPacked,
1838                                         GLsizei count,
1839                                         GLboolean transpose,
1840                                         const GLfloat *value);
1841 bool ValidateProgramUniformMatrix3x2fvEXT(const Context *context,
1842                                           angle::EntryPoint entryPoint,
1843                                           ShaderProgramID programPacked,
1844                                           UniformLocation locationPacked,
1845                                           GLsizei count,
1846                                           GLboolean transpose,
1847                                           const GLfloat *value);
1848 bool ValidateProgramUniformMatrix3x4fvEXT(const Context *context,
1849                                           angle::EntryPoint entryPoint,
1850                                           ShaderProgramID programPacked,
1851                                           UniformLocation locationPacked,
1852                                           GLsizei count,
1853                                           GLboolean transpose,
1854                                           const GLfloat *value);
1855 bool ValidateProgramUniformMatrix4fvEXT(const Context *context,
1856                                         angle::EntryPoint entryPoint,
1857                                         ShaderProgramID programPacked,
1858                                         UniformLocation locationPacked,
1859                                         GLsizei count,
1860                                         GLboolean transpose,
1861                                         const GLfloat *value);
1862 bool ValidateProgramUniformMatrix4x2fvEXT(const Context *context,
1863                                           angle::EntryPoint entryPoint,
1864                                           ShaderProgramID programPacked,
1865                                           UniformLocation locationPacked,
1866                                           GLsizei count,
1867                                           GLboolean transpose,
1868                                           const GLfloat *value);
1869 bool ValidateProgramUniformMatrix4x3fvEXT(const Context *context,
1870                                           angle::EntryPoint entryPoint,
1871                                           ShaderProgramID programPacked,
1872                                           UniformLocation locationPacked,
1873                                           GLsizei count,
1874                                           GLboolean transpose,
1875                                           const GLfloat *value);
1876 bool ValidateUseProgramStagesEXT(const Context *context,
1877                                  angle::EntryPoint entryPoint,
1878                                  ProgramPipelineID pipelinePacked,
1879                                  GLbitfield stages,
1880                                  ShaderProgramID programPacked);
1881 bool ValidateValidateProgramPipelineEXT(const Context *context,
1882                                         angle::EntryPoint entryPoint,
1883                                         ProgramPipelineID pipelinePacked);
1884 
1885 // GL_EXT_shader_framebuffer_fetch
1886 
1887 // GL_EXT_shader_framebuffer_fetch_non_coherent
1888 bool ValidateFramebufferFetchBarrierEXT(const Context *context, angle::EntryPoint entryPoint);
1889 
1890 // GL_EXT_shader_io_blocks
1891 
1892 // GL_EXT_shader_non_constant_global_initializers
1893 
1894 // GL_EXT_shader_texture_lod
1895 
1896 // GL_EXT_shadow_samplers
1897 
1898 // GL_EXT_tessellation_shader
1899 bool ValidatePatchParameteriEXT(const PrivateState &state,
1900                                 ErrorSet *errors,
1901                                 angle::EntryPoint entryPoint,
1902                                 GLenum pname,
1903                                 GLint value);
1904 
1905 // GL_EXT_texture_border_clamp
1906 bool ValidateGetSamplerParameterIivEXT(const Context *context,
1907                                        angle::EntryPoint entryPoint,
1908                                        SamplerID samplerPacked,
1909                                        GLenum pname,
1910                                        const GLint *params);
1911 bool ValidateGetSamplerParameterIuivEXT(const Context *context,
1912                                         angle::EntryPoint entryPoint,
1913                                         SamplerID samplerPacked,
1914                                         GLenum pname,
1915                                         const GLuint *params);
1916 bool ValidateGetTexParameterIivEXT(const Context *context,
1917                                    angle::EntryPoint entryPoint,
1918                                    TextureType targetPacked,
1919                                    GLenum pname,
1920                                    const GLint *params);
1921 bool ValidateGetTexParameterIuivEXT(const Context *context,
1922                                     angle::EntryPoint entryPoint,
1923                                     TextureType targetPacked,
1924                                     GLenum pname,
1925                                     const GLuint *params);
1926 bool ValidateSamplerParameterIivEXT(const Context *context,
1927                                     angle::EntryPoint entryPoint,
1928                                     SamplerID samplerPacked,
1929                                     GLenum pname,
1930                                     const GLint *param);
1931 bool ValidateSamplerParameterIuivEXT(const Context *context,
1932                                      angle::EntryPoint entryPoint,
1933                                      SamplerID samplerPacked,
1934                                      GLenum pname,
1935                                      const GLuint *param);
1936 bool ValidateTexParameterIivEXT(const Context *context,
1937                                 angle::EntryPoint entryPoint,
1938                                 TextureType targetPacked,
1939                                 GLenum pname,
1940                                 const GLint *params);
1941 bool ValidateTexParameterIuivEXT(const Context *context,
1942                                  angle::EntryPoint entryPoint,
1943                                  TextureType targetPacked,
1944                                  GLenum pname,
1945                                  const GLuint *params);
1946 
1947 // GL_EXT_texture_buffer
1948 bool ValidateTexBufferEXT(const Context *context,
1949                           angle::EntryPoint entryPoint,
1950                           TextureType targetPacked,
1951                           GLenum internalformat,
1952                           BufferID bufferPacked);
1953 bool ValidateTexBufferRangeEXT(const Context *context,
1954                                angle::EntryPoint entryPoint,
1955                                TextureType targetPacked,
1956                                GLenum internalformat,
1957                                BufferID bufferPacked,
1958                                GLintptr offset,
1959                                GLsizeiptr size);
1960 
1961 // GL_EXT_texture_compression_astc_decode_mode
1962 
1963 // GL_EXT_texture_compression_bptc
1964 
1965 // GL_EXT_texture_compression_dxt1
1966 
1967 // GL_EXT_texture_compression_rgtc
1968 
1969 // GL_EXT_texture_compression_s3tc
1970 
1971 // GL_EXT_texture_compression_s3tc_srgb
1972 
1973 // GL_EXT_texture_cube_map_array
1974 
1975 // GL_EXT_texture_filter_anisotropic
1976 
1977 // GL_EXT_texture_filter_minmax
1978 
1979 // GL_EXT_texture_format_BGRA8888
1980 
1981 // GL_EXT_texture_format_sRGB_override
1982 
1983 // GL_EXT_texture_mirror_clamp_to_edge
1984 
1985 // GL_EXT_texture_norm16
1986 
1987 // GL_EXT_texture_rg
1988 
1989 // GL_EXT_texture_sRGB_R8
1990 
1991 // GL_EXT_texture_sRGB_RG8
1992 
1993 // GL_EXT_texture_sRGB_decode
1994 
1995 // GL_EXT_texture_storage
1996 bool ValidateTexStorage1DEXT(const Context *context,
1997                              angle::EntryPoint entryPoint,
1998                              GLenum target,
1999                              GLsizei levels,
2000                              GLenum internalformat,
2001                              GLsizei width);
2002 bool ValidateTexStorage2DEXT(const Context *context,
2003                              angle::EntryPoint entryPoint,
2004                              TextureType targetPacked,
2005                              GLsizei levels,
2006                              GLenum internalformat,
2007                              GLsizei width,
2008                              GLsizei height);
2009 bool ValidateTexStorage3DEXT(const Context *context,
2010                              angle::EntryPoint entryPoint,
2011                              TextureType targetPacked,
2012                              GLsizei levels,
2013                              GLenum internalformat,
2014                              GLsizei width,
2015                              GLsizei height,
2016                              GLsizei depth);
2017 
2018 // GL_EXT_texture_type_2_10_10_10_REV
2019 
2020 // GL_EXT_unpack_subimage
2021 
2022 // GL_IMG_texture_compression_pvrtc
2023 
2024 // GL_IMG_texture_compression_pvrtc2
2025 
2026 // GL_KHR_blend_equation_advanced
2027 bool ValidateBlendBarrierKHR(const Context *context, angle::EntryPoint entryPoint);
2028 
2029 // GL_KHR_debug
2030 bool ValidateDebugMessageCallbackKHR(const Context *context,
2031                                      angle::EntryPoint entryPoint,
2032                                      GLDEBUGPROCKHR callback,
2033                                      const void *userParam);
2034 bool ValidateDebugMessageControlKHR(const Context *context,
2035                                     angle::EntryPoint entryPoint,
2036                                     GLenum source,
2037                                     GLenum type,
2038                                     GLenum severity,
2039                                     GLsizei count,
2040                                     const GLuint *ids,
2041                                     GLboolean enabled);
2042 bool ValidateDebugMessageInsertKHR(const Context *context,
2043                                    angle::EntryPoint entryPoint,
2044                                    GLenum source,
2045                                    GLenum type,
2046                                    GLuint id,
2047                                    GLenum severity,
2048                                    GLsizei length,
2049                                    const GLchar *buf);
2050 bool ValidateGetDebugMessageLogKHR(const Context *context,
2051                                    angle::EntryPoint entryPoint,
2052                                    GLuint count,
2053                                    GLsizei bufSize,
2054                                    const GLenum *sources,
2055                                    const GLenum *types,
2056                                    const GLuint *ids,
2057                                    const GLenum *severities,
2058                                    const GLsizei *lengths,
2059                                    const GLchar *messageLog);
2060 bool ValidateGetObjectLabelKHR(const Context *context,
2061                                angle::EntryPoint entryPoint,
2062                                GLenum identifier,
2063                                GLuint name,
2064                                GLsizei bufSize,
2065                                const GLsizei *length,
2066                                const GLchar *label);
2067 bool ValidateGetObjectPtrLabelKHR(const Context *context,
2068                                   angle::EntryPoint entryPoint,
2069                                   const void *ptr,
2070                                   GLsizei bufSize,
2071                                   const GLsizei *length,
2072                                   const GLchar *label);
2073 bool ValidateGetPointervKHR(const Context *context,
2074                             angle::EntryPoint entryPoint,
2075                             GLenum pname,
2076                             void *const *params);
2077 bool ValidateObjectLabelKHR(const Context *context,
2078                             angle::EntryPoint entryPoint,
2079                             GLenum identifier,
2080                             GLuint name,
2081                             GLsizei length,
2082                             const GLchar *label);
2083 bool ValidateObjectPtrLabelKHR(const Context *context,
2084                                angle::EntryPoint entryPoint,
2085                                const void *ptr,
2086                                GLsizei length,
2087                                const GLchar *label);
2088 bool ValidatePopDebugGroupKHR(const Context *context, angle::EntryPoint entryPoint);
2089 bool ValidatePushDebugGroupKHR(const Context *context,
2090                                angle::EntryPoint entryPoint,
2091                                GLenum source,
2092                                GLuint id,
2093                                GLsizei length,
2094                                const GLchar *message);
2095 
2096 // GL_KHR_no_error
2097 
2098 // GL_KHR_parallel_shader_compile
2099 bool ValidateMaxShaderCompilerThreadsKHR(const Context *context,
2100                                          angle::EntryPoint entryPoint,
2101                                          GLuint count);
2102 
2103 // GL_KHR_robust_buffer_access_behavior
2104 
2105 // GL_KHR_texture_compression_astc_hdr
2106 
2107 // GL_KHR_texture_compression_astc_ldr
2108 
2109 // GL_KHR_texture_compression_astc_sliced_3d
2110 
2111 // GL_MESA_framebuffer_flip_y
2112 bool ValidateFramebufferParameteriMESA(const Context *context,
2113                                        angle::EntryPoint entryPoint,
2114                                        GLenum target,
2115                                        GLenum pname,
2116                                        GLint param);
2117 bool ValidateGetFramebufferParameterivMESA(const Context *context,
2118                                            angle::EntryPoint entryPoint,
2119                                            GLenum target,
2120                                            GLenum pname,
2121                                            const GLint *params);
2122 
2123 // GL_NV_fence
2124 bool ValidateDeleteFencesNV(const Context *context,
2125                             angle::EntryPoint entryPoint,
2126                             GLsizei n,
2127                             const FenceNVID *fencesPacked);
2128 bool ValidateFinishFenceNV(const Context *context,
2129                            angle::EntryPoint entryPoint,
2130                            FenceNVID fencePacked);
2131 bool ValidateGenFencesNV(const Context *context,
2132                          angle::EntryPoint entryPoint,
2133                          GLsizei n,
2134                          const FenceNVID *fencesPacked);
2135 bool ValidateGetFenceivNV(const Context *context,
2136                           angle::EntryPoint entryPoint,
2137                           FenceNVID fencePacked,
2138                           GLenum pname,
2139                           const GLint *params);
2140 bool ValidateIsFenceNV(const Context *context, angle::EntryPoint entryPoint, FenceNVID fencePacked);
2141 bool ValidateSetFenceNV(const Context *context,
2142                         angle::EntryPoint entryPoint,
2143                         FenceNVID fencePacked,
2144                         GLenum condition);
2145 bool ValidateTestFenceNV(const Context *context,
2146                          angle::EntryPoint entryPoint,
2147                          FenceNVID fencePacked);
2148 
2149 // GL_NV_framebuffer_blit
2150 bool ValidateBlitFramebufferNV(const Context *context,
2151                                angle::EntryPoint entryPoint,
2152                                GLint srcX0,
2153                                GLint srcY0,
2154                                GLint srcX1,
2155                                GLint srcY1,
2156                                GLint dstX0,
2157                                GLint dstY0,
2158                                GLint dstX1,
2159                                GLint dstY1,
2160                                GLbitfield mask,
2161                                GLenum filter);
2162 
2163 // GL_NV_pixel_buffer_object
2164 
2165 // GL_NV_polygon_mode
2166 bool ValidatePolygonModeNV(const PrivateState &state,
2167                            ErrorSet *errors,
2168                            angle::EntryPoint entryPoint,
2169                            GLenum face,
2170                            PolygonMode modePacked);
2171 
2172 // GL_NV_read_depth
2173 
2174 // GL_NV_read_depth_stencil
2175 
2176 // GL_NV_read_stencil
2177 
2178 // GL_NV_robustness_video_memory_purge
2179 
2180 // GL_NV_shader_noperspective_interpolation
2181 
2182 // GL_OES_EGL_image
2183 bool ValidateEGLImageTargetRenderbufferStorageOES(const Context *context,
2184                                                   angle::EntryPoint entryPoint,
2185                                                   GLenum target,
2186                                                   egl::ImageID imagePacked);
2187 bool ValidateEGLImageTargetTexture2DOES(const Context *context,
2188                                         angle::EntryPoint entryPoint,
2189                                         TextureType targetPacked,
2190                                         egl::ImageID imagePacked);
2191 
2192 // GL_OES_EGL_image_external
2193 
2194 // GL_OES_EGL_image_external_essl3
2195 
2196 // GL_OES_compressed_ETC1_RGB8_texture
2197 
2198 // GL_OES_compressed_paletted_texture
2199 
2200 // GL_OES_copy_image
2201 bool ValidateCopyImageSubDataOES(const Context *context,
2202                                  angle::EntryPoint entryPoint,
2203                                  GLuint srcName,
2204                                  GLenum srcTarget,
2205                                  GLint srcLevel,
2206                                  GLint srcX,
2207                                  GLint srcY,
2208                                  GLint srcZ,
2209                                  GLuint dstName,
2210                                  GLenum dstTarget,
2211                                  GLint dstLevel,
2212                                  GLint dstX,
2213                                  GLint dstY,
2214                                  GLint dstZ,
2215                                  GLsizei srcWidth,
2216                                  GLsizei srcHeight,
2217                                  GLsizei srcDepth);
2218 
2219 // GL_OES_depth24
2220 
2221 // GL_OES_depth32
2222 
2223 // GL_OES_depth_texture
2224 
2225 // GL_OES_draw_buffers_indexed
2226 bool ValidateBlendEquationSeparateiOES(const PrivateState &state,
2227                                        ErrorSet *errors,
2228                                        angle::EntryPoint entryPoint,
2229                                        GLuint buf,
2230                                        GLenum modeRGB,
2231                                        GLenum modeAlpha);
2232 bool ValidateBlendEquationiOES(const PrivateState &state,
2233                                ErrorSet *errors,
2234                                angle::EntryPoint entryPoint,
2235                                GLuint buf,
2236                                GLenum mode);
2237 bool ValidateBlendFuncSeparateiOES(const PrivateState &state,
2238                                    ErrorSet *errors,
2239                                    angle::EntryPoint entryPoint,
2240                                    GLuint buf,
2241                                    GLenum srcRGB,
2242                                    GLenum dstRGB,
2243                                    GLenum srcAlpha,
2244                                    GLenum dstAlpha);
2245 bool ValidateBlendFunciOES(const PrivateState &state,
2246                            ErrorSet *errors,
2247                            angle::EntryPoint entryPoint,
2248                            GLuint buf,
2249                            GLenum src,
2250                            GLenum dst);
2251 bool ValidateColorMaskiOES(const PrivateState &state,
2252                            ErrorSet *errors,
2253                            angle::EntryPoint entryPoint,
2254                            GLuint index,
2255                            GLboolean r,
2256                            GLboolean g,
2257                            GLboolean b,
2258                            GLboolean a);
2259 bool ValidateDisableiOES(const PrivateState &state,
2260                          ErrorSet *errors,
2261                          angle::EntryPoint entryPoint,
2262                          GLenum target,
2263                          GLuint index);
2264 bool ValidateEnableiOES(const PrivateState &state,
2265                         ErrorSet *errors,
2266                         angle::EntryPoint entryPoint,
2267                         GLenum target,
2268                         GLuint index);
2269 bool ValidateIsEnablediOES(const PrivateState &state,
2270                            ErrorSet *errors,
2271                            angle::EntryPoint entryPoint,
2272                            GLenum target,
2273                            GLuint index);
2274 
2275 // GL_OES_draw_elements_base_vertex
2276 bool ValidateDrawElementsBaseVertexOES(const Context *context,
2277                                        angle::EntryPoint entryPoint,
2278                                        PrimitiveMode modePacked,
2279                                        GLsizei count,
2280                                        DrawElementsType typePacked,
2281                                        const void *indices,
2282                                        GLint basevertex);
2283 bool ValidateDrawElementsInstancedBaseVertexOES(const Context *context,
2284                                                 angle::EntryPoint entryPoint,
2285                                                 PrimitiveMode modePacked,
2286                                                 GLsizei count,
2287                                                 DrawElementsType typePacked,
2288                                                 const void *indices,
2289                                                 GLsizei instancecount,
2290                                                 GLint basevertex);
2291 bool ValidateDrawRangeElementsBaseVertexOES(const Context *context,
2292                                             angle::EntryPoint entryPoint,
2293                                             PrimitiveMode modePacked,
2294                                             GLuint start,
2295                                             GLuint end,
2296                                             GLsizei count,
2297                                             DrawElementsType typePacked,
2298                                             const void *indices,
2299                                             GLint basevertex);
2300 
2301 // GL_OES_draw_texture
2302 bool ValidateDrawTexfOES(const Context *context,
2303                          angle::EntryPoint entryPoint,
2304                          GLfloat x,
2305                          GLfloat y,
2306                          GLfloat z,
2307                          GLfloat width,
2308                          GLfloat height);
2309 bool ValidateDrawTexfvOES(const Context *context,
2310                           angle::EntryPoint entryPoint,
2311                           const GLfloat *coords);
2312 bool ValidateDrawTexiOES(const Context *context,
2313                          angle::EntryPoint entryPoint,
2314                          GLint x,
2315                          GLint y,
2316                          GLint z,
2317                          GLint width,
2318                          GLint height);
2319 bool ValidateDrawTexivOES(const Context *context,
2320                           angle::EntryPoint entryPoint,
2321                           const GLint *coords);
2322 bool ValidateDrawTexsOES(const Context *context,
2323                          angle::EntryPoint entryPoint,
2324                          GLshort x,
2325                          GLshort y,
2326                          GLshort z,
2327                          GLshort width,
2328                          GLshort height);
2329 bool ValidateDrawTexsvOES(const Context *context,
2330                           angle::EntryPoint entryPoint,
2331                           const GLshort *coords);
2332 bool ValidateDrawTexxOES(const Context *context,
2333                          angle::EntryPoint entryPoint,
2334                          GLfixed x,
2335                          GLfixed y,
2336                          GLfixed z,
2337                          GLfixed width,
2338                          GLfixed height);
2339 bool ValidateDrawTexxvOES(const Context *context,
2340                           angle::EntryPoint entryPoint,
2341                           const GLfixed *coords);
2342 
2343 // GL_OES_element_index_uint
2344 
2345 // GL_OES_fbo_render_mipmap
2346 
2347 // GL_OES_framebuffer_object
2348 bool ValidateBindFramebufferOES(const Context *context,
2349                                 angle::EntryPoint entryPoint,
2350                                 GLenum target,
2351                                 FramebufferID framebufferPacked);
2352 bool ValidateBindRenderbufferOES(const Context *context,
2353                                  angle::EntryPoint entryPoint,
2354                                  GLenum target,
2355                                  RenderbufferID renderbufferPacked);
2356 bool ValidateCheckFramebufferStatusOES(const Context *context,
2357                                        angle::EntryPoint entryPoint,
2358                                        GLenum target);
2359 bool ValidateDeleteFramebuffersOES(const Context *context,
2360                                    angle::EntryPoint entryPoint,
2361                                    GLsizei n,
2362                                    const FramebufferID *framebuffersPacked);
2363 bool ValidateDeleteRenderbuffersOES(const Context *context,
2364                                     angle::EntryPoint entryPoint,
2365                                     GLsizei n,
2366                                     const RenderbufferID *renderbuffersPacked);
2367 bool ValidateFramebufferRenderbufferOES(const Context *context,
2368                                         angle::EntryPoint entryPoint,
2369                                         GLenum target,
2370                                         GLenum attachment,
2371                                         GLenum renderbuffertarget,
2372                                         RenderbufferID renderbufferPacked);
2373 bool ValidateFramebufferTexture2DOES(const Context *context,
2374                                      angle::EntryPoint entryPoint,
2375                                      GLenum target,
2376                                      GLenum attachment,
2377                                      TextureTarget textargetPacked,
2378                                      TextureID texturePacked,
2379                                      GLint level);
2380 bool ValidateGenFramebuffersOES(const Context *context,
2381                                 angle::EntryPoint entryPoint,
2382                                 GLsizei n,
2383                                 const FramebufferID *framebuffersPacked);
2384 bool ValidateGenRenderbuffersOES(const Context *context,
2385                                  angle::EntryPoint entryPoint,
2386                                  GLsizei n,
2387                                  const RenderbufferID *renderbuffersPacked);
2388 bool ValidateGenerateMipmapOES(const Context *context,
2389                                angle::EntryPoint entryPoint,
2390                                TextureType targetPacked);
2391 bool ValidateGetFramebufferAttachmentParameterivOES(const Context *context,
2392                                                     angle::EntryPoint entryPoint,
2393                                                     GLenum target,
2394                                                     GLenum attachment,
2395                                                     GLenum pname,
2396                                                     const GLint *params);
2397 bool ValidateGetRenderbufferParameterivOES(const Context *context,
2398                                            angle::EntryPoint entryPoint,
2399                                            GLenum target,
2400                                            GLenum pname,
2401                                            const GLint *params);
2402 bool ValidateIsFramebufferOES(const Context *context,
2403                               angle::EntryPoint entryPoint,
2404                               FramebufferID framebufferPacked);
2405 bool ValidateIsRenderbufferOES(const Context *context,
2406                                angle::EntryPoint entryPoint,
2407                                RenderbufferID renderbufferPacked);
2408 bool ValidateRenderbufferStorageOES(const Context *context,
2409                                     angle::EntryPoint entryPoint,
2410                                     GLenum target,
2411                                     GLenum internalformat,
2412                                     GLsizei width,
2413                                     GLsizei height);
2414 
2415 // GL_OES_geometry_shader
2416 bool ValidateFramebufferTextureOES(const Context *context,
2417                                    angle::EntryPoint entryPoint,
2418                                    GLenum target,
2419                                    GLenum attachment,
2420                                    TextureID texturePacked,
2421                                    GLint level);
2422 
2423 // GL_OES_get_program_binary
2424 bool ValidateGetProgramBinaryOES(const Context *context,
2425                                  angle::EntryPoint entryPoint,
2426                                  ShaderProgramID programPacked,
2427                                  GLsizei bufSize,
2428                                  const GLsizei *length,
2429                                  const GLenum *binaryFormat,
2430                                  const void *binary);
2431 bool ValidateProgramBinaryOES(const Context *context,
2432                               angle::EntryPoint entryPoint,
2433                               ShaderProgramID programPacked,
2434                               GLenum binaryFormat,
2435                               const void *binary,
2436                               GLint length);
2437 
2438 // GL_OES_mapbuffer
2439 bool ValidateGetBufferPointervOES(const Context *context,
2440                                   angle::EntryPoint entryPoint,
2441                                   BufferBinding targetPacked,
2442                                   GLenum pname,
2443                                   void *const *params);
2444 bool ValidateMapBufferOES(const Context *context,
2445                           angle::EntryPoint entryPoint,
2446                           BufferBinding targetPacked,
2447                           GLenum access);
2448 bool ValidateUnmapBufferOES(const Context *context,
2449                             angle::EntryPoint entryPoint,
2450                             BufferBinding targetPacked);
2451 
2452 // GL_OES_matrix_palette
2453 bool ValidateCurrentPaletteMatrixOES(const Context *context,
2454                                      angle::EntryPoint entryPoint,
2455                                      GLuint matrixpaletteindex);
2456 bool ValidateLoadPaletteFromModelViewMatrixOES(const Context *context,
2457                                                angle::EntryPoint entryPoint);
2458 bool ValidateMatrixIndexPointerOES(const Context *context,
2459                                    angle::EntryPoint entryPoint,
2460                                    GLint size,
2461                                    GLenum type,
2462                                    GLsizei stride,
2463                                    const void *pointer);
2464 bool ValidateWeightPointerOES(const Context *context,
2465                               angle::EntryPoint entryPoint,
2466                               GLint size,
2467                               GLenum type,
2468                               GLsizei stride,
2469                               const void *pointer);
2470 
2471 // GL_OES_packed_depth_stencil
2472 
2473 // GL_OES_point_size_array
2474 bool ValidatePointSizePointerOES(const Context *context,
2475                                  angle::EntryPoint entryPoint,
2476                                  VertexAttribType typePacked,
2477                                  GLsizei stride,
2478                                  const void *pointer);
2479 
2480 // GL_OES_point_sprite
2481 
2482 // GL_OES_primitive_bounding_box
2483 bool ValidatePrimitiveBoundingBoxOES(const PrivateState &state,
2484                                      ErrorSet *errors,
2485                                      angle::EntryPoint entryPoint,
2486                                      GLfloat minX,
2487                                      GLfloat minY,
2488                                      GLfloat minZ,
2489                                      GLfloat minW,
2490                                      GLfloat maxX,
2491                                      GLfloat maxY,
2492                                      GLfloat maxZ,
2493                                      GLfloat maxW);
2494 
2495 // GL_OES_query_matrix
2496 bool ValidateQueryMatrixxOES(const Context *context,
2497                              angle::EntryPoint entryPoint,
2498                              const GLfixed *mantissa,
2499                              const GLint *exponent);
2500 
2501 // GL_OES_rgb8_rgba8
2502 
2503 // GL_OES_sample_shading
2504 bool ValidateMinSampleShadingOES(const PrivateState &state,
2505                                  ErrorSet *errors,
2506                                  angle::EntryPoint entryPoint,
2507                                  GLfloat value);
2508 
2509 // GL_OES_sample_variables
2510 
2511 // GL_OES_shader_image_atomic
2512 
2513 // GL_OES_shader_io_blocks
2514 
2515 // GL_OES_shader_multisample_interpolation
2516 
2517 // GL_OES_standard_derivatives
2518 
2519 // GL_OES_surfaceless_context
2520 
2521 // GL_OES_texture_3D
2522 bool ValidateCompressedTexImage3DOES(const Context *context,
2523                                      angle::EntryPoint entryPoint,
2524                                      TextureTarget targetPacked,
2525                                      GLint level,
2526                                      GLenum internalformat,
2527                                      GLsizei width,
2528                                      GLsizei height,
2529                                      GLsizei depth,
2530                                      GLint border,
2531                                      GLsizei imageSize,
2532                                      const void *data);
2533 bool ValidateCompressedTexSubImage3DOES(const Context *context,
2534                                         angle::EntryPoint entryPoint,
2535                                         TextureTarget targetPacked,
2536                                         GLint level,
2537                                         GLint xoffset,
2538                                         GLint yoffset,
2539                                         GLint zoffset,
2540                                         GLsizei width,
2541                                         GLsizei height,
2542                                         GLsizei depth,
2543                                         GLenum format,
2544                                         GLsizei imageSize,
2545                                         const void *data);
2546 bool ValidateCopyTexSubImage3DOES(const Context *context,
2547                                   angle::EntryPoint entryPoint,
2548                                   TextureTarget targetPacked,
2549                                   GLint level,
2550                                   GLint xoffset,
2551                                   GLint yoffset,
2552                                   GLint zoffset,
2553                                   GLint x,
2554                                   GLint y,
2555                                   GLsizei width,
2556                                   GLsizei height);
2557 bool ValidateFramebufferTexture3DOES(const Context *context,
2558                                      angle::EntryPoint entryPoint,
2559                                      GLenum target,
2560                                      GLenum attachment,
2561                                      TextureTarget textargetPacked,
2562                                      TextureID texturePacked,
2563                                      GLint level,
2564                                      GLint zoffset);
2565 bool ValidateTexImage3DOES(const Context *context,
2566                            angle::EntryPoint entryPoint,
2567                            TextureTarget targetPacked,
2568                            GLint level,
2569                            GLenum internalformat,
2570                            GLsizei width,
2571                            GLsizei height,
2572                            GLsizei depth,
2573                            GLint border,
2574                            GLenum format,
2575                            GLenum type,
2576                            const void *pixels);
2577 bool ValidateTexSubImage3DOES(const Context *context,
2578                               angle::EntryPoint entryPoint,
2579                               TextureTarget targetPacked,
2580                               GLint level,
2581                               GLint xoffset,
2582                               GLint yoffset,
2583                               GLint zoffset,
2584                               GLsizei width,
2585                               GLsizei height,
2586                               GLsizei depth,
2587                               GLenum format,
2588                               GLenum type,
2589                               const void *pixels);
2590 
2591 // GL_OES_texture_border_clamp
2592 bool ValidateGetSamplerParameterIivOES(const Context *context,
2593                                        angle::EntryPoint entryPoint,
2594                                        SamplerID samplerPacked,
2595                                        GLenum pname,
2596                                        const GLint *params);
2597 bool ValidateGetSamplerParameterIuivOES(const Context *context,
2598                                         angle::EntryPoint entryPoint,
2599                                         SamplerID samplerPacked,
2600                                         GLenum pname,
2601                                         const GLuint *params);
2602 bool ValidateGetTexParameterIivOES(const Context *context,
2603                                    angle::EntryPoint entryPoint,
2604                                    TextureType targetPacked,
2605                                    GLenum pname,
2606                                    const GLint *params);
2607 bool ValidateGetTexParameterIuivOES(const Context *context,
2608                                     angle::EntryPoint entryPoint,
2609                                     TextureType targetPacked,
2610                                     GLenum pname,
2611                                     const GLuint *params);
2612 bool ValidateSamplerParameterIivOES(const Context *context,
2613                                     angle::EntryPoint entryPoint,
2614                                     SamplerID samplerPacked,
2615                                     GLenum pname,
2616                                     const GLint *param);
2617 bool ValidateSamplerParameterIuivOES(const Context *context,
2618                                      angle::EntryPoint entryPoint,
2619                                      SamplerID samplerPacked,
2620                                      GLenum pname,
2621                                      const GLuint *param);
2622 bool ValidateTexParameterIivOES(const Context *context,
2623                                 angle::EntryPoint entryPoint,
2624                                 TextureType targetPacked,
2625                                 GLenum pname,
2626                                 const GLint *params);
2627 bool ValidateTexParameterIuivOES(const Context *context,
2628                                  angle::EntryPoint entryPoint,
2629                                  TextureType targetPacked,
2630                                  GLenum pname,
2631                                  const GLuint *params);
2632 
2633 // GL_OES_texture_buffer
2634 bool ValidateTexBufferOES(const Context *context,
2635                           angle::EntryPoint entryPoint,
2636                           TextureType targetPacked,
2637                           GLenum internalformat,
2638                           BufferID bufferPacked);
2639 bool ValidateTexBufferRangeOES(const Context *context,
2640                                angle::EntryPoint entryPoint,
2641                                TextureType targetPacked,
2642                                GLenum internalformat,
2643                                BufferID bufferPacked,
2644                                GLintptr offset,
2645                                GLsizeiptr size);
2646 
2647 // GL_OES_texture_compression_astc
2648 
2649 // GL_OES_texture_cube_map
2650 bool ValidateGetTexGenfvOES(const Context *context,
2651                             angle::EntryPoint entryPoint,
2652                             GLenum coord,
2653                             GLenum pname,
2654                             const GLfloat *params);
2655 bool ValidateGetTexGenivOES(const Context *context,
2656                             angle::EntryPoint entryPoint,
2657                             GLenum coord,
2658                             GLenum pname,
2659                             const GLint *params);
2660 bool ValidateGetTexGenxvOES(const Context *context,
2661                             angle::EntryPoint entryPoint,
2662                             GLenum coord,
2663                             GLenum pname,
2664                             const GLfixed *params);
2665 bool ValidateTexGenfOES(const Context *context,
2666                         angle::EntryPoint entryPoint,
2667                         GLenum coord,
2668                         GLenum pname,
2669                         GLfloat param);
2670 bool ValidateTexGenfvOES(const Context *context,
2671                          angle::EntryPoint entryPoint,
2672                          GLenum coord,
2673                          GLenum pname,
2674                          const GLfloat *params);
2675 bool ValidateTexGeniOES(const Context *context,
2676                         angle::EntryPoint entryPoint,
2677                         GLenum coord,
2678                         GLenum pname,
2679                         GLint param);
2680 bool ValidateTexGenivOES(const Context *context,
2681                          angle::EntryPoint entryPoint,
2682                          GLenum coord,
2683                          GLenum pname,
2684                          const GLint *params);
2685 bool ValidateTexGenxOES(const Context *context,
2686                         angle::EntryPoint entryPoint,
2687                         GLenum coord,
2688                         GLenum pname,
2689                         GLfixed param);
2690 bool ValidateTexGenxvOES(const Context *context,
2691                          angle::EntryPoint entryPoint,
2692                          GLenum coord,
2693                          GLenum pname,
2694                          const GLfixed *params);
2695 
2696 // GL_OES_texture_cube_map_array
2697 
2698 // GL_OES_texture_float
2699 
2700 // GL_OES_texture_float_linear
2701 
2702 // GL_OES_texture_half_float
2703 
2704 // GL_OES_texture_half_float_linear
2705 
2706 // GL_OES_texture_npot
2707 
2708 // GL_OES_texture_stencil8
2709 
2710 // GL_OES_texture_storage_multisample_2d_array
2711 bool ValidateTexStorage3DMultisampleOES(const Context *context,
2712                                         angle::EntryPoint entryPoint,
2713                                         TextureType targetPacked,
2714                                         GLsizei samples,
2715                                         GLenum internalformat,
2716                                         GLsizei width,
2717                                         GLsizei height,
2718                                         GLsizei depth,
2719                                         GLboolean fixedsamplelocations);
2720 
2721 // GL_OES_vertex_array_object
2722 bool ValidateBindVertexArrayOES(const Context *context,
2723                                 angle::EntryPoint entryPoint,
2724                                 VertexArrayID arrayPacked);
2725 bool ValidateDeleteVertexArraysOES(const Context *context,
2726                                    angle::EntryPoint entryPoint,
2727                                    GLsizei n,
2728                                    const VertexArrayID *arraysPacked);
2729 bool ValidateGenVertexArraysOES(const Context *context,
2730                                 angle::EntryPoint entryPoint,
2731                                 GLsizei n,
2732                                 const VertexArrayID *arraysPacked);
2733 bool ValidateIsVertexArrayOES(const Context *context,
2734                               angle::EntryPoint entryPoint,
2735                               VertexArrayID arrayPacked);
2736 
2737 // GL_OES_vertex_half_float
2738 
2739 // GL_OES_vertex_type_10_10_10_2
2740 
2741 // GL_OVR_multiview
2742 bool ValidateFramebufferTextureMultiviewOVR(const Context *context,
2743                                             angle::EntryPoint entryPoint,
2744                                             GLenum target,
2745                                             GLenum attachment,
2746                                             TextureID texturePacked,
2747                                             GLint level,
2748                                             GLint baseViewIndex,
2749                                             GLsizei numViews);
2750 
2751 // GL_OVR_multiview2
2752 
2753 // GL_QCOM_render_shared_exponent
2754 
2755 // GL_QCOM_shading_rate
2756 bool ValidateShadingRateQCOM(const PrivateState &state,
2757                              ErrorSet *errors,
2758                              angle::EntryPoint entryPoint,
2759                              GLenum rate);
2760 }  // namespace gl
2761 
2762 #endif  // LIBANGLE_VALIDATION_ESEXT_AUTOGEN_H_
2763