blob: 9bb99dc3dcb8ba04f0727618ab33caca754475d9 [file] [log] [blame]
Jarkko Poyry3c827362014-09-02 11:48:52 +03001-------------------------------------------------------------------------
2drawElements Quality Program Documentation
3-----------------------------------------------
4
5Copyright 2014 The Android Open Source Project
6
7Licensed under the Apache License, Version 2.0 (the "License");
8you may not use this file except in compliance with the License.
9You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13Unless required by applicable law or agreed to in writing, software
14distributed under the License is distributed on an "AS IS" BASIS,
15WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16See the License for the specific language governing permissions and
17limitations under the License.
18-------------------------------------------------------------------------
19
20 OpenGL ES 3.0 Negative API tests - Function listing
21
22Legend:
23 o = Tests done
24 x = Will not generate errors, no negative test
25
26-----------------------------------------------
27 Transform feedback
28-----------------------------------------------
29
30ES3
31o glBindTransformFeedback (GLenum target, GLuint id);
32o glDeleteTransformFeedbacks (GLsizei n, const GLuint* ids);
33o glGenTransformFeedbacks (GLsizei n, GLuint* ids);
34o glPauseTransformFeedback (void);
35o glResumeTransformFeedback (void);
36o glBeginTransformFeedback (GLenum primitiveMode);
37o glEndTransformFeedback (void);
38o glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode);
39o glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
40
41-----------------------------------------------
42 Asynchronous queries
43-----------------------------------------------
44
45ES3
46o glBeginQuery (GLenum target, GLuint id);
47o glDeleteQueries (GLsizei n, const GLuint* ids);
48o glEndQuery (GLenum target);
49o glGenQueries (GLsizei n, GLuint* ids);
50
51-----------------------------------------------
52 Special functions
53-----------------------------------------------
54
55ES2
56x glFinish (void);
57x glFlush (void);
58o glHint (GLenum target, GLenum mode);
59
60ES3
61o glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
62o glDeleteSync (GLsync sync);
63o glFenceSync (GLenum condition, GLbitfield flags);
64o glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
65
66-----------------------------------------------
67 State functions
68-----------------------------------------------
69
70ES2
71o glDisable (GLenum cap);
72o glEnable (GLenum cap);
73o glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
74o glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
75o glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
76o glGetBooleanv (GLenum pname, GLboolean* params);
77o glGetError (void);
78o glGetFloatv (GLenum pname, GLfloat* params);
79o glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
80o glGetIntegerv (GLenum pname, GLint* params);
81o glGetProgramiv (GLuint program, GLenum pname, GLint* params);
82o glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
83o glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
84o glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
85o glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
86o glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
87o glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
88o glGetString (GLenum name);
89o glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
90o glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
91o glGetUniformfv (GLuint program, GLint location, GLfloat* params);
92o glGetUniformiv (GLuint program, GLint location, GLint* params);
93o glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
94o glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
95o glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
96o glIsEnabled (GLenum cap);
97
98ES3
99o glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
100o glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
101o glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
102o glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64* params);
103o glGetBufferPointerv (GLenum target, GLenum pname, GLvoid** params);
104o glGetFragDataLocation (GLuint program, const GLchar *name);
105o glGetIntegeri_v (GLenum target, GLuint index, GLint* data);
106o glGetInteger64i_v (GLenum target, GLuint index, GLint64* data);
107o glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
108o glGetInteger64v (GLenum pname, GLint64* params);
109o glGetQueryiv (GLenum target, GLenum pname, GLint* params);
110o glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params);
111o glGetStringi (GLenum name, GLuint index);
112o glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
113o glGetUniformuiv (GLuint program, GLint location, GLuint* params);
114o glGetUniformBlockIndex (GLuint program, const GLchar* uniformBlockName);
115o glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices);
116o glGetVertexAttribIiv (GLuint index, GLenum pname, GLint* params);
117o glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params);
118
119-----------------------------------------------
120 Transforms & Fragment API functions
121-----------------------------------------------
122
123ES2
124x glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
125o glBlendEquation (GLenum mode);
126o glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
127o glBlendFunc (GLenum sfactor, GLenum dfactor);
128o glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
129x glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
130o glDepthFunc (GLenum func);
131x glDepthMask (GLboolean flag);
132x glDepthRangef (GLclampf zNear, GLclampf zFar);
133x glSampleCoverage (GLclampf value, GLboolean invert);
134o glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
135o glStencilFunc (GLenum func, GLint ref, GLuint mask);
136o glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
137x glStencilMask (GLuint mask);
138o glStencilMaskSeparate (GLenum face, GLuint mask);
139o glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
140o glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
141o glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
142
143-----------------------------------------------
144 FBO API functions
145-----------------------------------------------
146
147ES2
148o glBindFramebuffer (GLenum target, GLuint framebuffer);
149o glBindRenderbuffer (GLenum target, GLuint renderbuffer);
150o glCheckFramebufferStatus (GLenum target);
151o glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
152o glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
153o glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
154o glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
155o glGenFramebuffers (GLsizei n, GLuint* framebuffers);
156o glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
157o glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
158
159ES3
160o glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
161o glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
162o glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments);
163o glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
164o glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
165
166-----------------------------------------------
167 Buffer and Buffer Object API functions
168-----------------------------------------------
169
170ES2
171o glBindBuffer (GLenum target, GLuint buffer);
172o glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
173o glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
174o glClear (GLbitfield mask);
175x glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
176x glClearDepthf (GLclampf depth);
177x glClearStencil (GLint s);
178o glDeleteBuffers (GLsizei n, const GLuint* buffers);
179o glGenBuffers (GLsizei n, GLuint* buffers);
180o glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
181
182ES3
183o glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
184o glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
185o glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint* value);
186o glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint* value);
187o glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat* value);
188o glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
189o glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
190o glDrawBuffers (GLsizei n, const GLenum* bufs);
191o glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
192o glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
193o glReadBuffer (GLenum mode);
194o glUnmapBuffer (GLenum target);
195
196-----------------------------------------------
197 Shader API functions
198-----------------------------------------------
199
200ES2
201o glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
202o glAttachShader (GLuint program, GLuint shader);
203o glCreateShader (GLenum type);
204o glCompileShader (GLuint shader);
205x glCreateProgram (void);
206o glDeleteProgram (GLuint program);
207o glDeleteShader (GLuint shader);
208o glDetachShader (GLuint program, GLuint shader);
209o glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
210o glGetAttribLocation (GLuint program, const GLchar* name);
211o glGetUniformLocation (GLuint program, const GLchar* name);
212o glLinkProgram (GLuint program);
213x glReleaseShaderCompiler (void);
214o glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
215o glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
216o glUniform1f (GLint location, GLfloat x);
217o glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
218o glUniform1i (GLint location, GLint x);
219o glUniform1iv (GLint location, GLsizei count, const GLint* v);
220o glUniform2f (GLint location, GLfloat x, GLfloat y);
221o glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
222o glUniform2i (GLint location, GLint x, GLint y);
223o glUniform2iv (GLint location, GLsizei count, const GLint* v);
224o glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
225o glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
226o glUniform3i (GLint location, GLint x, GLint y, GLint z);
227o glUniform3iv (GLint location, GLsizei count, const GLint* v);
228o glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
229o glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
230o glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
231o glUniform4iv (GLint location, GLsizei count, const GLint* v);
232o glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
233o glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
234o glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
235o glUseProgram (GLuint program);
236o glValidateProgram (GLuint program);
237
238ES3
239o glBindSampler (GLuint unit, GLuint sampler);
240o glDeleteSamplers (GLsizei count, const GLuint* samplers);
241o glGenSamplers (GLsizei count, GLuint* samplers);
242o glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
243o glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params);
244o glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params);
245o glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
246o glProgramParameteri (GLuint program, GLenum pname, GLint value);
247o glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
248o glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint* param);
249o glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
250o glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat* param);
251o glUniform1ui (GLint location, GLuint v0);
252o glUniform2ui (GLint location, GLuint v0, GLuint v1);
253o glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
254o glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
255o glUniform1uiv (GLint location, GLsizei count, const GLuint* value);
256o glUniform2uiv (GLint location, GLsizei count, const GLuint* value);
257o glUniform3uiv (GLint location, GLsizei count, const GLuint* value);
258o glUniform4uiv (GLint location, GLsizei count, const GLuint* value);
259o glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
260o glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
261o glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
262o glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
263o glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
264o glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
265o glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
266
267-----------------------------------------------
268 Texture API functions
269-----------------------------------------------
270
271ES2
272o glActiveTexture (GLenum texture);
273o glBindTexture (GLenum target, GLuint texture);
274o glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
275o glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
276o glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
277o glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
278o glDeleteTextures (GLsizei n, const GLuint* textures);
279o glGenerateMipmap (GLenum target);
280o glGenTextures (GLsizei n, GLuint* textures);
281o glPixelStorei (GLenum pname, GLint param);
282o glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
283o glTexParameterf (GLenum target, GLenum pname, GLfloat param);
284o glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
285o glTexParameteri (GLenum target, GLenum pname, GLint param);
286o glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
287o glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
288
289ES3
290o glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
291o glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
292o glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
293o glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
294o glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
295o glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
296o glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
297
298-----------------------------------------------
299 Vertex Array API functions
300-----------------------------------------------
301
302ES2
303o glDisableVertexAttribArray (GLuint index);
304o glDrawArrays (GLenum mode, GLint first, GLsizei count);
305o glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
306o glEnableVertexAttribArray (GLuint index);
307o glVertexAttrib1f (GLuint indx, GLfloat x);
308o glVertexAttrib1fv (GLuint indx, const GLfloat* values);
309o glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
310o glVertexAttrib2fv (GLuint indx, const GLfloat* values);
311o glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
312o glVertexAttrib3fv (GLuint indx, const GLfloat* values);
313o glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
314o glVertexAttrib4fv (GLuint indx, const GLfloat* values);
315o glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
316
317ES3
318o glBindVertexArray (GLuint array);
319o glDeleteVertexArrays (GLsizei n, const GLuint* arrays);
320o glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
321o glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount);
322o glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
323o glGenVertexArrays (GLsizei n, GLuint* arrays);
324o glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
325o glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
326o glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
327o glVertexAttribI4iv (GLuint index, const GLint* v);
328o glVertexAttribI4uiv (GLuint index, const GLuint* v);
329o glVertexAttribDivisor (GLuint index, GLuint divisor);
330
331-----------------------------------------------
332 Rasterization API functions
333-----------------------------------------------
334
335ES2
336o glCullFace (GLenum mode);
337o glFrontFace (GLenum mode);
338o glLineWidth (GLfloat width);
339x glPolygonOffset (GLfloat factor, GLfloat units);
340
341-----------------------------------------------
342 Named object usage
343-----------------------------------------------
344
345ES2
346o glIsBuffer (GLuint buffer);
347o glIsFramebuffer (GLuint framebuffer);
348o glIsProgram (GLuint program);
349o glIsRenderbuffer (GLuint renderbuffer);
350o glIsShader (GLuint shader);
351o glIsTexture (GLuint texture);
352
353ES3
354o glIsQuery (GLuint id);
355o glIsSampler (GLuint sampler);
356o glIsSync (GLsync sync);
357o glIsTransformFeedback (GLuint id);
358o glIsVertexArray (GLuint array);