1 /*------------------------------------------------------------------------ 2 * Vulkan Conformance Tests 3 * ------------------------ 4 * 5 * Copyright (c) 2017 The Khronos Group Inc. 6 * Copyright (c) 2017 Codeplay Software Ltd. 7 * 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 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 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. 19 * 20 */ /*! 21 * \file 22 * \brief Subgroups Tests 23 */ /*--------------------------------------------------------------------*/ 24 25 #include "vktSubgroupsTests.hpp" 26 #include "vktSubgroupsBuiltinVarTests.hpp" 27 #include "vktSubgroupsBuiltinMaskVarTests.hpp" 28 #include "vktSubgroupsBasicTests.hpp" 29 #include "vktSubgroupsVoteTests.hpp" 30 #include "vktSubgroupsBallotTests.hpp" 31 #include "vktSubgroupsBallotBroadcastTests.hpp" 32 #include "vktSubgroupsBallotOtherTests.hpp" 33 #include "vktSubgroupsArithmeticTests.hpp" 34 #include "vktSubgroupsClusteredTests.hpp" 35 #include "vktSubgroupsShuffleTests.hpp" 36 #include "vktSubgroupsQuadTests.hpp" 37 #include "vktSubgroupsShapeTests.hpp" 38 #include "vktSubgroupsBallotMasksTests.hpp" 39 #include "vktSubgroupsSizeControlTests.hpp" 40 #ifndef CTS_USES_VULKANSC 41 #include "vktSubgroupsPartitionedTests.hpp" 42 #include "vktSubgroupUniformControlFlowTests.hpp" 43 #include "vktSubgroupsQuadControlTests.hpp" 44 #endif // CTS_USES_VULKANSC 45 #include "vktSubgroupsMultipleDispatchesUniformSubgroupSizeTests.hpp" 46 #include "vktTestGroupUtil.hpp" 47 48 namespace vkt 49 { 50 namespace subgroups 51 { 52 53 namespace 54 { 55 createChildren(tcu::TestCaseGroup * subgroupsTests)56void createChildren(tcu::TestCaseGroup *subgroupsTests) 57 { 58 tcu::TestContext &testCtx = subgroupsTests->getTestContext(); 59 60 subgroupsTests->addChild(createSubgroupsBuiltinVarTests(testCtx)); 61 subgroupsTests->addChild(createSubgroupsBuiltinMaskVarTests(testCtx)); 62 subgroupsTests->addChild(createSubgroupsBasicTests(testCtx)); 63 subgroupsTests->addChild(createSubgroupsVoteTests(testCtx)); 64 subgroupsTests->addChild(createSubgroupsBallotTests(testCtx)); 65 subgroupsTests->addChild(createSubgroupsBallotBroadcastTests(testCtx)); 66 subgroupsTests->addChild(createSubgroupsBallotOtherTests(testCtx)); 67 subgroupsTests->addChild(createSubgroupsArithmeticTests(testCtx)); 68 subgroupsTests->addChild(createSubgroupsClusteredTests(testCtx)); 69 #ifndef CTS_USES_VULKANSC 70 subgroupsTests->addChild(createSubgroupsPartitionedTests(testCtx)); 71 #endif 72 subgroupsTests->addChild(createSubgroupsShuffleTests(testCtx)); 73 subgroupsTests->addChild(createSubgroupsQuadTests(testCtx)); 74 subgroupsTests->addChild(createSubgroupsShapeTests(testCtx)); 75 subgroupsTests->addChild(createSubgroupsBallotMasksTests(testCtx)); 76 subgroupsTests->addChild(createMultipleDispatchesUniformSubgroupSizeTests(testCtx)); 77 subgroupsTests->addChild(createSubgroupsSizeControlTests(testCtx)); 78 #ifndef CTS_USES_VULKANSC 79 subgroupsTests->addChild(createSubgroupUniformControlFlowTests(testCtx)); 80 subgroupsTests->addChild(createSubgroupsQuadControlTests(testCtx)); 81 #endif // CTS_USES_VULKANSC 82 } 83 84 } // namespace 85 createTests(tcu::TestContext & testCtx,const std::string & name)86tcu::TestCaseGroup *createTests(tcu::TestContext &testCtx, const std::string &name) 87 { 88 return createTestGroup(testCtx, name.c_str(), createChildren); 89 } 90 91 } // namespace subgroups 92 } // namespace vkt 93