/*------------------------------------------------------------------------ * Vulkan Conformance Tests * ------------------------ * * Copyright (c) 2017 The Khronos Group Inc. * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *//*! * \file * \brief Protected memory tests *//*--------------------------------------------------------------------*/ #include "vktProtectedMemTests.hpp" #include "vktTestCase.hpp" #include "vktTestGroupUtil.hpp" #include "vktProtectedMemAttachmentLoadTests.hpp" #include "vktProtectedMemAttachmentClearTests.hpp" #include "vktProtectedMemCopyImageTests.hpp" #include "vktProtectedMemBlitImageTests.hpp" #include "vktProtectedMemClearColorImageTests.hpp" #include "vktProtectedMemFillUpdateCopyBufferTests.hpp" #include "vktProtectedMemCopyImageToBufferTests.hpp" #include "vktProtectedMemCopyBufferToImageTests.hpp" #include "vktProtectedMemStorageBufferTests.hpp" #include "vktProtectedMemShaderImageAccessTests.hpp" #include "vktProtectedMemWsiSwapchainTests.hpp" #include "vktProtectedMemYCbCrConversionTests.hpp" #include "vktProtectedMemWorkgroupStorageTests.hpp" #include "vktProtectedMemStackTests.hpp" namespace vkt { namespace ProtectedMem { tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx, const std::string& name) { de::MovePtr protectedTests (new tcu::TestCaseGroup(testCtx, name.c_str())); // Attachment test case group { de::MovePtr attachmentTestGroup (new tcu::TestCaseGroup(testCtx, "attachment")); attachmentTestGroup->addChild(createAttachmentLoadTests(testCtx)); attachmentTestGroup->addChild(createAttachmentClearTests(testCtx)); protectedTests->addChild(attachmentTestGroup.release()); } // Image test case group { de::MovePtr imageTestGroup (new tcu::TestCaseGroup(testCtx, "image")); imageTestGroup->addChild(createCopyImageTests(testCtx)); imageTestGroup->addChild(createBlitImageTests(testCtx)); imageTestGroup->addChild(createClearColorImageTests(testCtx)); imageTestGroup->addChild(createCopyBufferToImageTests(testCtx)); imageTestGroup->addChild(createShaderImageAccessTests(testCtx)); protectedTests->addChild(imageTestGroup.release()); } // Buffer test case group { de::MovePtr bufferTestGroup (new tcu::TestCaseGroup(testCtx, "buffer")); bufferTestGroup->addChild(createFillBufferTests(testCtx)); bufferTestGroup->addChild(createUpdateBufferTests(testCtx)); bufferTestGroup->addChild(createCopyBufferTests(testCtx)); bufferTestGroup->addChild(createCopyImageToFloatBufferTests(testCtx)); protectedTests->addChild(bufferTestGroup.release()); } // Storage buffer test case group { de::MovePtr ssboTestGroup (new tcu::TestCaseGroup(testCtx, "ssbo")); ssboTestGroup->addChild(createReadStorageBufferTests(testCtx)); ssboTestGroup->addChild(createWriteStorageBufferTests(testCtx)); ssboTestGroup->addChild(createAtomicStorageBufferTests(testCtx)); protectedTests->addChild(ssboTestGroup.release()); } { de::MovePtr interactionTestGroup (new tcu::TestCaseGroup(testCtx, "interaction")); #ifndef CTS_USES_VULKANSC interactionTestGroup->addChild(createSwapchainTests(testCtx)); #endif interactionTestGroup->addChild(createYCbCrConversionTests(testCtx)); protectedTests->addChild(interactionTestGroup.release()); } protectedTests->addChild(createWorkgroupStorageTests(testCtx)); protectedTests->addChild(createStackTests(testCtx)); return protectedTests.release(); } } // ProtectedMem } // vkt