aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2012-10-16 16:20:36 -0700
committerMatt Turner <[email protected]>2012-10-25 14:29:05 -0700
commitdf924d82e2e190b76533dfdd9111f05277d3f233 (patch)
tree6fdb5a988c67b7d1830e50f79ca54e052a8d9e6e /src/mesa
parent355f507f2a7082f28d98cb29b2a34b77fb45e031 (diff)
mesa/tests: Add ES3.0 dispatch table sanity test
Since ES3.0 is backward compatible with 2.0, we check that all the 2.0 functions and additional 3.0 functions exist. Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp149
1 files changed, 149 insertions, 0 deletions
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index c50f40b812f..11956339391 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -73,6 +73,7 @@ struct function {
};
extern const struct function gles2_functions_possible[];
+extern const struct function gles3_functions_possible[];
#if FEATURE_ES1
extern "C" _glapi_table *_mesa_create_exec_table_es1(void);
@@ -170,6 +171,25 @@ TEST_F(DispatchSanity_test, GLES2)
validate_nops((_glapi_proc *) ctx.Exec);
}
+TEST_F(DispatchSanity_test, GLES3)
+{
+ ctx.Version = 30;
+ _mesa_initialize_context(&ctx,
+ API_OPENGLES2, //api,
+ &visual,
+ NULL, //&share_list,
+ &driver_functions);
+
+ _swrast_CreateContext(&ctx);
+ _vbo_CreateContext(&ctx);
+ _tnl_CreateContext(&ctx);
+ _swsetup_CreateContext(&ctx);
+
+ validate_functions((_glapi_proc *) ctx.Exec, gles2_functions_possible);
+ validate_functions((_glapi_proc *) ctx.Exec, gles3_functions_possible);
+ validate_nops((_glapi_proc *) ctx.Exec);
+}
+
#if FEATURE_ES1
const struct function gles11_functions_possible[] = {
{ "glActiveTexture", _gloffset_ActiveTextureARB },
@@ -530,3 +550,132 @@ const struct function gles2_functions_possible[] = {
{ "glViewport", _gloffset_Viewport },
{ NULL, -1 }
};
+
+const struct function gles3_functions_possible[] = {
+ { "glBeginQuery", -1 },
+ { "glBeginTransformFeedback", -1 },
+ { "glBindBufferBase", -1 },
+ { "glBindBufferRange", -1 },
+ { "glBindSampler", -1 },
+ { "glBindTransformFeedback", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glBindVertexArray", -1 },
+ { "glBlitFramebuffer", -1 },
+ { "glClearBufferfi", -1 },
+ { "glClearBufferfv", -1 },
+ { "glClearBufferiv", -1 },
+ { "glClearBufferuiv", -1 },
+ { "glClientWaitSync", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glCompressedTexImage3D", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glCompressedTexSubImage3D", -1 },
+ { "glCopyBufferSubData", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glCopyTexSubImage3D", -1 },
+ { "glDeleteQueries", -1 },
+ { "glDeleteSamplers", -1 },
+ { "glDeleteSync", -1 },
+ { "glDeleteTransformFeedbacks", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glDeleteVertexArrays", -1 },
+ { "glDrawArraysInstanced", -1 },
+ // We check for the aliased -NV version in GLES 2
+ // { "glDrawBuffers", -1 },
+ { "glDrawElementsInstanced", -1 },
+ { "glDrawRangeElements", -1 },
+ { "glEndQuery", -1 },
+ { "glEndTransformFeedback", -1 },
+ { "glFenceSync", -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glFlushMappedBufferRange", -1 },
+ { "glFramebufferTextureLayer", -1 },
+ { "glGenQueries", -1 },
+ { "glGenSamplers", -1 },
+ { "glGenTransformFeedbacks", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glGenVertexArrays", -1 },
+ { "glGetActiveUniformBlockiv", -1 },
+ { "glGetActiveUniformBlockName", -1 },
+ { "glGetActiveUniformsiv", -1 },
+ // We have an implementation (added Jan 1 2010, 1fbc7193) but never tested...
+ // { "glGetBufferParameteri64v", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glGetBufferPointerv", -1 },
+ { "glGetFragDataLocation", -1 },
+ /// XXX: Missing implementation of glGetInteger64i_v
+ // { "glGetInteger64i_v", -1 },
+ { "glGetInteger64v", -1 },
+ { "glGetIntegeri_v", -1 },
+ // XXX: Missing implementation of ARB_internalformat_query
+ // { "glGetInternalformativ", -1 },
+ // XXX: Missing implementation of ARB_get_program_binary
+ /// { "glGetProgramBinary", -1 },
+ { "glGetQueryiv", -1 },
+ { "glGetQueryObjectuiv", -1 },
+ { "glGetSamplerParameterfv", -1 },
+ { "glGetSamplerParameteriv", -1 },
+ { "glGetStringi", -1 },
+ { "glGetSynciv", -1 },
+ { "glGetTransformFeedbackVarying", -1 },
+ { "glGetUniformBlockIndex", -1 },
+ { "glGetUniformIndices", -1 },
+ { "glGetUniformuiv", -1 },
+ { "glGetVertexAttribIiv", -1 },
+ { "glGetVertexAttribIuiv", -1 },
+ { "glInvalidateFramebuffer", -1 },
+ { "glInvalidateSubFramebuffer", -1 },
+ { "glIsQuery", -1 },
+ { "glIsSampler", -1 },
+ { "glIsSync", -1 },
+ { "glIsTransformFeedback", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glIsVertexArray", -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glMapBufferRange", -1 },
+ { "glPauseTransformFeedback", -1 },
+ // XXX: Missing implementation of ARB_get_program_binary
+ // { "glProgramBinary", -1 },
+ // XXX: Missing implementation of ARB_get_program_binary
+ // { "glProgramParameteri", -1 },
+ // We check for the aliased -NV version in GLES 2
+ // { "glReadBuffer", -1 },
+ { "glRenderbufferStorageMultisample", -1 },
+ { "glResumeTransformFeedback", -1 },
+ { "glSamplerParameterf", -1 },
+ { "glSamplerParameterfv", -1 },
+ { "glSamplerParameteri", -1 },
+ { "glSamplerParameteriv", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glTexImage3D", -1 },
+ { "glTexStorage2D", -1 },
+ { "glTexStorage3D", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glTexSubImage3D", -1 },
+ { "glTransformFeedbackVaryings", -1 },
+ { "glUniform1ui", -1 },
+ { "glUniform1uiv", -1 },
+ { "glUniform2ui", -1 },
+ { "glUniform2uiv", -1 },
+ { "glUniform3ui", -1 },
+ { "glUniform3uiv", -1 },
+ { "glUniform4ui", -1 },
+ { "glUniform4uiv", -1 },
+ { "glUniformBlockBinding", -1 },
+ { "glUniformMatrix2x3fv", -1 },
+ { "glUniformMatrix2x4fv", -1 },
+ { "glUniformMatrix3x2fv", -1 },
+ { "glUniformMatrix3x4fv", -1 },
+ { "glUniformMatrix4x2fv", -1 },
+ { "glUniformMatrix4x3fv", -1 },
+ // We check for the aliased -OES version in GLES 2
+ // { "glUnmapBuffer", -1 },
+ { "glVertexAttribDivisor", -1 },
+ { "glVertexAttribI4i", -1 },
+ { "glVertexAttribI4iv", -1 },
+ { "glVertexAttribI4ui", -1 },
+ { "glVertexAttribI4uiv", -1 },
+ { "glVertexAttribIPointer", -1 },
+ { "glWaitSync", -1 },
+ { NULL, -1 }
+};