blob: 0c309242aa4b8684634eef44b614c7d0e18f5037 [file] [log] [blame]
/*------------------------------------------------------------------------
* 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)
{
de::MovePtr<tcu::TestCaseGroup> protectedTests (new tcu::TestCaseGroup(testCtx, "protected_memory", "Protected Memory Tests"));
// Attachment test case group
{
de::MovePtr<tcu::TestCaseGroup> attachmentTestGroup (new tcu::TestCaseGroup(testCtx, "attachment", "Protected Memory Attachment Tests"));
attachmentTestGroup->addChild(createAttachmentLoadTests(testCtx));
attachmentTestGroup->addChild(createAttachmentClearTests(testCtx));
protectedTests->addChild(attachmentTestGroup.release());
}
// Image test case group
{
de::MovePtr<tcu::TestCaseGroup> imageTestGroup (new tcu::TestCaseGroup(testCtx, "image", "Protected Memory Image Tests"));
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<tcu::TestCaseGroup> bufferTestGroup (new tcu::TestCaseGroup(testCtx, "buffer", "Protected Memory Buffer Tests"));
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<tcu::TestCaseGroup> ssboTestGroup (new tcu::TestCaseGroup(testCtx, "ssbo", "Storage Buffer Tests"));
ssboTestGroup->addChild(createReadStorageBufferTests(testCtx));
ssboTestGroup->addChild(createWriteStorageBufferTests(testCtx));
ssboTestGroup->addChild(createAtomicStorageBufferTests(testCtx));
protectedTests->addChild(ssboTestGroup.release());
}
{
de::MovePtr<tcu::TestCaseGroup> interactionTestGroup (new tcu::TestCaseGroup(testCtx, "interaction", "Various tests which interacts with other extensions"));
interactionTestGroup->addChild(createSwapchainTests(testCtx));
interactionTestGroup->addChild(createYCbCrConversionTests(testCtx));
protectedTests->addChild(interactionTestGroup.release());
}
protectedTests->addChild(createWorkgroupStorageTests(testCtx));
protectedTests->addChild(createStackTests(testCtx));
return protectedTests.release();
}
} // ProtectedMem
} // vkt