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