--- /dev/null
+group builtins "Builtin Tests"
+
+ case core_gl_FragColor
+ version 420
+ expect compile_fail
+ vertex ""
+ #version 420
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420
+ void main()
+ {
+ gl_FragColor = vec4(1.0);
+ }
+ ""
+ end
+
+ case core_gl_FragData
+ version 420
+ expect compile_fail
+ vertex ""
+ #version 420
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420
+ void main()
+ {
+ gl_FragData[0] = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+ ""
+ end
+
+ case core_gl_MaxVaryingFloats
+ version 420
+ expect compile_fail
+ vertex ""
+ #version 420
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420
+ out vec4 color;
+ void main()
+ {
+ color = vec4(float(gl_MaxVaryingFloats));
+ }
+ ""
+ end
+
+ case core_texture_builtins
+ version 420
+ expect compile_fail
+ vertex ""
+ #version 420
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420
+ uniform sampler1D tex1d;
+ uniform sampler2D tex2d;
+ uniform sampler3D tex3d;
+ uniform samplerCube texCube;
+
+ uniform float i;
+ uniform float dummy_f_coord;
+ uniform vec2 dummy_v2_coord;
+ uniform vec3 dummy_v3_coord;
+ uniform vec4 dummy_v4_coord;
+ out vec4 color;
+ void main()
+ {
+ color = texture1D(tex1d, dummy_f_coord, i);
+ color =+ texture1DProj(tex1d, dummy_v2_coord, i);
+ color =+ texture1DProj(tex1d, dummy_v4_coord, i);
+ color =+ texture1DLod(tex1d, dummy_f_coord, i);
+ color =+ texture1DProjLod(tex1d, dummy_v2_coord, i);
+ color =+ texture1DProjLod(tex1d, dummy_v4_coord, i);
+
+ color =+ texture2D(tex2d, dummy_v2_coord, i);
+ color =+ texture2DProj(tex2d, dummy_v3_coord, i);
+ color =+ texture2DProj(tex2d, dummy_v4_coord, i);
+ color =+ texture2DLod(tex2d, dummy_v2_coord, i);
+ color =+ texture2DProjLod(tex2d, dummy_v3_coord, i);
+ color =+ texture2DProjLod(tex2d, dummy_v4_coord, i);
+
+ color =+ texture3D(tex3d, dummy_v3_coord, i);
+ color =+ texture3DProj(tex3d, dummy_v4_coord, i);
+ color =+ texture3DLod(tex3d, dummy_v3_coord, i);
+ color =+ texture3DProjLod(tex3d, dummy_v4_coord, i);
+
+ color =+ textureCube(texCube, dummy_v3_coord, i);
+ color =+ textureCubeLod(texCube, dummy_v3_coord, i);
+ }
+ ""
+ end
+
+ case core_shadow_builtins
+ version 420
+ expect compile_fail
+ vertex ""
+ #version 420
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420
+ uniform sampler1DShadow tex1dshadow;
+ uniform sampler2DShadow tex2dshadow;
+
+ uniform float i;
+ uniform vec3 dummy_v3_coord;
+ uniform vec4 dummy_v4_coord;
+ out vec4 color;
+ void main()
+ {
+ color = shadow1D(tex1dshadow, dummy_v3_coord, i);
+ color =+ shadow1DProj(tex1dshadow, dummy_v4_coord, i);
+ color =+ shadow1DLod(tex1dshadow, dummy_v3_coord, i);
+ color =+ shadow1DProjLod(tex1dshadow, dummy_v4_coord, i);
+
+ color =+ shadow2D(tex2dshadow, dummy_v3_coord, i);
+ color =+ shadow2DProj(tex2dshadow, dummy_v4_coord, i);
+ color =+ shadow2DLod(tex2dshadow, dummy_v3_coord, i);
+ color =+ shadow2DProjLod(tex2dshadow, dummy_v4_coord, i);
+ }
+ ""
+ end
+
+ case compatibility_gl_FragColor
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ void main()
+ {
+ gl_FragColor = vec4(1.0);
+ }
+ ""
+ end
+
+ case compatibility_gl_FragData
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ void main()
+ {
+ gl_FragData[0] = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+ ""
+ end
+
+ case compatibility_gl_MaxVaryingFloats
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ out vec4 color;
+ void main()
+ {
+ color = vec4(float(gl_MaxVaryingFloats));
+ }
+ ""
+ end
+
+ case compatibility_texture_builtins
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ uniform sampler1D tex1d;
+ uniform sampler2D tex2d;
+ uniform sampler3D tex3d;
+ uniform samplerCube texCube;
+
+ uniform float i;
+ uniform float dummy_f_coord;
+ uniform vec2 dummy_v2_coord;
+ uniform vec3 dummy_v3_coord;
+ uniform vec4 dummy_v4_coord;
+ out vec4 color;
+ void main()
+ {
+ color = texture1D(tex1d, dummy_f_coord, i);
+ color =+ texture1DProj(tex1d, dummy_v2_coord, i);
+ color =+ texture1DProj(tex1d, dummy_v4_coord, i);
+ color =+ texture1DLod(tex1d, dummy_f_coord, i);
+ color =+ texture1DProjLod(tex1d, dummy_v2_coord, i);
+ color =+ texture1DProjLod(tex1d, dummy_v4_coord, i);
+
+ color =+ texture2D(tex2d, dummy_v2_coord, i);
+ color =+ texture2DProj(tex2d, dummy_v3_coord, i);
+ color =+ texture2DProj(tex2d, dummy_v4_coord, i);
+ color =+ texture2DLod(tex2d, dummy_v2_coord, i);
+ color =+ texture2DProjLod(tex2d, dummy_v3_coord, i);
+ color =+ texture2DProjLod(tex2d, dummy_v4_coord, i);
+
+ color =+ texture3D(tex3d, dummy_v3_coord, i);
+ color =+ texture3DProj(tex3d, dummy_v4_coord, i);
+ color =+ texture3DLod(tex3d, dummy_v3_coord, i);
+ color =+ texture3DProjLod(tex3d, dummy_v4_coord, i);
+
+ color =+ textureCube(texCube, dummy_v3_coord, i);
+ color =+ textureCubeLod(texCube, dummy_v3_coord, i);
+ }
+ ""
+ end
+
+ case compatibility_shadow_builtins
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ uniform sampler1DShadow tex1dshadow;
+ uniform sampler2DShadow tex2dshadow;
+
+ uniform float i;
+ uniform vec3 dummy_v3_coord;
+ uniform vec4 dummy_v4_coord;
+ out vec4 color;
+ void main()
+ {
+ color = shadow1D(tex1dshadow, dummy_v3_coord, i);
+ color =+ shadow1DProj(tex1dshadow, dummy_v4_coord, i);
+ color =+ shadow1DLod(tex1dshadow, dummy_v3_coord, i);
+ color =+ shadow1DProjLod(tex1dshadow, dummy_v4_coord, i);
+
+ color =+ shadow2D(tex2dshadow, dummy_v3_coord, i);
+ color =+ shadow2DProj(tex2dshadow, dummy_v4_coord, i);
+ color =+ shadow2DLod(tex2dshadow, dummy_v3_coord, i);
+ color =+ shadow2DProjLod(tex2dshadow, dummy_v4_coord, i);
+ }
+ ""
+ end
+
+end
--- /dev/null
+group varyings "Varying Tests"
+
+ case core_varyings
+ version 450
+ expect compile_fail
+ vertex ""
+ #version 450
+ ${VERTEX_DECLARATIONS}
+ in vec4 in_v;
+ varying vec4 out_v;
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ out_v = in_v;
+ }
+ ""
+ fragment ""
+ #version 450
+ varying vec4 out_v;
+ out vec4 color;
+ void main()
+ {
+ color = out_v;
+ }
+ ""
+ end
+
+ case core_attributes
+ version 420
+ expect compile_fail
+ vertex ""
+ #version 420
+ ${VERTEX_DECLARATIONS}
+ attribute vec4 in_v;
+ out vec4 out_v;
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ out_v = in_v;
+ }
+ ""
+ fragment ""
+ #version 420
+ in vec4 out_v;
+ out vec4 color;
+ void main()
+ {
+ color = out_v;
+ }
+ ""
+ end
+
+ case compatibility_varyings
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ in vec4 in_v;
+ varying vec4 out_v;
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ out_v = in_v;
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ varying vec4 out_v;
+ out vec4 color;
+ void main()
+ {
+ color = out_v;
+ }
+ ""
+ end
+
+ case compatibility_attributes
+ version 420
+ vertex ""
+ #version 420 compatibility
+ ${VERTEX_DECLARATIONS}
+ attribute vec4 in_v;
+ out vec4 out_v;
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ out_v = in_v;
+ }
+ ""
+ fragment ""
+ #version 420 compatibility
+ in vec4 out_v;
+ out vec4 color;
+ void main()
+ {
+ color = out_v;
+ }
+ ""
+ end
+
+end
--- /dev/null
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_gl_FragColor
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_gl_FragData
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_gl_MaxVaryingFloats
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_texture_builtins
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_shadow_builtins
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_gl_FragColor
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_gl_FragData
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_gl_MaxVaryingFloats
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_texture_builtins
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_shadow_builtins
+KHR-COMPAT-GL42.shaders42.varying.varyings.core_varyings
+KHR-COMPAT-GL42.shaders42.varying.varyings.core_attributes
+KHR-COMPAT-GL42.shaders42.varying.varyings.compatibility_varyings
+KHR-COMPAT-GL42.shaders42.varying.varyings.compatibility_attributes
<Configuration caseListFile="gl42-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=-1 --deqp-surface-height=64 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
<Configuration caseListFile="gl42-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
<Configuration caseListFile="gl42-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=-1 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=-1 --deqp-surface-height=64 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
<Configuration caseListFile="gl41-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
<Configuration caseListFile="gl41-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
<Configuration caseListFile="gl41-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=-1 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
--- /dev/null
+KHR-GL42-COMPAT.*
--- /dev/null
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_gl_FragColor
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_gl_FragData
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_gl_MaxVaryingFloats
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_texture_builtins
+KHR-COMPAT-GL42.shaders42.builtin.builtins.core_shadow_builtins
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_gl_FragColor
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_gl_FragData
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_gl_MaxVaryingFloats
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_texture_builtins
+KHR-COMPAT-GL42.shaders42.builtin.builtins.compatibility_shadow_builtins
+KHR-COMPAT-GL42.shaders42.varying.varyings.core_varyings
+KHR-COMPAT-GL42.shaders42.varying.varyings.core_attributes
+KHR-COMPAT-GL42.shaders42.varying.varyings.compatibility_varyings
+KHR-COMPAT-GL42.shaders42.varying.varyings.compatibility_attributes
<Configuration caseListFile="gl42-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=-1 --deqp-surface-height=64 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
<Configuration caseListFile="gl42-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
<Configuration caseListFile="gl42-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=-1 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=-1 --deqp-surface-height=64 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
+ <Configuration caseListFile="gl42-compat-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="False"/>
<Configuration caseListFile="gl41-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
<Configuration caseListFile="gl41-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=113 --deqp-surface-height=47 --deqp-base-seed=2 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
<Configuration caseListFile="gl41-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=-1 --deqp-base-seed=3 --deqp-gl-config-name=rgba8888d24s8 --deqp-surface-type=fbo --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
--- /dev/null
+KHR-GL42-COMPAT.*
namespace gl3cts
{
-class TestCaseWrapper : public tcu::TestCaseExecutor
-{
-public:
- TestCaseWrapper(GL30TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
- ~TestCaseWrapper(void);
-
- void init(tcu::TestCase* testCase, const std::string& path);
- void deinit(tcu::TestCase* testCase);
- tcu::TestNode::IterateResult iterate(tcu::TestCase* testCase);
-
-private:
- GL30TestPackage& m_testPackage;
- de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
-};
-
-TestCaseWrapper::TestCaseWrapper(GL30TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+TestCaseWrapper::TestCaseWrapper(deqp::TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
: m_testPackage (package)
, m_waiverMechanism (waiverMechanism)
{
namespace gl3cts
{
+class TestCaseWrapper : public tcu::TestCaseExecutor
+{
+public:
+ TestCaseWrapper(deqp::TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
+ ~TestCaseWrapper(void);
+
+ void init(tcu::TestCase* testCase, const std::string& path);
+ void deinit(tcu::TestCase* testCase);
+ tcu::TestNode::IterateResult iterate(tcu::TestCase* testCase);
+
+private:
+ deqp::TestPackage& m_testPackage;
+ de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
+};
+
class GL30TestPackage : public deqp::TestPackage
{
public:
}
}
+// GL42CompatTestPackage
+
+class GL42CompatShaderTests : public deqp::TestCaseGroup
+{
+public:
+ GL42CompatShaderTests(deqp::Context& context) : TestCaseGroup(context, "shaders42", "Shading Language Tests")
+ {
+ }
+
+ void init(void)
+ {
+ addChild(new deqp::ShaderLibraryGroup(m_context, "builtin", "Builtin Tests", "gl42-compat/builtins.test"));
+ addChild(new deqp::ShaderLibraryGroup(m_context, "varying", "Varying Tests", "gl42-compat/varyings.test"));
+ }
+};
+
+GL42CompatTestPackage::GL42CompatTestPackage(tcu::TestContext& testCtx, const char* packageName, const char* description,
+ glu::ContextType renderContextType)
+ : TestPackage(testCtx, packageName, packageName, renderContextType, "gl_cts/data/")
+{
+ (void)description;
+}
+
+GL42CompatTestPackage::~GL42CompatTestPackage(void)
+{
+}
+
+void GL42CompatTestPackage::init(void)
+{
+ // Call init() in parent - this creates context.
+ TestPackage::init();
+
+ try
+ {
+ addChild(new GL42CompatShaderTests(getContext()));
+ }
+ catch (...)
+ {
+ // Destroy context.
+ TestPackage::deinit();
+ throw;
+ }
+}
+
+tcu::TestCaseExecutor* GL42CompatTestPackage::createExecutor(void) const
+{
+ return new gl3cts::TestCaseWrapper(const_cast<GL42CompatTestPackage&>(*this), m_waiverMechanism);
+}
+
// GL43TestPackage
GL43TestPackage::GL43TestPackage(tcu::TestContext& testCtx, const char* packageName, const char* description,
void init(void);
};
+class GL42CompatTestPackage : public deqp::TestPackage
+{
+public:
+ GL42CompatTestPackage(tcu::TestContext& testCtx, const char* packageName,
+ const char* description = "OpenGL 4.2 Compatibility Conformance Tests",
+ glu::ContextType renderContextType = glu::ContextType(4, 2, glu::PROFILE_COMPATIBILITY));
+
+ ~GL42CompatTestPackage(void);
+
+ tcu::TestCaseExecutor* createExecutor(void) const;
+
+ void init(void);
+
+ using deqp::TestPackage::getContext;
+};
+
class GL43TestPackage : public GL42TestPackage
{
public:
{
return new gl4cts::GL42TestPackage(testCtx, "KHR-GL42");
}
+static tcu::TestPackage* createGL42CompatPackage(tcu::TestContext& testCtx)
+{
+ return new gl4cts::GL42CompatTestPackage(testCtx, "KHR-GL42-COMPAT");
+}
static tcu::TestPackage* createGL43Package(tcu::TestContext& testCtx)
{
return new gl4cts::GL43TestPackage(testCtx, "KHR-GL43");
registry->registerPackage("KHR-GL40", createGL40Package);
registry->registerPackage("KHR-GL41", createGL41Package);
registry->registerPackage("KHR-GL42", createGL42Package);
+ registry->registerPackage("KHR-COMPAT-GL42", createGL42CompatPackage);
registry->registerPackage("KHR-GL43", createGL43Package);
registry->registerPackage("KHR-GL44", createGL44Package);
registry->registerPackage("KHR-GL45", createGL45Package);
{ glu::ApiType::core(4, 2), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
{ glu::ApiType::core(4, 2), "master", DE_NULL, "unspecified", 3, "rgba8888d24s8", 64, -1 },
{ glu::ApiType::core(4, 2), "master", DE_NULL, "unspecified", 3, "rgba8888d24s8", -1, 64 },
+ { glu::ApiType::compatibility(4, 2), "master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
+ { glu::ApiType::compatibility(4, 2), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
+ { glu::ApiType::compatibility(4, 2), "master", DE_NULL, "unspecified", 3, "rgba8888d24s8", 64, -1 },
+ { glu::ApiType::compatibility(4, 2), "master", DE_NULL, "unspecified", 3, "rgba8888d24s8", -1, 64 },
{ glu::ApiType::core(4, 1), "master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
{ glu::ApiType::core(4, 1), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
{ glu::ApiType::core(4, 1), "master", DE_NULL, "unspecified", 3, "rgba8888d24s8", 64, -1 },
{ glu::ApiType::core(4, 3), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
{ glu::ApiType::core(4, 2), "master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
{ glu::ApiType::core(4, 2), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
+ { glu::ApiType::compatibility(4, 2), "master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
+ { glu::ApiType::compatibility(4, 2), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
{ glu::ApiType::core(4, 1), "master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
{ glu::ApiType::core(4, 1), "master", DE_NULL, "unspecified", 2, DE_NULL, 113, 47 },
{ glu::ApiType::core(4, 0), "master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
Module("KHR-GL44", "GL44"),
Module("KHR-GL43", "GL43"),
Module("KHR-GL42", "GL42"),
+ Module("KHR-GL42-COMPAT", "GL42-COMPAT"),
Module("KHR-GL41", "GL41"),
Module("KHR-GL40", "GL40"),
Module("KHR-GL33", "GL33"),
('KHR-GL44', ['master', [include('gl44-master.txt'), exclude('gl44-test-issues.txt')]]),
('KHR-GL43', ['master', [include('gl43-master.txt'), exclude('gl43-test-issues.txt')]]),
('KHR-GL42', ['master', [include('gl42-master.txt'), exclude('gl42-test-issues.txt')]]),
+ ('KHR-GL42-COMPAT', ['master', [include('gl42-compat-master.txt')]]),
('KHR-GL41', ['master', [include('gl41-master.txt'), exclude('gl41-test-issues.txt')]]),
('KHR-GL40', ['master', [include('gl40-master.txt'), exclude('gl40-test-issues.txt')]]),
('KHR-GL33', ['master', [include('gl33-master.txt'), exclude('gl33-test-issues.txt')]]),
return "glu::ApiType::core(3, 0)"
if apiName == "EGL":
return "glu::ApiType()"
+ if apiName == "GL42-COMPAT":
+ return "glu::ApiType::compatibility(4, 2)"
raise Exception("Unknown API %s" % apiName)
return "Unknown"
{ ApiType::core(4,4), glw::initGL44Core },
{ ApiType::core(4,5), glw::initGL45Core },
{ ApiType::core(4,6), glw::initGL46Core },
+ // TODO: initialise actual compat functions rather than using core as a dummy
+ { ApiType::compatibility(3,2), glw::initGL32Core },
+ { ApiType::compatibility(3,3), glw::initGL33Core },
+ { ApiType::compatibility(4,0), glw::initGL40Core },
+ { ApiType::compatibility(4,1), glw::initGL41Core },
+ { ApiType::compatibility(4,2), glw::initGL42Core },
+ { ApiType::compatibility(4,3), glw::initGL43Core },
+ { ApiType::compatibility(4,4), glw::initGL44Core },
+ { ApiType::compatibility(4,5), glw::initGL45Core },
+ { ApiType::compatibility(4,6), glw::initGL46Core },
};
for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(s_initFuncs); ndx++)
else if (type == glu::ApiType::core(4, 4)) return "OpenGL 4.4 core";
else if (type == glu::ApiType::core(4, 5)) return "OpenGL 4.5 core";
else if (type == glu::ApiType::core(4, 6)) return "OpenGL 4.6 core";
+ else if (type == glu::ApiType::compatibility(3, 2)) return "OpenGL 3.2 compatibility";
+ else if (type == glu::ApiType::compatibility(3, 3)) return "OpenGL 3.3 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 0)) return "OpenGL 4.0 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 1)) return "OpenGL 4.1 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 2)) return "OpenGL 4.2 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 3)) return "OpenGL 4.3 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 4)) return "OpenGL 4.4 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 5)) return "OpenGL 4.5 compatibility";
+ else if (type == glu::ApiType::compatibility(4, 6)) return "OpenGL 4.6 compatibility";
else return DE_NULL;
}
resetStateES(renderCtx, ctxInfo);
else if (isContextTypeGLCore(renderCtx.getType()))
resetStateGLCore(renderCtx, ctxInfo);
- else
+ else if (isContextTypeGLCompatibility(renderCtx.getType())) {
+ // TODO: handle reset state correctly for compatibility profile
+ resetStateGLCore(renderCtx, ctxInfo);
+ } else
throw tcu::InternalError("State reset requested for unsupported context type");
}
version = "4.6.0";
shadingLanguageVersion = "4.60";
}
+ else if (glu::isContextTypeGLCompatibility(ctxType) && ctxType.getMajorVersion() == 4 && ctxType.getMinorVersion() <= 2)
+ {
+ version = "4.2.0";
+ shadingLanguageVersion = "4.20";
+ }
else
throw tcu::NotSupportedError("Unsupported GL version", "", __FILE__, __LINE__);