Home | History | Annotate | Download | only in protected_memory
      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