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 tcu::TestCaseGroup* createTestsInternal (tcu::TestContext& testCtx, bool useDynamicRendering)
60 const char* groupName[] { "draw", "draw_with_dynamic_rendering" };
61 const char* groupDescription[] { "Simple Draw tests", "Simple Draw tests using VK_KHR_dynamic_rendering" };
63 de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, groupName[useDynamicRendering], groupDescription[useDynamicRendering]));
65 group->addChild(new ConcurrentDrawTests (testCtx, useDynamicRendering));
66 group->addChild(new SimpleDrawTests (testCtx, useDynamicRendering));
67 group->addChild(new DrawIndexedTests (testCtx, useDynamicRendering));
68 group->addChild(new IndirectDrawTests (testCtx, useDynamicRendering));
69 group->addChild(createBasicDrawTests (testCtx, useDynamicRendering));
70 group->addChild(new InstancedTests (testCtx, useDynamicRendering));
71 group->addChild(new ShaderDrawParametersTests (testCtx, useDynamicRendering));
72 group->addChild(createNegativeViewportHeightTests (testCtx, useDynamicRendering));
73 group->addChild(createZeroViewportHeightTests (testCtx, useDynamicRendering));
74 group->addChild(createInvertedDepthRangesTests (testCtx, useDynamicRendering));
75 group->addChild(createDifferingInterpolationTests (testCtx, useDynamicRendering));
76 group->addChild(createShaderLayerTests (testCtx, useDynamicRendering));
77 group->addChild(createShaderViewportIndexTests (testCtx, useDynamicRendering));
78 group->addChild(createScissorTests (testCtx, useDynamicRendering));
79 group->addChild(createMultipleInterpolationTests (testCtx, useDynamicRendering));
80 group->addChild(createDiscardRectanglesTests (testCtx, useDynamicRendering));
81 group->addChild(createExplicitVertexParameterTests (testCtx, useDynamicRendering));
82 group->addChild(createDepthClampTests (testCtx, useDynamicRendering));
83 group->addChild(new MultipleClearsWithinRenderPassTests (testCtx, useDynamicRendering));
84 group->addChild(createDrawMultiExtTests (testCtx, useDynamicRendering));
86 if (!useDynamicRendering)
88 // amber tests - no support for dynamic rendering
89 group->addChild(createOutputLocationTests (testCtx));
91 // subpasses can't be translated to dynamic rendering
92 group->addChild(createAhbTests (testCtx));
95 return group.release();
100 tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
102 return createTestsInternal(testCtx, false);
105 tcu::TestCaseGroup* createDynamicRenderingTests (tcu::TestContext& testCtx)
107 return createTestsInternal(testCtx, true);