blob: a5252ba5dec2cd895e7367df4f01179e29382e46 [file] [log] [blame]
-------------------------------------------------------------------------
drawElements Quality Program Documentation
-----------------------------------------------
Copyright 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------------
OpenGL ES 3.0 Negative API tests - Function listing
Legend:
o = Tests done
x = Will not generate errors, no negative test
-----------------------------------------------
Transform feedback
-----------------------------------------------
ES3
o glBindTransformFeedback (GLenum target, GLuint id);
o glDeleteTransformFeedbacks (GLsizei n, const GLuint* ids);
o glGenTransformFeedbacks (GLsizei n, GLuint* ids);
o glPauseTransformFeedback (void);
o glResumeTransformFeedback (void);
o glBeginTransformFeedback (GLenum primitiveMode);
o glEndTransformFeedback (void);
o glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode);
o glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
-----------------------------------------------
Asynchronous queries
-----------------------------------------------
ES3
o glBeginQuery (GLenum target, GLuint id);
o glDeleteQueries (GLsizei n, const GLuint* ids);
o glEndQuery (GLenum target);
o glGenQueries (GLsizei n, GLuint* ids);
-----------------------------------------------
Special functions
-----------------------------------------------
ES2
x glFinish (void);
x glFlush (void);
o glHint (GLenum target, GLenum mode);
ES3
o glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
o glDeleteSync (GLsync sync);
o glFenceSync (GLenum condition, GLbitfield flags);
o glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
-----------------------------------------------
State functions
-----------------------------------------------
ES2
o glDisable (GLenum cap);
o glEnable (GLenum cap);
o glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
o glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
o glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
o glGetBooleanv (GLenum pname, GLboolean* params);
o glGetError (void);
o glGetFloatv (GLenum pname, GLfloat* params);
o glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
o glGetIntegerv (GLenum pname, GLint* params);
o glGetProgramiv (GLuint program, GLenum pname, GLint* params);
o glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
o glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
o glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
o glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
o glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
o glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
o glGetString (GLenum name);
o glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
o glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
o glGetUniformfv (GLuint program, GLint location, GLfloat* params);
o glGetUniformiv (GLuint program, GLint location, GLint* params);
o glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
o glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
o glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
o glIsEnabled (GLenum cap);
ES3
o glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
o glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
o glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
o glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64* params);
o glGetBufferPointerv (GLenum target, GLenum pname, GLvoid** params);
o glGetFragDataLocation (GLuint program, const GLchar *name);
o glGetIntegeri_v (GLenum target, GLuint index, GLint* data);
o glGetInteger64i_v (GLenum target, GLuint index, GLint64* data);
o glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
o glGetInteger64v (GLenum pname, GLint64* params);
o glGetQueryiv (GLenum target, GLenum pname, GLint* params);
o glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params);
o glGetStringi (GLenum name, GLuint index);
o glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
o glGetUniformuiv (GLuint program, GLint location, GLuint* params);
o glGetUniformBlockIndex (GLuint program, const GLchar* uniformBlockName);
o glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices);
o glGetVertexAttribIiv (GLuint index, GLenum pname, GLint* params);
o glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params);
-----------------------------------------------
Transforms & Fragment API functions
-----------------------------------------------
ES2
x glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
o glBlendEquation (GLenum mode);
o glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
o glBlendFunc (GLenum sfactor, GLenum dfactor);
o glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
x glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
o glDepthFunc (GLenum func);
x glDepthMask (GLboolean flag);
x glDepthRangef (GLclampf zNear, GLclampf zFar);
x glSampleCoverage (GLclampf value, GLboolean invert);
o glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
o glStencilFunc (GLenum func, GLint ref, GLuint mask);
o glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
x glStencilMask (GLuint mask);
o glStencilMaskSeparate (GLenum face, GLuint mask);
o glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
o glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
o glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
-----------------------------------------------
FBO API functions
-----------------------------------------------
ES2
o glBindFramebuffer (GLenum target, GLuint framebuffer);
o glBindRenderbuffer (GLenum target, GLuint renderbuffer);
o glCheckFramebufferStatus (GLenum target);
o glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
o glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
o glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
o glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
o glGenFramebuffers (GLsizei n, GLuint* framebuffers);
o glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
o glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
ES3
o glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
o glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
o glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments);
o glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
o glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-----------------------------------------------
Buffer and Buffer Object API functions
-----------------------------------------------
ES2
o glBindBuffer (GLenum target, GLuint buffer);
o glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
o glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
o glClear (GLbitfield mask);
x glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
x glClearDepthf (GLclampf depth);
x glClearStencil (GLint s);
o glDeleteBuffers (GLsizei n, const GLuint* buffers);
o glGenBuffers (GLsizei n, GLuint* buffers);
o glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
ES3
o glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
o glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
o glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint* value);
o glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint* value);
o glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat* value);
o glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
o glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
o glDrawBuffers (GLsizei n, const GLenum* bufs);
o glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
o glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
o glReadBuffer (GLenum mode);
o glUnmapBuffer (GLenum target);
-----------------------------------------------
Shader API functions
-----------------------------------------------
ES2
o glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
o glAttachShader (GLuint program, GLuint shader);
o glCreateShader (GLenum type);
o glCompileShader (GLuint shader);
x glCreateProgram (void);
o glDeleteProgram (GLuint program);
o glDeleteShader (GLuint shader);
o glDetachShader (GLuint program, GLuint shader);
o glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
o glGetAttribLocation (GLuint program, const GLchar* name);
o glGetUniformLocation (GLuint program, const GLchar* name);
o glLinkProgram (GLuint program);
x glReleaseShaderCompiler (void);
o glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
o glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
o glUniform1f (GLint location, GLfloat x);
o glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
o glUniform1i (GLint location, GLint x);
o glUniform1iv (GLint location, GLsizei count, const GLint* v);
o glUniform2f (GLint location, GLfloat x, GLfloat y);
o glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
o glUniform2i (GLint location, GLint x, GLint y);
o glUniform2iv (GLint location, GLsizei count, const GLint* v);
o glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
o glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
o glUniform3i (GLint location, GLint x, GLint y, GLint z);
o glUniform3iv (GLint location, GLsizei count, const GLint* v);
o glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
o glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
o glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
o glUniform4iv (GLint location, GLsizei count, const GLint* v);
o glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUseProgram (GLuint program);
o glValidateProgram (GLuint program);
ES3
o glBindSampler (GLuint unit, GLuint sampler);
o glDeleteSamplers (GLsizei count, const GLuint* samplers);
o glGenSamplers (GLsizei count, GLuint* samplers);
o glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
o glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params);
o glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params);
o glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
o glProgramParameteri (GLuint program, GLenum pname, GLint value);
o glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
o glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint* param);
o glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
o glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat* param);
o glUniform1ui (GLint location, GLuint v0);
o glUniform2ui (GLint location, GLuint v0, GLuint v1);
o glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
o glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
o glUniform1uiv (GLint location, GLsizei count, const GLuint* value);
o glUniform2uiv (GLint location, GLsizei count, const GLuint* value);
o glUniform3uiv (GLint location, GLsizei count, const GLuint* value);
o glUniform4uiv (GLint location, GLsizei count, const GLuint* value);
o glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
o glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
o glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-----------------------------------------------
Texture API functions
-----------------------------------------------
ES2
o glActiveTexture (GLenum texture);
o glBindTexture (GLenum target, GLuint texture);
o glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
o glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
o glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
o glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
o glDeleteTextures (GLsizei n, const GLuint* textures);
o glGenerateMipmap (GLenum target);
o glGenTextures (GLsizei n, GLuint* textures);
o glPixelStorei (GLenum pname, GLint param);
o glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
o glTexParameterf (GLenum target, GLenum pname, GLfloat param);
o glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
o glTexParameteri (GLenum target, GLenum pname, GLint param);
o glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
o glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
ES3
o glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
o glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
o glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
o glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
o glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
o glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
o glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
-----------------------------------------------
Vertex Array API functions
-----------------------------------------------
ES2
o glDisableVertexAttribArray (GLuint index);
o glDrawArrays (GLenum mode, GLint first, GLsizei count);
o glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
o glEnableVertexAttribArray (GLuint index);
o glVertexAttrib1f (GLuint indx, GLfloat x);
o glVertexAttrib1fv (GLuint indx, const GLfloat* values);
o glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
o glVertexAttrib2fv (GLuint indx, const GLfloat* values);
o glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
o glVertexAttrib3fv (GLuint indx, const GLfloat* values);
o glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
o glVertexAttrib4fv (GLuint indx, const GLfloat* values);
o glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
ES3
o glBindVertexArray (GLuint array);
o glDeleteVertexArrays (GLsizei n, const GLuint* arrays);
o glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
o glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount);
o glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
o glGenVertexArrays (GLsizei n, GLuint* arrays);
o glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
o glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
o glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
o glVertexAttribI4iv (GLuint index, const GLint* v);
o glVertexAttribI4uiv (GLuint index, const GLuint* v);
o glVertexAttribDivisor (GLuint index, GLuint divisor);
-----------------------------------------------
Rasterization API functions
-----------------------------------------------
ES2
o glCullFace (GLenum mode);
o glFrontFace (GLenum mode);
o glLineWidth (GLfloat width);
x glPolygonOffset (GLfloat factor, GLfloat units);
-----------------------------------------------
Named object usage
-----------------------------------------------
ES2
o glIsBuffer (GLuint buffer);
o glIsFramebuffer (GLuint framebuffer);
o glIsProgram (GLuint program);
o glIsRenderbuffer (GLuint renderbuffer);
o glIsShader (GLuint shader);
o glIsTexture (GLuint texture);
ES3
o glIsQuery (GLuint id);
o glIsSampler (GLuint sampler);
o glIsSync (GLsync sync);
o glIsTransformFeedback (GLuint id);
o glIsVertexArray (GLuint array);