1 /*------------------------------------------------------------------------
2 * Vulkan Conformance Tests
3 * ------------------------
5 * Copyright (c) 2015 The Khronos Group Inc.
6 * Copyright (c) 2015 Intel Corporation
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
23 *//*--------------------------------------------------------------------*/
25 #include "vktDrawTests.hpp"
27 #include "vktDrawSimpleTest.hpp"
28 #include "vktDrawConcurrentTests.hpp"
29 #include "vktDrawIndexedTest.hpp"
30 #include "vktDrawIndirectTest.hpp"
31 #include "vktDrawInstancedTests.hpp"
32 #include "vktTestGroupUtil.hpp"
33 #include "vktBasicDrawTests.hpp"
34 #include "vktDrawShaderDrawParametersTests.hpp"
35 #include "vktDrawNegativeViewportHeightTests.hpp"
36 #include "vktDrawInvertedDepthRangesTests.hpp"
37 #include "vktDrawDifferingInterpolationTests.hpp"
38 #include "vktDrawShaderLayerTests.hpp"
39 #include "vktDrawShaderViewportIndexTests.hpp"
40 #include "vktDrawScissorTests.hpp"
41 #include "vktDrawMultipleInterpolationTests.hpp"
42 #include "vktDrawDiscardRectanglesTests.hpp"
43 #include "vktDrawExplicitVertexParameterTests.hpp"
44 #include "vktDrawOutputLocationTests.hpp"
45 #include "vktDrawDepthClampTests.hpp"
46 #include "vktDrawAhbTests.hpp"
47 #include "vktDrawMultipleClearsWithinRenderPass.hpp"
48 #include "vktDrawMultiExtTests.hpp"
58 void createChildren (tcu::TestContext& testCtx, tcu::TestCaseGroup* group, bool useDynamicRendering)
60 group->addChild(new ConcurrentDrawTests (testCtx, useDynamicRendering));
61 group->addChild(new SimpleDrawTests (testCtx, useDynamicRendering));
62 group->addChild(new DrawIndexedTests (testCtx, useDynamicRendering));
63 group->addChild(new IndirectDrawTests (testCtx, useDynamicRendering));
64 group->addChild(createBasicDrawTests (testCtx, useDynamicRendering));
65 group->addChild(new InstancedTests (testCtx, useDynamicRendering));
66 group->addChild(new ShaderDrawParametersTests (testCtx, useDynamicRendering));
67 group->addChild(createNegativeViewportHeightTests (testCtx, useDynamicRendering));
68 group->addChild(createZeroViewportHeightTests (testCtx, useDynamicRendering));
69 group->addChild(createInvertedDepthRangesTests (testCtx, useDynamicRendering));
70 group->addChild(createDifferingInterpolationTests (testCtx, useDynamicRendering));
71 group->addChild(createShaderLayerTests (testCtx, useDynamicRendering));
72 group->addChild(createShaderViewportIndexTests (testCtx, useDynamicRendering));
73 group->addChild(createScissorTests (testCtx, useDynamicRendering));
74 group->addChild(createMultipleInterpolationTests (testCtx, useDynamicRendering));
75 group->addChild(createDiscardRectanglesTests (testCtx, useDynamicRendering));
76 group->addChild(createExplicitVertexParameterTests (testCtx, useDynamicRendering));
77 group->addChild(createDepthClampTests (testCtx, useDynamicRendering));
78 group->addChild(new MultipleClearsWithinRenderPassTests (testCtx, useDynamicRendering));
79 group->addChild(createDrawMultiExtTests (testCtx, useDynamicRendering));
81 if (!useDynamicRendering)
83 // amber tests - no support for dynamic rendering
84 group->addChild(createOutputLocationTests (testCtx));
86 // subpasses can't be translated to dynamic rendering
87 group->addChild(createAhbTests (testCtx));
93 tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
95 de::MovePtr<tcu::TestCaseGroup> mainGroup (new tcu::TestCaseGroup(testCtx, "draw", "Simple Draw tests"));
96 de::MovePtr<tcu::TestCaseGroup> renderpassGroup (new tcu::TestCaseGroup(testCtx, "renderpass", "Draw using render pass object"));
97 de::MovePtr<tcu::TestCaseGroup> dynamicRenderingGroup (new tcu::TestCaseGroup(testCtx, "dynamic_rendering", "Draw using VK_KHR_dynamic_rendering"));
99 createChildren(testCtx, renderpassGroup.get(), false);
100 createChildren(testCtx, dynamicRenderingGroup.get(), true);
102 mainGroup->addChild(renderpassGroup.release());
103 mainGroup->addChild(dynamicRenderingGroup.release());
105 return mainGroup.release();