Share instance/device across test case instances in dEQP-VK.synchronization.*
authorJeff Bolz <jbolz@nvidia.com>
Thu, 18 Jul 2019 19:45:02 +0000 (14:45 -0500)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 3 Oct 2019 18:07:58 +0000 (14:07 -0400)
commit7517f54d89a0fb8ccbd37584b3a4abc13d7fc41a
treee84cb85b2acb9cac55cd3e8b6b1ec425470b7c9c
parent5477d060df46890b033f1400d274e633fcb8d5df
Share instance/device across test case instances in dEQP-VK.synchronization.*

Some of the dEQP-VK.synchronization.* test groups create new devices or new
instances for each test case. This is a really expensive thing to do tens of
thousands of times, and makes this the longest-running test group in the CTS.
This change uses singleton objects to store the instance/device, and adds
cleanup callbacks to destroy the singletons when the group is finished.

VK-GL-CTS Issue: 1886
Components: Vulkan
Affects: dEQP-VK.synchronization.*

Change-Id: If935b457276790faf4a86e6f2afb5fd911987a85
(cherry picked from commit 90e05499c49c88fc4063748574931c3be5652b07)
external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp
external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp
external/vulkancts/modules/vulkan/vktTestGroupUtil.cpp
external/vulkancts/modules/vulkan/vktTestGroupUtil.hpp