1 /*------------------------------------------------------------------------ 2 * Vulkan Conformance Tests 3 * ------------------------ 4 * 5 * Copyright (c) 2017 The Khronos Group Inc. 6 * Copyright (c) 2017 Samsung Electronics Co., 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 Protected memory tests 23 *//*--------------------------------------------------------------------*/ 24 25 #include "vktProtectedMemTests.hpp" 26 27 #include "vktTestCase.hpp" 28 #include "vktTestGroupUtil.hpp" 29 30 #include "vktProtectedMemAttachmentLoadTests.hpp" 31 #include "vktProtectedMemAttachmentClearTests.hpp" 32 #include "vktProtectedMemCopyImageTests.hpp" 33 #include "vktProtectedMemBlitImageTests.hpp" 34 #include "vktProtectedMemClearColorImageTests.hpp" 35 #include "vktProtectedMemFillUpdateCopyBufferTests.hpp" 36 #include "vktProtectedMemCopyImageToBufferTests.hpp" 37 #include "vktProtectedMemCopyBufferToImageTests.hpp" 38 #include "vktProtectedMemStorageBufferTests.hpp" 39 #include "vktProtectedMemShaderImageAccessTests.hpp" 40 #include "vktProtectedMemWsiSwapchainTests.hpp" 41 #include "vktProtectedMemYCbCrConversionTests.hpp" 42 43 namespace vkt 44 { 45 namespace ProtectedMem 46 { 47 48 tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx) 49 { 50 de::MovePtr<tcu::TestCaseGroup> protectedTests (new tcu::TestCaseGroup(testCtx, "protected_memory", "Protected Memory Tests")); 51 52 // Attachment test case group 53 { 54 de::MovePtr<tcu::TestCaseGroup> attachmentTestGroup (new tcu::TestCaseGroup(testCtx, "attachment", "Protected Memory Attachment Tests")); 55 attachmentTestGroup->addChild(createAttachmentLoadTests(testCtx)); 56 attachmentTestGroup->addChild(createAttachmentClearTests(testCtx)); 57 protectedTests->addChild(attachmentTestGroup.release()); 58 } 59 60 // Image test case group 61 { 62 de::MovePtr<tcu::TestCaseGroup> imageTestGroup (new tcu::TestCaseGroup(testCtx, "image", "Protected Memory Image Tests")); 63 imageTestGroup->addChild(createCopyImageTests(testCtx)); 64 imageTestGroup->addChild(createBlitImageTests(testCtx)); 65 imageTestGroup->addChild(createClearColorImageTests(testCtx)); 66 imageTestGroup->addChild(createCopyBufferToImageTests(testCtx)); 67 imageTestGroup->addChild(createShaderImageAccessTests(testCtx)); 68 protectedTests->addChild(imageTestGroup.release()); 69 } 70 71 // Buffer test case group 72 { 73 de::MovePtr<tcu::TestCaseGroup> bufferTestGroup (new tcu::TestCaseGroup(testCtx, "buffer", "Protected Memory Buffer Tests")); 74 bufferTestGroup->addChild(createFillBufferTests(testCtx)); 75 bufferTestGroup->addChild(createUpdateBufferTests(testCtx)); 76 bufferTestGroup->addChild(createCopyBufferTests(testCtx)); 77 bufferTestGroup->addChild(createCopyImageToFloatBufferTests(testCtx)); 78 protectedTests->addChild(bufferTestGroup.release()); 79 } 80 81 // Storage buffer test case group 82 { 83 de::MovePtr<tcu::TestCaseGroup> ssboTestGroup (new tcu::TestCaseGroup(testCtx, "ssbo", "Storage Buffer Tests")); 84 ssboTestGroup->addChild(createReadStorageBufferTests(testCtx)); 85 ssboTestGroup->addChild(createWriteStorageBufferTests(testCtx)); 86 ssboTestGroup->addChild(createAtomicStorageBufferTests(testCtx)); 87 protectedTests->addChild(ssboTestGroup.release()); 88 } 89 90 { 91 de::MovePtr<tcu::TestCaseGroup> interactionTestGroup (new tcu::TestCaseGroup(testCtx, "interaction", "Various tests which interacts with other extensions")); 92 interactionTestGroup->addChild(createSwapchainTests(testCtx)); 93 interactionTestGroup->addChild(createYCbCrConversionTests(testCtx)); 94 protectedTests->addChild(interactionTestGroup.release()); 95 } 96 97 return protectedTests.release(); 98 99 } 100 101 } // ProtectedMem 102 } // vkt 103