modules/gles2/functional/es2fBufferWriteTests.cpp \
modules/gles2/functional/es2fClippingTests.cpp \
modules/gles2/functional/es2fColorClearTest.cpp \
+ modules/gles2/functional/es2fDebugMarkerTests.cpp \
modules/gles2/functional/es2fDefaultVertexAttributeTests.cpp \
modules/gles2/functional/es2fDepthRangeTests.cpp \
modules/gles2/functional/es2fDepthStencilClearTests.cpp \
</TestCase>
</TestSuite>
</TestSuite>
+ <TestCase name="debug_marker">
+ <Test name="supported">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="random">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
</TestSuite>
</TestSuite>
</TestPackage>
dEQP-GLES2.functional.lifetime.attach.deleted_input.shader_program
dEQP-GLES2.functional.lifetime.attach.deleted_output.texture_framebuffer
dEQP-GLES2.functional.lifetime.attach.deleted_output.renderbuffer_framebuffer
+dEQP-GLES2.functional.debug_marker.supported
+dEQP-GLES2.functional.debug_marker.random
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_pos_y_pos_z_and_pos_x_neg_y_neg_z
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_neg_y_pos_z_and_neg_x_pos_y_neg_z
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_pos_y_pos_z_and_neg_x_neg_y_neg_z
+dEQP-GLES2.functional.debug_marker.invalid
dEQP-GLES2.functional.depth_stencil_clear.depth_scissored_masked
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored_masked
m_gl.hint(target, mode);
}
+void CallLogWrapper::glInsertEventMarkerEXT (glw::GLsizei length, const glw::GLchar *marker)
+{
+ if (m_enableLog)
+ m_log << TestLog::Message << "glInsertEventMarkerEXT(" << length << ", " << getStringStr(marker) << ");" << TestLog::EndMessage;
+ m_gl.insertEventMarkerEXT(length, marker);
+}
+
void CallLogWrapper::glInvalidateBufferData (glw::GLuint buffer)
{
if (m_enableLog)
m_gl.popDebugGroup();
}
+void CallLogWrapper::glPopGroupMarkerEXT (void)
+{
+ if (m_enableLog)
+ m_log << TestLog::Message << "glPopGroupMarkerEXT(" << ");" << TestLog::EndMessage;
+ m_gl.popGroupMarkerEXT();
+}
+
void CallLogWrapper::glPrimitiveBoundingBoxEXT (glw::GLfloat minX, glw::GLfloat minY, glw::GLfloat minZ, glw::GLfloat minW, glw::GLfloat maxX, glw::GLfloat maxY, glw::GLfloat maxZ, glw::GLfloat maxW)
{
if (m_enableLog)
m_gl.pushDebugGroup(source, id, length, message);
}
+void CallLogWrapper::glPushGroupMarkerEXT (glw::GLsizei length, const glw::GLchar *marker)
+{
+ if (m_enableLog)
+ m_log << TestLog::Message << "glPushGroupMarkerEXT(" << length << ", " << getStringStr(marker) << ");" << TestLog::EndMessage;
+ m_gl.pushGroupMarkerEXT(length, marker);
+}
+
void CallLogWrapper::glQueryCounter (glw::GLuint id, glw::GLenum target)
{
if (m_enableLog)
void glGetnUniformiv (glw::GLuint program, glw::GLint location, glw::GLsizei bufSize, glw::GLint *params);
void glGetnUniformuiv (glw::GLuint program, glw::GLint location, glw::GLsizei bufSize, glw::GLuint *params);
void glHint (glw::GLenum target, glw::GLenum mode);
+void glInsertEventMarkerEXT (glw::GLsizei length, const glw::GLchar *marker);
void glInvalidateBufferData (glw::GLuint buffer);
void glInvalidateBufferSubData (glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr length);
void glInvalidateFramebuffer (glw::GLenum target, glw::GLsizei numAttachments, const glw::GLenum *attachments);
void glPolygonMode (glw::GLenum face, glw::GLenum mode);
void glPolygonOffset (glw::GLfloat factor, glw::GLfloat units);
void glPopDebugGroup (void);
+void glPopGroupMarkerEXT (void);
void glPrimitiveBoundingBoxEXT (glw::GLfloat minX, glw::GLfloat minY, glw::GLfloat minZ, glw::GLfloat minW, glw::GLfloat maxX, glw::GLfloat maxY, glw::GLfloat maxZ, glw::GLfloat maxW);
void glPrimitiveRestartIndex (glw::GLuint index);
void glProgramBinary (glw::GLuint program, glw::GLenum binaryFormat, const void *binary, glw::GLsizei length);
void glProgramUniformMatrix4x3fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value);
void glProvokingVertex (glw::GLenum mode);
void glPushDebugGroup (glw::GLenum source, glw::GLuint id, glw::GLsizei length, const glw::GLchar *message);
+void glPushGroupMarkerEXT (glw::GLsizei length, const glw::GLchar *marker);
void glQueryCounter (glw::GLuint id, glw::GLenum target);
void glReadBuffer (glw::GLenum src);
void glReadPixels (glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, void *pixels);
#define glGetnUniformiv glwGetnUniformiv
#define glGetnUniformuiv glwGetnUniformuiv
#define glHint glwHint
+#define glInsertEventMarkerEXT glwInsertEventMarkerEXT
#define glInvalidateBufferData glwInvalidateBufferData
#define glInvalidateBufferSubData glwInvalidateBufferSubData
#define glInvalidateFramebuffer glwInvalidateFramebuffer
#define glPolygonMode glwPolygonMode
#define glPolygonOffset glwPolygonOffset
#define glPopDebugGroup glwPopDebugGroup
+#define glPopGroupMarkerEXT glwPopGroupMarkerEXT
#define glPrimitiveBoundingBoxEXT glwPrimitiveBoundingBoxEXT
#define glPrimitiveRestartIndex glwPrimitiveRestartIndex
#define glProgramBinary glwProgramBinary
#define glProgramUniformMatrix4x3fv glwProgramUniformMatrix4x3fv
#define glProvokingVertex glwProvokingVertex
#define glPushDebugGroup glwPushDebugGroup
+#define glPushGroupMarkerEXT glwPushGroupMarkerEXT
#define glQueryCounter glwQueryCounter
#define glReadBuffer glwReadBuffer
#define glReadPixels glwReadPixels
void glwGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params);
void glwGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
void glwHint (GLenum target, GLenum mode);
+void glwInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
void glwInvalidateBufferData (GLuint buffer);
void glwInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length);
void glwInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments);
void glwPolygonMode (GLenum face, GLenum mode);
void glwPolygonOffset (GLfloat factor, GLfloat units);
void glwPopDebugGroup ();
+void glwPopGroupMarkerEXT ();
void glwPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
void glwPrimitiveRestartIndex (GLuint index);
void glwProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
void glwProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void glwProvokingVertex (GLenum mode);
void glwPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message);
+void glwPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
void glwQueryCounter (GLuint id, GLenum target);
void glwReadBuffer (GLenum src);
void glwReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
typedef GLW_APICALL void (GLW_APIENTRY* glGetnUniformivFunc) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
typedef GLW_APICALL void (GLW_APIENTRY* glGetnUniformuivFunc) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
typedef GLW_APICALL void (GLW_APIENTRY* glHintFunc) (GLenum target, GLenum mode);
+typedef GLW_APICALL void (GLW_APIENTRY* glInsertEventMarkerEXTFunc) (GLsizei length, const GLchar *marker);
typedef GLW_APICALL void (GLW_APIENTRY* glInvalidateBufferDataFunc) (GLuint buffer);
typedef GLW_APICALL void (GLW_APIENTRY* glInvalidateBufferSubDataFunc) (GLuint buffer, GLintptr offset, GLsizeiptr length);
typedef GLW_APICALL void (GLW_APIENTRY* glInvalidateFramebufferFunc) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
typedef GLW_APICALL void (GLW_APIENTRY* glPolygonModeFunc) (GLenum face, GLenum mode);
typedef GLW_APICALL void (GLW_APIENTRY* glPolygonOffsetFunc) (GLfloat factor, GLfloat units);
typedef GLW_APICALL void (GLW_APIENTRY* glPopDebugGroupFunc) (void);
+typedef GLW_APICALL void (GLW_APIENTRY* glPopGroupMarkerEXTFunc) (void);
typedef GLW_APICALL void (GLW_APIENTRY* glPrimitiveBoundingBoxEXTFunc) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
typedef GLW_APICALL void (GLW_APIENTRY* glPrimitiveRestartIndexFunc) (GLuint index);
typedef GLW_APICALL void (GLW_APIENTRY* glProgramBinaryFunc) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
typedef GLW_APICALL void (GLW_APIENTRY* glProgramUniformMatrix4x3fvFunc) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef GLW_APICALL void (GLW_APIENTRY* glProvokingVertexFunc) (GLenum mode);
typedef GLW_APICALL void (GLW_APIENTRY* glPushDebugGroupFunc) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
+typedef GLW_APICALL void (GLW_APIENTRY* glPushGroupMarkerEXTFunc) (GLsizei length, const GLchar *marker);
typedef GLW_APICALL void (GLW_APIENTRY* glQueryCounterFunc) (GLuint id, GLenum target);
typedef GLW_APICALL void (GLW_APIENTRY* glReadBufferFunc) (GLenum src);
typedef GLW_APICALL void (GLW_APIENTRY* glReadPixelsFunc) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
glGetnUniformivFunc getnUniformiv;
glGetnUniformuivFunc getnUniformuiv;
glHintFunc hint;
+glInsertEventMarkerEXTFunc insertEventMarkerEXT;
glInvalidateBufferDataFunc invalidateBufferData;
glInvalidateBufferSubDataFunc invalidateBufferSubData;
glInvalidateFramebufferFunc invalidateFramebuffer;
glPolygonModeFunc polygonMode;
glPolygonOffsetFunc polygonOffset;
glPopDebugGroupFunc popDebugGroup;
+glPopGroupMarkerEXTFunc popGroupMarkerEXT;
glPrimitiveBoundingBoxEXTFunc primitiveBoundingBoxEXT;
glPrimitiveRestartIndexFunc primitiveRestartIndex;
glProgramBinaryFunc programBinary;
glProgramUniformMatrix4x3fvFunc programUniformMatrix4x3fv;
glProvokingVertexFunc provokingVertex;
glPushDebugGroupFunc pushDebugGroup;
+glPushGroupMarkerEXTFunc pushGroupMarkerEXT;
glQueryCounterFunc queryCounter;
glReadBufferFunc readBuffer;
glReadPixelsFunc readPixels;
gl->hint(target, mode);
}
+void glwInsertEventMarkerEXT (GLsizei length, const GLchar *marker)
+{
+ const glw::Functions* gl = glw::getCurrentThreadFunctions();
+ if (!gl)
+ return;
+ gl->insertEventMarkerEXT(length, marker);
+}
+
void glwInvalidateBufferData (GLuint buffer)
{
const glw::Functions* gl = glw::getCurrentThreadFunctions();
gl->popDebugGroup();
}
+void glwPopGroupMarkerEXT (void)
+{
+ const glw::Functions* gl = glw::getCurrentThreadFunctions();
+ if (!gl)
+ return;
+ gl->popGroupMarkerEXT();
+}
+
void glwPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
{
const glw::Functions* gl = glw::getCurrentThreadFunctions();
gl->pushDebugGroup(source, id, length, message);
}
+void glwPushGroupMarkerEXT (GLsizei length, const GLchar *marker)
+{
+ const glw::Functions* gl = glw::getCurrentThreadFunctions();
+ if (!gl)
+ return;
+ gl->pushGroupMarkerEXT(length, marker);
+}
+
void glwQueryCounter (GLuint id, GLenum target)
{
const glw::Functions* gl = glw::getCurrentThreadFunctions();
gl->texParameterIiv = (glTexParameterIivFunc) loader->get("glTexParameterIivEXT");
gl->texParameterIuiv = (glTexParameterIuivFunc) loader->get("glTexParameterIuivEXT");
}
+
+if (de::contains(extSet, "GL_EXT_debug_marker"))
+{
+ gl->insertEventMarkerEXT = (glInsertEventMarkerEXTFunc) loader->get("glInsertEventMarkerEXT");
+ gl->popGroupMarkerEXT = (glPopGroupMarkerEXTFunc) loader->get("glPopGroupMarkerEXT");
+ gl->pushGroupMarkerEXT = (glPushGroupMarkerEXTFunc) loader->get("glPushGroupMarkerEXT");
+}
}
+GLW_APICALL void GLW_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker)
+{
+ DE_UNREF(length);
+ DE_UNREF(marker);
+
+}
+
GLW_APICALL void GLW_APIENTRY glInvalidateBufferData (GLuint buffer)
{
DE_UNREF(buffer);
}
+GLW_APICALL void GLW_APIENTRY glPopGroupMarkerEXT (void)
+{
+
+}
+
GLW_APICALL void GLW_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
{
DE_UNREF(minX);
}
+GLW_APICALL void GLW_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker)
+{
+ DE_UNREF(length);
+ DE_UNREF(marker);
+
+}
+
GLW_APICALL void GLW_APIENTRY glQueryCounter (GLuint id, GLenum target)
{
DE_UNREF(id);
gl->getnUniformiv = glGetnUniformiv;
gl->getnUniformuiv = glGetnUniformuiv;
gl->hint = glHint;
+gl->insertEventMarkerEXT = glInsertEventMarkerEXT;
gl->invalidateBufferData = glInvalidateBufferData;
gl->invalidateBufferSubData = glInvalidateBufferSubData;
gl->invalidateFramebuffer = glInvalidateFramebuffer;
gl->polygonMode = glPolygonMode;
gl->polygonOffset = glPolygonOffset;
gl->popDebugGroup = glPopDebugGroup;
+gl->popGroupMarkerEXT = glPopGroupMarkerEXT;
gl->primitiveBoundingBoxEXT = glPrimitiveBoundingBoxEXT;
gl->primitiveRestartIndex = glPrimitiveRestartIndex;
gl->programBinary = glProgramBinary;
gl->programUniformMatrix4x3fv = glProgramUniformMatrix4x3fv;
gl->provokingVertex = glProvokingVertex;
gl->pushDebugGroup = glPushDebugGroup;
+gl->pushGroupMarkerEXT = glPushGroupMarkerEXT;
gl->queryCounter = glQueryCounter;
gl->readBuffer = glReadBuffer;
gl->readPixels = glReadPixels;
es2fFlushFinishTests.hpp
es2fShaderFragDataTests.cpp
es2fShaderFragDataTests.hpp
+ es2fDebugMarkerTests.cpp
+ es2fDebugMarkerTests.hpp
)
add_library(deqp-gles2-functional STATIC ${DEQP_GLES2_FUNCTIONAL_SRCS})
--- /dev/null
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 2.0 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2015 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.
+ *
+ *//*!
+ * \file
+ * \brief GL_EXT_debug_marker tests
+ *//*--------------------------------------------------------------------*/
+
+#include "es2fDebugMarkerTests.hpp"
+#include "gluContextInfo.hpp"
+#include "gluRenderContext.hpp"
+#include "glwFunctions.hpp"
+#include "glwEnums.hpp"
+#include "tcuTestLog.hpp"
+#include "deRandom.hpp"
+#include "deUniquePtr.hpp"
+
+namespace deqp
+{
+namespace gles2
+{
+namespace Functional
+{
+
+namespace
+{
+
+using std::vector;
+using tcu::TestLog;
+
+void checkSupport (const glu::ContextInfo& ctxInfo)
+{
+ if (!ctxInfo.isExtensionSupported("GL_EXT_debug_marker"))
+ {
+#if (DE_OS == DE_OS_ANDROID)
+ TCU_THROW(TestError, "Support for GL_EXT_debug_marker is mandatory on Android");
+#else
+ TCU_THROW(NotSupportedError, "GL_EXT_debug_marker is not supported");
+#endif
+ }
+ // else no exception thrown
+}
+
+class IsSupportedCase : public TestCase
+{
+public:
+ IsSupportedCase (Context& context)
+ : TestCase(context, "supported", "Is GL_EXT_debug_marker supported")
+ {
+ }
+
+ IterateResult iterate (void)
+ {
+ checkSupport(m_context.getContextInfo());
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "GL_EXT_debug_marker is supported");
+ return STOP;
+ }
+};
+
+void getSimpleRndString (vector<char>& dst, de::Random& rnd, int maxLen)
+{
+ const char s_chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -_";
+
+ dst.resize(rnd.getInt(0, (int)maxLen));
+
+ for (size_t ndx = 0; ndx < dst.size(); ndx++)
+ dst[ndx] = rnd.choose<char>(DE_ARRAY_BEGIN(s_chars), DE_ARRAY_END(s_chars));
+}
+
+void getComplexRndString (vector<char>& dst, de::Random& rnd, int maxLen)
+{
+ dst.resize(rnd.getInt(0, (int)maxLen));
+
+ for (size_t ndx = 0; ndx < dst.size(); ndx++)
+ dst[ndx] = (char)rnd.getUint8();
+}
+
+enum CallType
+{
+ CALL_TYPE_PUSH_GROUP = 0,
+ CALL_TYPE_POP_GROUP,
+ CALL_TYPE_INSERT_MARKER,
+
+ CALL_TYPE_LAST
+};
+
+class RandomCase : public TestCase
+{
+public:
+ RandomCase (Context& context)
+ : TestCase(context, "random", "Random GL_EXT_debug_marker usage")
+ {
+ }
+
+ void init (void)
+ {
+ checkSupport(m_context.getContextInfo());
+ }
+
+ IterateResult iterate (void)
+ {
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+ const int numIters = 1000;
+ const int maxMsgLen = 4096;
+ de::Random rnd (0xaf829c0);
+
+ for (int iterNdx = 0; iterNdx < numIters; iterNdx++)
+ {
+ const CallType callType = CallType(rnd.getInt(0, CALL_TYPE_LAST-1));
+
+ if (callType == CALL_TYPE_PUSH_GROUP || callType == CALL_TYPE_INSERT_MARKER)
+ {
+ const bool nullTerminate = rnd.getBool();
+ const bool passLength = rnd.getBool();
+ const bool complexMsg = rnd.getBool();
+ vector<char> message;
+
+ if (complexMsg)
+ getComplexRndString(message, rnd, maxMsgLen);
+ else
+ getSimpleRndString(message, rnd, maxMsgLen);
+
+ if (nullTerminate)
+ message.push_back(char(0));
+
+ {
+ const glw::GLsizei length = passLength ? glw::GLsizei(nullTerminate ? message.size()-1 : message.size()) : 0;
+
+ if (callType == CALL_TYPE_PUSH_GROUP)
+ gl.pushGroupMarkerEXT(length, &message[0]);
+ else
+ gl.insertEventMarkerEXT(length, &message[0]);
+ }
+ }
+ else
+ gl.popGroupMarkerEXT();
+ }
+
+ GLU_EXPECT_NO_ERROR(gl.getError(), "Debug marker calls must not set error state");
+
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "All calls passed");
+ return STOP;
+ }
+};
+
+class InvalidCase : public TestCase
+{
+public:
+ InvalidCase (Context& context)
+ : TestCase(context, "invalid", "Invalid GL_EXT_debug_marker usage")
+ {
+ }
+
+ void init (void)
+ {
+ checkSupport(m_context.getContextInfo());
+ }
+
+ IterateResult iterate (void)
+ {
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+
+ m_testCtx.getLog() << TestLog::Message << "Note: GL_EXT_debug_marker calls must not report an error even if invalid arguments are supplied." << TestLog::EndMessage;
+
+ gl.pushGroupMarkerEXT(-1, "foo");
+ gl.insertEventMarkerEXT(-1, "foo");
+ gl.pushGroupMarkerEXT(0, DE_NULL);
+ gl.insertEventMarkerEXT(0, DE_NULL);
+ gl.pushGroupMarkerEXT(-1, DE_NULL);
+ gl.insertEventMarkerEXT(-1, DE_NULL);
+
+ GLU_EXPECT_NO_ERROR(gl.getError(), "Debug marker calls must not set error state");
+
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "All calls passed");
+ return STOP;
+ }
+};
+
+} // anonymous
+
+tcu::TestCaseGroup* createDebugMarkerTests (Context& context)
+{
+ de::MovePtr<tcu::TestCaseGroup> debugMarkerGroup (new tcu::TestCaseGroup(context.getTestContext(), "debug_marker", "GL_EXT_debug_marker tests"));
+
+ debugMarkerGroup->addChild(new IsSupportedCase (context));
+ debugMarkerGroup->addChild(new RandomCase (context));
+ debugMarkerGroup->addChild(new InvalidCase (context));
+
+ return debugMarkerGroup.release();
+}
+
+} // Functional
+} // gles2
+} // deqp
--- /dev/null
+#ifndef _ES2FDEBUGMARKERTESTS_HPP
+#define _ES2FDEBUGMARKERTESTS_HPP
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 2.0 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2015 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.
+ *
+ *//*!
+ * \file
+ * \brief GL_EXT_debug_marker tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tes2TestCase.hpp"
+
+namespace deqp
+{
+namespace gles2
+{
+namespace Functional
+{
+
+tcu::TestCaseGroup* createDebugMarkerTests (Context& context);
+
+} // Functional
+} // gles2
+} // deqp
+
+#endif // _ES2FDEBUGMARKERTESTS_HPP
#include "es2fShaderStateQueryTests.hpp"
#include "es2fReadPixelsTests.hpp"
+#include "es2fDebugMarkerTests.hpp"
namespace deqp
{
addChild(new FlushFinishTests (m_context));
addChild(new DefaultVertexAttributeTests(m_context));
addChild(createLifetimeTests (m_context));
+ addChild(createDebugMarkerTests (m_context));
}
} // Functional
'GL_EXT_texture_border_clamp',
'GL_EXT_texture_sRGB_R8',
'GL_EXT_texture_sRGB_RG8',
+ 'GL_EXT_debug_marker',
]
def getGLRegistry ():