• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2019 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // validationES32.cpp: Validation functions for OpenGL ES 3.2 entry point parameters
8 
9 #include "libANGLE/validationES32_autogen.h"
10 
11 #include "libANGLE/Context.h"
12 #include "libANGLE/ErrorStrings.h"
13 #include "libANGLE/Framebuffer.h"
14 #include "libANGLE/VertexArray.h"
15 #include "libANGLE/validationES.h"
16 #include "libANGLE/validationES2_autogen.h"
17 #include "libANGLE/validationES31.h"
18 #include "libANGLE/validationES31_autogen.h"
19 #include "libANGLE/validationES3_autogen.h"
20 
21 #include "common/utilities.h"
22 
23 using namespace angle;
24 
25 namespace gl
26 {
27 using namespace err;
28 
ValidateBlendBarrier(const Context * context,angle::EntryPoint entryPoint)29 bool ValidateBlendBarrier(const Context *context, angle::EntryPoint entryPoint)
30 {
31     return true;
32 }
33 
ValidateBlendEquationSeparatei(const Context * context,angle::EntryPoint entryPoint,GLuint buf,GLenum modeRGB,GLenum modeAlpha)34 bool ValidateBlendEquationSeparatei(const Context *context,
35                                     angle::EntryPoint entryPoint,
36                                     GLuint buf,
37                                     GLenum modeRGB,
38                                     GLenum modeAlpha)
39 {
40     if (buf >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
41     {
42         context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers);
43         return false;
44     }
45 
46     if (!ValidateBlendEquationSeparate(context, entryPoint, modeRGB, modeAlpha))
47     {
48         // error already generated
49         return false;
50     }
51 
52     return true;
53 }
54 
ValidateBlendEquationi(const Context * context,angle::EntryPoint entryPoint,GLuint buf,GLenum mode)55 bool ValidateBlendEquationi(const Context *context,
56                             angle::EntryPoint entryPoint,
57                             GLuint buf,
58                             GLenum mode)
59 {
60     if (buf >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
61     {
62         context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers);
63         return false;
64     }
65 
66     if (!ValidateBlendEquation(context, entryPoint, mode))
67     {
68         // error already generated
69         return false;
70     }
71 
72     return true;
73 }
74 
ValidateBlendFuncSeparatei(const Context * context,angle::EntryPoint entryPoint,GLuint buf,GLenum srcRGB,GLenum dstRGB,GLenum srcAlpha,GLenum dstAlpha)75 bool ValidateBlendFuncSeparatei(const Context *context,
76                                 angle::EntryPoint entryPoint,
77                                 GLuint buf,
78                                 GLenum srcRGB,
79                                 GLenum dstRGB,
80                                 GLenum srcAlpha,
81                                 GLenum dstAlpha)
82 {
83     if (buf >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
84     {
85         context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers);
86         return false;
87     }
88 
89     if (!ValidateBlendFuncSeparate(context, entryPoint, srcRGB, dstRGB, srcAlpha, dstAlpha))
90     {
91         // error already generated
92         return false;
93     }
94 
95     return true;
96 }
97 
ValidateBlendFunci(const Context * context,angle::EntryPoint entryPoint,GLuint buf,GLenum src,GLenum dst)98 bool ValidateBlendFunci(const Context *context,
99                         angle::EntryPoint entryPoint,
100                         GLuint buf,
101                         GLenum src,
102                         GLenum dst)
103 {
104     if (buf >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
105     {
106         context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers);
107         return false;
108     }
109 
110     if (!ValidateBlendFunc(context, entryPoint, src, dst))
111     {
112         // error already generated
113         return false;
114     }
115 
116     return true;
117 }
118 
ValidateColorMaski(const Context * context,angle::EntryPoint entryPoint,GLuint index,GLboolean r,GLboolean g,GLboolean b,GLboolean a)119 bool ValidateColorMaski(const Context *context,
120                         angle::EntryPoint entryPoint,
121                         GLuint index,
122                         GLboolean r,
123                         GLboolean g,
124                         GLboolean b,
125                         GLboolean a)
126 {
127     if (index >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
128     {
129         context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer);
130         return false;
131     }
132 
133     return true;
134 }
135 
ValidateCopyImageSubData(const Context * context,angle::EntryPoint entryPoint,GLuint srcName,GLenum srcTarget,GLint srcLevel,GLint srcX,GLint srcY,GLint srcZ,GLuint dstName,GLenum dstTarget,GLint dstLevel,GLint dstX,GLint dstY,GLint dstZ,GLsizei srcWidth,GLsizei srcHeight,GLsizei srcDepth)136 bool ValidateCopyImageSubData(const Context *context,
137                               angle::EntryPoint entryPoint,
138                               GLuint srcName,
139                               GLenum srcTarget,
140                               GLint srcLevel,
141                               GLint srcX,
142                               GLint srcY,
143                               GLint srcZ,
144                               GLuint dstName,
145                               GLenum dstTarget,
146                               GLint dstLevel,
147                               GLint dstX,
148                               GLint dstY,
149                               GLint dstZ,
150                               GLsizei srcWidth,
151                               GLsizei srcHeight,
152                               GLsizei srcDepth)
153 {
154     if (context->getClientVersion() < ES_3_2)
155     {
156         context->validationError(entryPoint, GL_INVALID_OPERATION, kES32Required);
157         return false;
158     }
159 
160     return ValidateCopyImageSubDataBase(context, entryPoint, srcName, srcTarget, srcLevel, srcX,
161                                         srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ,
162                                         srcWidth, srcHeight, srcDepth);
163 }
164 
ValidateDebugMessageCallback(const Context * context,angle::EntryPoint entryPoint,GLDEBUGPROC callback,const void * userParam)165 bool ValidateDebugMessageCallback(const Context *context,
166                                   angle::EntryPoint entryPoint,
167                                   GLDEBUGPROC callback,
168                                   const void *userParam)
169 {
170     return true;
171 }
172 
ValidateDebugMessageControl(const Context * context,angle::EntryPoint entryPoint,GLenum source,GLenum type,GLenum severity,GLsizei count,const GLuint * ids,GLboolean enabled)173 bool ValidateDebugMessageControl(const Context *context,
174                                  angle::EntryPoint entryPoint,
175                                  GLenum source,
176                                  GLenum type,
177                                  GLenum severity,
178                                  GLsizei count,
179                                  const GLuint *ids,
180                                  GLboolean enabled)
181 {
182     return true;
183 }
184 
ValidateDebugMessageInsert(const Context * context,angle::EntryPoint entryPoint,GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar * buf)185 bool ValidateDebugMessageInsert(const Context *context,
186                                 angle::EntryPoint entryPoint,
187                                 GLenum source,
188                                 GLenum type,
189                                 GLuint id,
190                                 GLenum severity,
191                                 GLsizei length,
192                                 const GLchar *buf)
193 {
194     return true;
195 }
196 
ValidateDisablei(const Context * context,angle::EntryPoint entryPoint,GLenum target,GLuint index)197 bool ValidateDisablei(const Context *context,
198                       angle::EntryPoint entryPoint,
199                       GLenum target,
200                       GLuint index)
201 {
202     switch (target)
203     {
204         case GL_BLEND:
205             if (index >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
206             {
207                 context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer);
208                 return false;
209             }
210             break;
211         default:
212             context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported);
213             return false;
214     }
215     return true;
216 }
217 
ValidateDrawElementsBaseVertex(const Context * context,angle::EntryPoint entryPoint,PrimitiveMode mode,GLsizei count,DrawElementsType type,const void * indices,GLint basevertex)218 bool ValidateDrawElementsBaseVertex(const Context *context,
219                                     angle::EntryPoint entryPoint,
220                                     PrimitiveMode mode,
221                                     GLsizei count,
222                                     DrawElementsType type,
223                                     const void *indices,
224                                     GLint basevertex)
225 {
226     return ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 1);
227 }
228 
ValidateDrawElementsInstancedBaseVertex(const Context * context,angle::EntryPoint entryPoint,PrimitiveMode mode,GLsizei count,DrawElementsType type,const void * indices,GLsizei instancecount,GLint basevertex)229 bool ValidateDrawElementsInstancedBaseVertex(const Context *context,
230                                              angle::EntryPoint entryPoint,
231                                              PrimitiveMode mode,
232                                              GLsizei count,
233                                              DrawElementsType type,
234                                              const void *indices,
235                                              GLsizei instancecount,
236                                              GLint basevertex)
237 {
238     return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices,
239                                              instancecount);
240 }
241 
ValidateDrawRangeElementsBaseVertex(const Context * context,angle::EntryPoint entryPoint,PrimitiveMode mode,GLuint start,GLuint end,GLsizei count,DrawElementsType type,const void * indices,GLint basevertex)242 bool ValidateDrawRangeElementsBaseVertex(const Context *context,
243                                          angle::EntryPoint entryPoint,
244                                          PrimitiveMode mode,
245                                          GLuint start,
246                                          GLuint end,
247                                          GLsizei count,
248                                          DrawElementsType type,
249                                          const void *indices,
250                                          GLint basevertex)
251 {
252     if (end < start)
253     {
254         context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidElementRange);
255         return false;
256     }
257 
258     if (!ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 0))
259     {
260         return false;
261     }
262 
263     // Skip range checks for no-op calls.
264     if (count <= 0)
265     {
266         return true;
267     }
268 
269     return true;
270 }
271 
ValidateEnablei(const Context * context,angle::EntryPoint entryPoint,GLenum target,GLuint index)272 bool ValidateEnablei(const Context *context,
273                      angle::EntryPoint entryPoint,
274                      GLenum target,
275                      GLuint index)
276 {
277     switch (target)
278     {
279         case GL_BLEND:
280             if (index >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
281             {
282                 context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer);
283                 return false;
284             }
285             break;
286         default:
287             context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported);
288             return false;
289     }
290     return true;
291 }
292 
ValidateFramebufferTexture(const Context * context,angle::EntryPoint entryPoint,GLenum target,GLenum attachment,TextureID texture,GLint level)293 bool ValidateFramebufferTexture(const Context *context,
294                                 angle::EntryPoint entryPoint,
295                                 GLenum target,
296                                 GLenum attachment,
297                                 TextureID texture,
298                                 GLint level)
299 {
300     return true;
301 }
302 
ValidateGetDebugMessageLog(const Context * context,angle::EntryPoint entryPoint,GLuint count,GLsizei bufSize,const GLenum * sources,const GLenum * types,const GLuint * ids,const GLenum * severities,const GLsizei * lengths,const GLchar * messageLog)303 bool ValidateGetDebugMessageLog(const Context *context,
304                                 angle::EntryPoint entryPoint,
305                                 GLuint count,
306                                 GLsizei bufSize,
307                                 const GLenum *sources,
308                                 const GLenum *types,
309                                 const GLuint *ids,
310                                 const GLenum *severities,
311                                 const GLsizei *lengths,
312                                 const GLchar *messageLog)
313 {
314     return true;
315 }
316 
ValidateGetGraphicsResetStatus(const Context * context,angle::EntryPoint entryPoint)317 bool ValidateGetGraphicsResetStatus(const Context *context, angle::EntryPoint entryPoint)
318 {
319     return true;
320 }
321 
ValidateGetObjectLabel(const Context * context,angle::EntryPoint entryPoint,GLenum identifier,GLuint name,GLsizei bufSize,const GLsizei * length,const GLchar * label)322 bool ValidateGetObjectLabel(const Context *context,
323                             angle::EntryPoint entryPoint,
324                             GLenum identifier,
325                             GLuint name,
326                             GLsizei bufSize,
327                             const GLsizei *length,
328                             const GLchar *label)
329 {
330     return true;
331 }
332 
ValidateGetObjectPtrLabel(const Context * context,angle::EntryPoint entryPoint,const void * ptr,GLsizei bufSize,const GLsizei * length,const GLchar * label)333 bool ValidateGetObjectPtrLabel(const Context *context,
334                                angle::EntryPoint entryPoint,
335                                const void *ptr,
336                                GLsizei bufSize,
337                                const GLsizei *length,
338                                const GLchar *label)
339 {
340     return true;
341 }
342 
ValidateGetPointerv(const Context * context,angle::EntryPoint entryPoint,GLenum pname,void * const * params)343 bool ValidateGetPointerv(const Context *context,
344                          angle::EntryPoint entryPoint,
345                          GLenum pname,
346                          void *const *params)
347 {
348     Version clientVersion = context->getClientVersion();
349 
350     if ((clientVersion == ES_1_0) || (clientVersion == ES_1_1))
351     {
352         switch (pname)
353         {
354             case GL_VERTEX_ARRAY_POINTER:
355             case GL_NORMAL_ARRAY_POINTER:
356             case GL_COLOR_ARRAY_POINTER:
357             case GL_TEXTURE_COORD_ARRAY_POINTER:
358             case GL_POINT_SIZE_ARRAY_POINTER_OES:
359                 return true;
360             default:
361                 context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointerQuery);
362                 return false;
363         }
364     }
365     else if (clientVersion == ES_3_2)
366     {
367         switch (pname)
368         {
369             case GL_DEBUG_CALLBACK_FUNCTION:
370             case GL_DEBUG_CALLBACK_USER_PARAM:
371                 return true;
372             default:
373                 context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointerQuery);
374                 return false;
375         }
376     }
377     else
378     {
379         context->validationError(entryPoint, GL_INVALID_OPERATION, kES1or32Required);
380         return false;
381     }
382 }
383 
ValidateGetSamplerParameterIiv(const Context * context,angle::EntryPoint entryPoint,SamplerID sampler,GLenum pname,const GLint * params)384 bool ValidateGetSamplerParameterIiv(const Context *context,
385                                     angle::EntryPoint entryPoint,
386                                     SamplerID sampler,
387                                     GLenum pname,
388                                     const GLint *params)
389 {
390     return true;
391 }
392 
ValidateGetSamplerParameterIuiv(const Context * context,angle::EntryPoint entryPoint,SamplerID sampler,GLenum pname,const GLuint * params)393 bool ValidateGetSamplerParameterIuiv(const Context *context,
394                                      angle::EntryPoint entryPoint,
395                                      SamplerID sampler,
396                                      GLenum pname,
397                                      const GLuint *params)
398 {
399     return true;
400 }
401 
ValidateGetTexParameterIiv(const Context * context,angle::EntryPoint entryPoint,TextureType targetPacked,GLenum pname,const GLint * params)402 bool ValidateGetTexParameterIiv(const Context *context,
403                                 angle::EntryPoint entryPoint,
404                                 TextureType targetPacked,
405                                 GLenum pname,
406                                 const GLint *params)
407 {
408     return true;
409 }
410 
ValidateGetTexParameterIuiv(const Context * context,angle::EntryPoint entryPoint,TextureType targetPacked,GLenum pname,const GLuint * params)411 bool ValidateGetTexParameterIuiv(const Context *context,
412                                  angle::EntryPoint entryPoint,
413                                  TextureType targetPacked,
414                                  GLenum pname,
415                                  const GLuint *params)
416 {
417     return true;
418 }
419 
ValidateGetnUniformfv(const Context * context,angle::EntryPoint entryPoint,ShaderProgramID program,UniformLocation location,GLsizei bufSize,const GLfloat * params)420 bool ValidateGetnUniformfv(const Context *context,
421                            angle::EntryPoint entryPoint,
422                            ShaderProgramID program,
423                            UniformLocation location,
424                            GLsizei bufSize,
425                            const GLfloat *params)
426 {
427     return ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, nullptr);
428 }
429 
ValidateGetnUniformiv(const Context * context,angle::EntryPoint entryPoint,ShaderProgramID program,UniformLocation location,GLsizei bufSize,const GLint * params)430 bool ValidateGetnUniformiv(const Context *context,
431                            angle::EntryPoint entryPoint,
432                            ShaderProgramID program,
433                            UniformLocation location,
434                            GLsizei bufSize,
435                            const GLint *params)
436 {
437     return ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, nullptr);
438 }
439 
ValidateGetnUniformuiv(const Context * context,angle::EntryPoint entryPoint,ShaderProgramID program,UniformLocation location,GLsizei bufSize,const GLuint * params)440 bool ValidateGetnUniformuiv(const Context *context,
441                             angle::EntryPoint entryPoint,
442                             ShaderProgramID program,
443                             UniformLocation location,
444                             GLsizei bufSize,
445                             const GLuint *params)
446 {
447     return ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, nullptr);
448 }
449 
ValidateIsEnabledi(const Context * context,angle::EntryPoint entryPoint,GLenum target,GLuint index)450 bool ValidateIsEnabledi(const Context *context,
451                         angle::EntryPoint entryPoint,
452                         GLenum target,
453                         GLuint index)
454 {
455     switch (target)
456     {
457         case GL_BLEND:
458             if (index >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
459             {
460                 context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer);
461                 return false;
462             }
463             break;
464         default:
465             context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported);
466             return false;
467     }
468     return true;
469 }
470 
ValidateMinSampleShading(const Context * context,angle::EntryPoint entryPoint,GLfloat value)471 bool ValidateMinSampleShading(const Context *context, angle::EntryPoint entryPoint, GLfloat value)
472 {
473     return true;
474 }
475 
ValidateObjectLabel(const Context * context,angle::EntryPoint entryPoint,GLenum identifier,GLuint name,GLsizei length,const GLchar * label)476 bool ValidateObjectLabel(const Context *context,
477                          angle::EntryPoint entryPoint,
478                          GLenum identifier,
479                          GLuint name,
480                          GLsizei length,
481                          const GLchar *label)
482 {
483     return true;
484 }
485 
ValidateObjectPtrLabel(const Context * context,angle::EntryPoint entryPoint,const void * ptr,GLsizei length,const GLchar * label)486 bool ValidateObjectPtrLabel(const Context *context,
487                             angle::EntryPoint entryPoint,
488                             const void *ptr,
489                             GLsizei length,
490                             const GLchar *label)
491 {
492     return true;
493 }
494 
ValidatePatchParameteri(const Context * context,angle::EntryPoint entryPoint,GLenum pname,GLint value)495 bool ValidatePatchParameteri(const Context *context,
496                              angle::EntryPoint entryPoint,
497                              GLenum pname,
498                              GLint value)
499 {
500     return true;
501 }
502 
ValidatePopDebugGroup(const Context * context,angle::EntryPoint entryPoint)503 bool ValidatePopDebugGroup(const Context *context, angle::EntryPoint entryPoint)
504 {
505     return true;
506 }
507 
ValidatePrimitiveBoundingBox(const Context * context,angle::EntryPoint entryPoint,GLfloat minX,GLfloat minY,GLfloat minZ,GLfloat minW,GLfloat maxX,GLfloat maxY,GLfloat maxZ,GLfloat maxW)508 bool ValidatePrimitiveBoundingBox(const Context *context,
509                                   angle::EntryPoint entryPoint,
510                                   GLfloat minX,
511                                   GLfloat minY,
512                                   GLfloat minZ,
513                                   GLfloat minW,
514                                   GLfloat maxX,
515                                   GLfloat maxY,
516                                   GLfloat maxZ,
517                                   GLfloat maxW)
518 {
519     return true;
520 }
521 
ValidatePushDebugGroup(const Context * context,angle::EntryPoint entryPoint,GLenum source,GLuint id,GLsizei length,const GLchar * message)522 bool ValidatePushDebugGroup(const Context *context,
523                             angle::EntryPoint entryPoint,
524                             GLenum source,
525                             GLuint id,
526                             GLsizei length,
527                             const GLchar *message)
528 {
529     return true;
530 }
531 
ValidateReadnPixels(const Context * context,angle::EntryPoint entryPoint,GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,GLsizei bufSize,const void * data)532 bool ValidateReadnPixels(const Context *context,
533                          angle::EntryPoint entryPoint,
534                          GLint x,
535                          GLint y,
536                          GLsizei width,
537                          GLsizei height,
538                          GLenum format,
539                          GLenum type,
540                          GLsizei bufSize,
541                          const void *data)
542 {
543     return true;
544 }
545 
ValidateSamplerParameterIiv(const Context * context,angle::EntryPoint entryPoint,SamplerID sampler,GLenum pname,const GLint * param)546 bool ValidateSamplerParameterIiv(const Context *context,
547                                  angle::EntryPoint entryPoint,
548                                  SamplerID sampler,
549                                  GLenum pname,
550                                  const GLint *param)
551 {
552     return true;
553 }
554 
ValidateSamplerParameterIuiv(const Context * context,angle::EntryPoint entryPoint,SamplerID sampler,GLenum pname,const GLuint * param)555 bool ValidateSamplerParameterIuiv(const Context *context,
556                                   angle::EntryPoint entryPoint,
557                                   SamplerID sampler,
558                                   GLenum pname,
559                                   const GLuint *param)
560 {
561     return true;
562 }
563 
ValidateTexBuffer(const Context * context,angle::EntryPoint entryPoint,TextureType target,GLenum internalformat,BufferID buffer)564 bool ValidateTexBuffer(const Context *context,
565                        angle::EntryPoint entryPoint,
566                        TextureType target,
567                        GLenum internalformat,
568                        BufferID buffer)
569 {
570     if (context->getClientVersion() < ES_3_2)
571     {
572         context->validationError(entryPoint, GL_INVALID_OPERATION, kES32Required);
573         return false;
574     }
575 
576     return ValidateTexBufferBase(context, entryPoint, target, internalformat, buffer);
577 }
578 
ValidateTexBufferRange(const Context * context,angle::EntryPoint entryPoint,TextureType target,GLenum internalformat,BufferID buffer,GLintptr offset,GLsizeiptr size)579 bool ValidateTexBufferRange(const Context *context,
580                             angle::EntryPoint entryPoint,
581                             TextureType target,
582                             GLenum internalformat,
583                             BufferID buffer,
584                             GLintptr offset,
585                             GLsizeiptr size)
586 {
587     if (context->getClientVersion() < ES_3_2)
588     {
589         context->validationError(entryPoint, GL_INVALID_OPERATION, kES32Required);
590         return false;
591     }
592 
593     return ValidateTexBufferRangeBase(context, entryPoint, target, internalformat, buffer, offset,
594                                       size);
595 }
596 
ValidateTexParameterIiv(const Context * context,angle::EntryPoint entryPoint,TextureType targetPacked,GLenum pname,const GLint * params)597 bool ValidateTexParameterIiv(const Context *context,
598                              angle::EntryPoint entryPoint,
599                              TextureType targetPacked,
600                              GLenum pname,
601                              const GLint *params)
602 {
603     return true;
604 }
605 
ValidateTexParameterIuiv(const Context * context,angle::EntryPoint entryPoint,TextureType targetPacked,GLenum pname,const GLuint * params)606 bool ValidateTexParameterIuiv(const Context *context,
607                               angle::EntryPoint entryPoint,
608                               TextureType targetPacked,
609                               GLenum pname,
610                               const GLuint *params)
611 {
612     return true;
613 }
614 
ValidateTexStorage3DMultisample(const Context * context,angle::EntryPoint entryPoint,TextureType targetPacked,GLsizei samples,GLenum internalformat,GLsizei width,GLsizei height,GLsizei depth,GLboolean fixedsamplelocations)615 bool ValidateTexStorage3DMultisample(const Context *context,
616                                      angle::EntryPoint entryPoint,
617                                      TextureType targetPacked,
618                                      GLsizei samples,
619                                      GLenum internalformat,
620                                      GLsizei width,
621                                      GLsizei height,
622                                      GLsizei depth,
623                                      GLboolean fixedsamplelocations)
624 {
625     return true;
626 }
627 
628 }  // namespace gl
629