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