xref: /aosp_15_r20/external/angle/src/libANGLE/validationES31.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2018 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 // validationES31.h:
7 //  Inlined validation functions for OpenGL ES 3.1 entry points.
8 
9 #ifndef LIBANGLE_VALIDATION_ES31_H_
10 #define LIBANGLE_VALIDATION_ES31_H_
11 
12 #include "libANGLE/ErrorStrings.h"
13 #include "libANGLE/validationES31_autogen.h"
14 
15 namespace gl
16 {
17 
18 bool ValidateTexBufferBase(const Context *context,
19                            angle::EntryPoint entryPoint,
20                            TextureType target,
21                            GLenum internalformat,
22                            BufferID bufferPacked);
23 bool ValidateTexBufferRangeBase(const Context *context,
24                                 angle::EntryPoint entryPoint,
25                                 TextureType target,
26                                 GLenum internalformat,
27                                 BufferID bufferPacked,
28                                 GLintptr offset,
29                                 GLsizeiptr size);
30 
31 // GL_EXT_geometry_shader
32 bool ValidateFramebufferTextureCommon(const Context *context,
33                                       angle::EntryPoint entryPoint,
34                                       GLenum target,
35                                       GLenum attachment,
36                                       TextureID texture,
37                                       GLint level);
38 
39 // GL_EXT_multi_draw_indirect
40 bool ValidateMultiDrawIndirectBase(const Context *context,
41                                    angle::EntryPoint entryPoint,
42                                    GLsizei drawcount,
43                                    GLsizei stride);
44 
45 // GL_EXT_separate_shader_objects
46 bool ValidateActiveShaderProgramBase(const Context *context,
47                                      angle::EntryPoint entryPoint,
48                                      ProgramPipelineID pipelinePacked,
49                                      ShaderProgramID programPacked);
50 bool ValidateBindProgramPipelineBase(const Context *context,
51                                      angle::EntryPoint entryPoint,
52                                      ProgramPipelineID pipelinePacked);
53 bool ValidateCreateShaderProgramvBase(const Context *context,
54                                       angle::EntryPoint entryPoint,
55                                       ShaderType typePacked,
56                                       GLsizei count,
57                                       const GLchar **strings);
58 bool ValidateDeleteProgramPipelinesBase(const Context *context,
59                                         angle::EntryPoint entryPoint,
60                                         GLsizei n,
61                                         const ProgramPipelineID *pipelinesPacked);
62 bool ValidateGenProgramPipelinesBase(const Context *context,
63                                      angle::EntryPoint entryPoint,
64                                      GLsizei n,
65                                      const ProgramPipelineID *pipelinesPacked);
66 bool ValidateGetProgramPipelineInfoLogBase(const Context *context,
67                                            angle::EntryPoint entryPoint,
68                                            ProgramPipelineID pipelinePacked,
69                                            GLsizei bufSize,
70                                            const GLsizei *length,
71                                            const GLchar *infoLog);
72 bool ValidateGetProgramPipelineivBase(const Context *context,
73                                       angle::EntryPoint entryPoint,
74                                       ProgramPipelineID pipelinePacked,
75                                       GLenum pname,
76                                       const GLint *params);
77 bool ValidateIsProgramPipelineBase(const Context *context,
78                                    angle::EntryPoint entryPoint,
79                                    ProgramPipelineID pipelinePacked);
80 bool ValidateProgramParameteriBase(const Context *context,
81                                    angle::EntryPoint entryPoint,
82                                    ShaderProgramID programPacked,
83                                    GLenum pname,
84                                    GLint value);
85 bool ValidateProgramUniform1fBase(const Context *context,
86                                   angle::EntryPoint entryPoint,
87                                   ShaderProgramID programPacked,
88                                   UniformLocation locationPacked,
89                                   GLfloat v0);
90 bool ValidateProgramUniform1fvBase(const Context *context,
91                                    angle::EntryPoint entryPoint,
92                                    ShaderProgramID programPacked,
93                                    UniformLocation locationPacked,
94                                    GLsizei count,
95                                    const GLfloat *value);
96 bool ValidateProgramUniform1iBase(const Context *context,
97                                   angle::EntryPoint entryPoint,
98                                   ShaderProgramID programPacked,
99                                   UniformLocation locationPacked,
100                                   GLint v0);
101 bool ValidateProgramUniform1ivBase(const Context *context,
102                                    angle::EntryPoint entryPoint,
103                                    ShaderProgramID programPacked,
104                                    UniformLocation locationPacked,
105                                    GLsizei count,
106                                    const GLint *value);
107 bool ValidateProgramUniform1uiBase(const Context *context,
108                                    angle::EntryPoint entryPoint,
109                                    ShaderProgramID programPacked,
110                                    UniformLocation locationPacked,
111                                    GLuint v0);
112 bool ValidateProgramUniform1uivBase(const Context *context,
113                                     angle::EntryPoint entryPoint,
114                                     ShaderProgramID programPacked,
115                                     UniformLocation locationPacked,
116                                     GLsizei count,
117                                     const GLuint *value);
118 bool ValidateProgramUniform2fBase(const Context *context,
119                                   angle::EntryPoint entryPoint,
120                                   ShaderProgramID programPacked,
121                                   UniformLocation locationPacked,
122                                   GLfloat v0,
123                                   GLfloat v1);
124 bool ValidateProgramUniform2fvBase(const Context *context,
125                                    angle::EntryPoint entryPoint,
126                                    ShaderProgramID programPacked,
127                                    UniformLocation locationPacked,
128                                    GLsizei count,
129                                    const GLfloat *value);
130 bool ValidateProgramUniform2iBase(const Context *context,
131                                   angle::EntryPoint entryPoint,
132                                   ShaderProgramID programPacked,
133                                   UniformLocation locationPacked,
134                                   GLint v0,
135                                   GLint v1);
136 bool ValidateProgramUniform2ivBase(const Context *context,
137                                    angle::EntryPoint entryPoint,
138                                    ShaderProgramID programPacked,
139                                    UniformLocation locationPacked,
140                                    GLsizei count,
141                                    const GLint *value);
142 bool ValidateProgramUniform2uiBase(const Context *context,
143                                    angle::EntryPoint entryPoint,
144                                    ShaderProgramID programPacked,
145                                    UniformLocation locationPacked,
146                                    GLuint v0,
147                                    GLuint v1);
148 bool ValidateProgramUniform2uivBase(const Context *context,
149                                     angle::EntryPoint entryPoint,
150                                     ShaderProgramID programPacked,
151                                     UniformLocation locationPacked,
152                                     GLsizei count,
153                                     const GLuint *value);
154 bool ValidateProgramUniform3fBase(const Context *context,
155                                   angle::EntryPoint entryPoint,
156                                   ShaderProgramID programPacked,
157                                   UniformLocation locationPacked,
158                                   GLfloat v0,
159                                   GLfloat v1,
160                                   GLfloat v2);
161 bool ValidateProgramUniform3fvBase(const Context *context,
162                                    angle::EntryPoint entryPoint,
163                                    ShaderProgramID programPacked,
164                                    UniformLocation locationPacked,
165                                    GLsizei count,
166                                    const GLfloat *value);
167 bool ValidateProgramUniform3iBase(const Context *context,
168                                   angle::EntryPoint entryPoint,
169                                   ShaderProgramID programPacked,
170                                   UniformLocation locationPacked,
171                                   GLint v0,
172                                   GLint v1,
173                                   GLint v2);
174 bool ValidateProgramUniform3ivBase(const Context *context,
175                                    angle::EntryPoint entryPoint,
176                                    ShaderProgramID programPacked,
177                                    UniformLocation locationPacked,
178                                    GLsizei count,
179                                    const GLint *value);
180 bool ValidateProgramUniform3uiBase(const Context *context,
181                                    angle::EntryPoint entryPoint,
182                                    ShaderProgramID programPacked,
183                                    UniformLocation locationPacked,
184                                    GLuint v0,
185                                    GLuint v1,
186                                    GLuint v2);
187 bool ValidateProgramUniform3uivBase(const Context *context,
188                                     angle::EntryPoint entryPoint,
189                                     ShaderProgramID programPacked,
190                                     UniformLocation locationPacked,
191                                     GLsizei count,
192                                     const GLuint *value);
193 bool ValidateProgramUniform4fBase(const Context *context,
194                                   angle::EntryPoint entryPoint,
195                                   ShaderProgramID programPacked,
196                                   UniformLocation locationPacked,
197                                   GLfloat v0,
198                                   GLfloat v1,
199                                   GLfloat v2,
200                                   GLfloat v3);
201 bool ValidateProgramUniform4fvBase(const Context *context,
202                                    angle::EntryPoint entryPoint,
203                                    ShaderProgramID programPacked,
204                                    UniformLocation locationPacked,
205                                    GLsizei count,
206                                    const GLfloat *value);
207 bool ValidateProgramUniform4iBase(const Context *context,
208                                   angle::EntryPoint entryPoint,
209                                   ShaderProgramID programPacked,
210                                   UniformLocation locationPacked,
211                                   GLint v0,
212                                   GLint v1,
213                                   GLint v2,
214                                   GLint v3);
215 bool ValidateProgramUniform4ivBase(const Context *context,
216                                    angle::EntryPoint entryPoint,
217                                    ShaderProgramID programPacked,
218                                    UniformLocation locationPacked,
219                                    GLsizei count,
220                                    const GLint *value);
221 bool ValidateProgramUniform4uiBase(const Context *context,
222                                    angle::EntryPoint entryPoint,
223                                    ShaderProgramID programPacked,
224                                    UniformLocation locationPacked,
225                                    GLuint v0,
226                                    GLuint v1,
227                                    GLuint v2,
228                                    GLuint v3);
229 bool ValidateProgramUniform4uivBase(const Context *context,
230                                     angle::EntryPoint entryPoint,
231                                     ShaderProgramID programPacked,
232                                     UniformLocation locationPacked,
233                                     GLsizei count,
234                                     const GLuint *value);
235 bool ValidateProgramUniformMatrix2fvBase(const Context *context,
236                                          angle::EntryPoint entryPoint,
237                                          ShaderProgramID programPacked,
238                                          UniformLocation locationPacked,
239                                          GLsizei count,
240                                          GLboolean transpose,
241                                          const GLfloat *value);
242 bool ValidateProgramUniformMatrix2x3fvBase(const Context *context,
243                                            angle::EntryPoint entryPoint,
244                                            ShaderProgramID programPacked,
245                                            UniformLocation locationPacked,
246                                            GLsizei count,
247                                            GLboolean transpose,
248                                            const GLfloat *value);
249 bool ValidateProgramUniformMatrix2x4fvBase(const Context *context,
250                                            angle::EntryPoint entryPoint,
251                                            ShaderProgramID programPacked,
252                                            UniformLocation locationPacked,
253                                            GLsizei count,
254                                            GLboolean transpose,
255                                            const GLfloat *value);
256 bool ValidateProgramUniformMatrix3fvBase(const Context *context,
257                                          angle::EntryPoint entryPoint,
258                                          ShaderProgramID programPacked,
259                                          UniformLocation locationPacked,
260                                          GLsizei count,
261                                          GLboolean transpose,
262                                          const GLfloat *value);
263 bool ValidateProgramUniformMatrix3x2fvBase(const Context *context,
264                                            angle::EntryPoint entryPoint,
265                                            ShaderProgramID programPacked,
266                                            UniformLocation locationPacked,
267                                            GLsizei count,
268                                            GLboolean transpose,
269                                            const GLfloat *value);
270 bool ValidateProgramUniformMatrix3x4fvBase(const Context *context,
271                                            angle::EntryPoint entryPoint,
272                                            ShaderProgramID programPacked,
273                                            UniformLocation locationPacked,
274                                            GLsizei count,
275                                            GLboolean transpose,
276                                            const GLfloat *value);
277 bool ValidateProgramUniformMatrix4fvBase(const Context *context,
278                                          angle::EntryPoint entryPoint,
279                                          ShaderProgramID programPacked,
280                                          UniformLocation locationPacked,
281                                          GLsizei count,
282                                          GLboolean transpose,
283                                          const GLfloat *value);
284 bool ValidateProgramUniformMatrix4x2fvBase(const Context *context,
285                                            angle::EntryPoint entryPoint,
286                                            ShaderProgramID programPacked,
287                                            UniformLocation locationPacked,
288                                            GLsizei count,
289                                            GLboolean transpose,
290                                            const GLfloat *value);
291 bool ValidateProgramUniformMatrix4x3fvBase(const Context *context,
292                                            angle::EntryPoint entryPoint,
293                                            ShaderProgramID programPacked,
294                                            UniformLocation locationPacked,
295                                            GLsizei count,
296                                            GLboolean transpose,
297                                            const GLfloat *value);
298 bool ValidateUseProgramStagesBase(const Context *context,
299                                   angle::EntryPoint entryPoint,
300                                   ProgramPipelineID pipelinePacked,
301                                   GLbitfield stages,
302                                   ShaderProgramID programPacked);
303 bool ValidateValidateProgramPipelineBase(const Context *context,
304                                          angle::EntryPoint entryPoint,
305                                          ProgramPipelineID pipelinePacked);
306 
307 // GL_EXT_tessellation_shader
308 bool ValidatePatchParameteriBase(const PrivateState &state,
309                                  ErrorSet *errors,
310                                  angle::EntryPoint entryPoint,
311                                  GLenum pname,
312                                  GLint value);
313 }  // namespace gl
314 
315 #endif  // LIBANGLE_VALIDATION_ES31_H_
316