From 567f6803304e69802146e3f0b5270254ee9e08ef Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Date: Tue, 26 Oct 2021 13:30:52 +0200 Subject: [PATCH] Test contradictory parameters on swapchain creation This commit adds new tests that check the implementation properly ignores queueFamilyIndexCount and pQueueFamilyIndices on swapchain creation when imageSharingMode is set to VK_SHARING_MODE_EXCLUSIVE, by providing a null pointer in pQueueFamilyIndices and a nonzero queueFamilyIndexCount. In addition, swapchain creation tests using VK_SHARING_MODE_EXCLUSIVE will no longer pass 1 in queueFamilyIndexCount and a list of surface-compatible queues in pQueueFamilyIndices, setting queueFamilyIndexCount to 0 and passing a null pointer instead. Finally, the commit adds de::arrayLength as a more modern and constexpr way of obtaining the size of statically-sized arrays, similar to DE_LENGTH_OF_ARRAY, which can be used with static_assert. New tests: dEQP-VK.*exclusive_nonzero_queues Affected tests: dEQP-VK.*.swapchain.create.* Components: Framework, Vulkan VK-GL-CTS issue: 3244 Change-Id: I631aba22ac18d1fe6a2fcc8bf41890b2e8a2cc91 --- android/cts/master/vk-master-2021-03-01/wsi.txt | 9 ++++++ android/cts/master/vk-master/wsi.txt | 9 ++++++ .../modules/vulkan/wsi/vktWsiSwapchainTests.cpp | 33 ++++++++++++++-------- .../vulkancts/mustpass/master/vk-default/wsi.txt | 21 ++++++++++++++ framework/delibs/decpp/deDefs.hpp | 4 +++ 5 files changed, 64 insertions(+), 12 deletions(-) diff --git a/android/cts/master/vk-master-2021-03-01/wsi.txt b/android/cts/master/vk-master-2021-03-01/wsi.txt index 8e94c48..79a97fa 100644 --- a/android/cts/master/vk-master-2021-03-01/wsi.txt +++ b/android/cts/master/vk-master-2021-03-01/wsi.txt @@ -1,3 +1,5 @@ +dEQP-VK.wsi.android.swapchain.create.exclusive_nonzero_queues +dEQP-VK.wsi.android.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.android.swapchain.destroy.old_swapchain dEQP-VK.wsi.android.swapchain.acquire.too_many dEQP-VK.wsi.android.swapchain.acquire.too_many_timeout @@ -10,6 +12,7 @@ dEQP-VK.wsi.android.swapchain.private_data.pre_transform dEQP-VK.wsi.android.swapchain.private_data.composite_alpha dEQP-VK.wsi.android.swapchain.private_data.present_mode dEQP-VK.wsi.android.swapchain.private_data.clipped +dEQP-VK.wsi.android.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.android.colorspace_compare.b8g8r8a8_unorm dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_unorm dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_srgb @@ -29,6 +32,8 @@ dEQP-VK.wsi.android.present_id_wait.wait.no_frames dEQP-VK.wsi.android.present_id_wait.wait.no_frame_id dEQP-VK.wsi.android.present_id_wait.wait.future_frame dEQP-VK.wsi.android.present_id_wait.wait.two_swapchains +dEQP-VK.wsi.macos.swapchain.create.exclusive_nonzero_queues +dEQP-VK.wsi.macos.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.macos.swapchain.destroy.old_swapchain dEQP-VK.wsi.macos.swapchain.acquire.too_many dEQP-VK.wsi.macos.swapchain.acquire.too_many_timeout @@ -41,6 +46,7 @@ dEQP-VK.wsi.macos.swapchain.private_data.pre_transform dEQP-VK.wsi.macos.swapchain.private_data.composite_alpha dEQP-VK.wsi.macos.swapchain.private_data.present_mode dEQP-VK.wsi.macos.swapchain.private_data.clipped +dEQP-VK.wsi.macos.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.macos.colorspace_compare.b8g8r8a8_unorm dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_unorm dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_srgb @@ -85,6 +91,7 @@ dEQP-VK.wsi.headless.swapchain.create.pre_transform dEQP-VK.wsi.headless.swapchain.create.composite_alpha dEQP-VK.wsi.headless.swapchain.create.present_mode dEQP-VK.wsi.headless.swapchain.create.clipped +dEQP-VK.wsi.headless.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.headless.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.headless.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.headless.swapchain.simulate_oom.image_format @@ -96,6 +103,7 @@ dEQP-VK.wsi.headless.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.headless.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.headless.swapchain.simulate_oom.present_mode dEQP-VK.wsi.headless.swapchain.simulate_oom.clipped +dEQP-VK.wsi.headless.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.headless.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.headless.swapchain.render.basic dEQP-VK.wsi.headless.swapchain.render.basic2 @@ -121,6 +129,7 @@ dEQP-VK.wsi.headless.swapchain.private_data.pre_transform dEQP-VK.wsi.headless.swapchain.private_data.composite_alpha dEQP-VK.wsi.headless.swapchain.private_data.present_mode dEQP-VK.wsi.headless.swapchain.private_data.clipped +dEQP-VK.wsi.headless.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.pre_multiplied.reference diff --git a/android/cts/master/vk-master/wsi.txt b/android/cts/master/vk-master/wsi.txt index 592e562..d6a0795 100644 --- a/android/cts/master/vk-master/wsi.txt +++ b/android/cts/master/vk-master/wsi.txt @@ -22,6 +22,7 @@ dEQP-VK.wsi.android.swapchain.create.pre_transform dEQP-VK.wsi.android.swapchain.create.composite_alpha dEQP-VK.wsi.android.swapchain.create.present_mode dEQP-VK.wsi.android.swapchain.create.clipped +dEQP-VK.wsi.android.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.android.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.android.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.android.swapchain.simulate_oom.image_format @@ -33,6 +34,7 @@ dEQP-VK.wsi.android.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.android.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.android.swapchain.simulate_oom.present_mode dEQP-VK.wsi.android.swapchain.simulate_oom.clipped +dEQP-VK.wsi.android.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.android.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.android.swapchain.render.basic dEQP-VK.wsi.android.swapchain.render.basic2 @@ -58,6 +60,7 @@ dEQP-VK.wsi.android.swapchain.private_data.pre_transform dEQP-VK.wsi.android.swapchain.private_data.composite_alpha dEQP-VK.wsi.android.swapchain.private_data.present_mode dEQP-VK.wsi.android.swapchain.private_data.clipped +dEQP-VK.wsi.android.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.android.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.android.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.android.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -835,6 +838,7 @@ dEQP-VK.wsi.macos.swapchain.create.pre_transform dEQP-VK.wsi.macos.swapchain.create.composite_alpha dEQP-VK.wsi.macos.swapchain.create.present_mode dEQP-VK.wsi.macos.swapchain.create.clipped +dEQP-VK.wsi.macos.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.macos.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.macos.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.macos.swapchain.simulate_oom.image_format @@ -846,6 +850,7 @@ dEQP-VK.wsi.macos.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.macos.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.macos.swapchain.simulate_oom.present_mode dEQP-VK.wsi.macos.swapchain.simulate_oom.clipped +dEQP-VK.wsi.macos.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.macos.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.macos.swapchain.render.basic dEQP-VK.wsi.macos.swapchain.render.basic2 @@ -870,6 +875,7 @@ dEQP-VK.wsi.macos.swapchain.private_data.pre_transform dEQP-VK.wsi.macos.swapchain.private_data.composite_alpha dEQP-VK.wsi.macos.swapchain.private_data.present_mode dEQP-VK.wsi.macos.swapchain.private_data.clipped +dEQP-VK.wsi.macos.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.macos.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.macos.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.macos.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -1285,6 +1291,7 @@ dEQP-VK.wsi.headless.swapchain.create.pre_transform dEQP-VK.wsi.headless.swapchain.create.composite_alpha dEQP-VK.wsi.headless.swapchain.create.present_mode dEQP-VK.wsi.headless.swapchain.create.clipped +dEQP-VK.wsi.headless.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.headless.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.headless.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.headless.swapchain.simulate_oom.image_format @@ -1296,6 +1303,7 @@ dEQP-VK.wsi.headless.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.headless.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.headless.swapchain.simulate_oom.present_mode dEQP-VK.wsi.headless.swapchain.simulate_oom.clipped +dEQP-VK.wsi.headless.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.headless.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.headless.swapchain.render.basic dEQP-VK.wsi.headless.swapchain.render.basic2 @@ -1321,6 +1329,7 @@ dEQP-VK.wsi.headless.swapchain.private_data.pre_transform dEQP-VK.wsi.headless.swapchain.private_data.composite_alpha dEQP-VK.wsi.headless.swapchain.private_data.present_mode dEQP-VK.wsi.headless.swapchain.private_data.clipped +dEQP-VK.wsi.headless.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.pre_multiplied.reference diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp index 0535bb3..3292657 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp @@ -346,6 +346,7 @@ enum TestDimension TEST_DIMENSION_COMPOSITE_ALPHA, TEST_DIMENSION_PRESENT_MODE, TEST_DIMENSION_CLIPPED, + TEST_DIMENSION_EXCLUSIVE_NONZERO, //!< Test VK_SHARING_MODE_EXCLUSIVE and a nonzero queue count. TEST_DIMENSION_LAST }; @@ -363,8 +364,11 @@ const char* getTestDimensionName (TestDimension dimension) "pre_transform", "composite_alpha", "present_mode", - "clipped" + "clipped", + "exclusive_nonzero_queues", }; + static_assert(static_cast(de::arrayLength(s_names)) == TEST_DIMENSION_LAST, + "Array of names does not provide a 1:1 mapping to TestDimension"); return de::getSizedArrayElement(s_names, dimension); } @@ -410,7 +414,7 @@ vector generateSwapchainParameterCases (const Instance VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_SHARING_MODE_EXCLUSIVE, 0u, - (const deUint32*)DE_NULL, + nullptr, defaultTransform, VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, VK_PRESENT_MODE_FIFO_KHR, @@ -591,6 +595,15 @@ vector generateSwapchainParameterCases (const Instance break; } + case TEST_DIMENSION_EXCLUSIVE_NONZERO: + { + // Test the implementation doesn't attempt to do anything with the queue index array in exclusive sharing mode. + cases.push_back(baseParameters); + cases.back().queueFamilyIndexCount = 2u; + + break; + } + default: DE_FATAL("Impossible"); } @@ -637,20 +650,16 @@ tcu::TestStatus createSwapchainTest (Context& context, TestParameters params) if (curParams.imageSharingMode == VK_SHARING_MODE_CONCURRENT) { - const deUint32 numFamilies = static_cast(devHelper.queueFamilyIndices.size()); + const auto numFamilies = static_cast(devHelper.queueFamilyIndices.size()); if (numFamilies < 2u) TCU_THROW(NotSupportedError, "Only " + de::toString(numFamilies) + " queue families available for VK_SHARING_MODE_CONCURRENT"); + curParams.queueFamilyIndexCount = numFamilies; + curParams.pQueueFamilyIndices = devHelper.queueFamilyIndices.data(); } - else - { - // Take only the first queue. - if (devHelper.queueFamilyIndices.empty()) - TCU_THROW(NotSupportedError, "No queue families compatible with the given surface"); - curParams.queueFamilyIndexCount = 1u; - } - curParams.pQueueFamilyIndices = devHelper.queueFamilyIndices.data(); - curParams.surface = *surface; + + // Overwrite surface. + curParams.surface = *surface; log << TestLog::Message << subcase.str() << curParams << TestLog::EndMessage; diff --git a/external/vulkancts/mustpass/master/vk-default/wsi.txt b/external/vulkancts/mustpass/master/vk-default/wsi.txt index 5180656..5a98150 100644 --- a/external/vulkancts/mustpass/master/vk-default/wsi.txt +++ b/external/vulkancts/mustpass/master/vk-default/wsi.txt @@ -25,6 +25,7 @@ dEQP-VK.wsi.xlib.swapchain.create.pre_transform dEQP-VK.wsi.xlib.swapchain.create.composite_alpha dEQP-VK.wsi.xlib.swapchain.create.present_mode dEQP-VK.wsi.xlib.swapchain.create.clipped +dEQP-VK.wsi.xlib.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.xlib.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.xlib.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.xlib.swapchain.simulate_oom.image_format @@ -36,6 +37,7 @@ dEQP-VK.wsi.xlib.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.xlib.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.xlib.swapchain.simulate_oom.present_mode dEQP-VK.wsi.xlib.swapchain.simulate_oom.clipped +dEQP-VK.wsi.xlib.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.xlib.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.xlib.swapchain.render.basic dEQP-VK.wsi.xlib.swapchain.render.basic2 @@ -60,6 +62,7 @@ dEQP-VK.wsi.xlib.swapchain.private_data.pre_transform dEQP-VK.wsi.xlib.swapchain.private_data.composite_alpha dEQP-VK.wsi.xlib.swapchain.private_data.present_mode dEQP-VK.wsi.xlib.swapchain.private_data.clipped +dEQP-VK.wsi.xlib.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.xlib.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.xlib.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.xlib.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -477,6 +480,7 @@ dEQP-VK.wsi.xcb.swapchain.create.pre_transform dEQP-VK.wsi.xcb.swapchain.create.composite_alpha dEQP-VK.wsi.xcb.swapchain.create.present_mode dEQP-VK.wsi.xcb.swapchain.create.clipped +dEQP-VK.wsi.xcb.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.xcb.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.xcb.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.xcb.swapchain.simulate_oom.image_format @@ -488,6 +492,7 @@ dEQP-VK.wsi.xcb.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.xcb.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.xcb.swapchain.simulate_oom.present_mode dEQP-VK.wsi.xcb.swapchain.simulate_oom.clipped +dEQP-VK.wsi.xcb.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.xcb.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.xcb.swapchain.render.basic dEQP-VK.wsi.xcb.swapchain.render.basic2 @@ -512,6 +517,7 @@ dEQP-VK.wsi.xcb.swapchain.private_data.pre_transform dEQP-VK.wsi.xcb.swapchain.private_data.composite_alpha dEQP-VK.wsi.xcb.swapchain.private_data.present_mode dEQP-VK.wsi.xcb.swapchain.private_data.clipped +dEQP-VK.wsi.xcb.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.xcb.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.xcb.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.xcb.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -927,6 +933,7 @@ dEQP-VK.wsi.wayland.swapchain.create.pre_transform dEQP-VK.wsi.wayland.swapchain.create.composite_alpha dEQP-VK.wsi.wayland.swapchain.create.present_mode dEQP-VK.wsi.wayland.swapchain.create.clipped +dEQP-VK.wsi.wayland.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.wayland.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.wayland.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.wayland.swapchain.simulate_oom.image_format @@ -938,6 +945,7 @@ dEQP-VK.wsi.wayland.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.wayland.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.wayland.swapchain.simulate_oom.present_mode dEQP-VK.wsi.wayland.swapchain.simulate_oom.clipped +dEQP-VK.wsi.wayland.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.wayland.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.wayland.swapchain.render.basic dEQP-VK.wsi.wayland.swapchain.render.basic2 @@ -963,6 +971,7 @@ dEQP-VK.wsi.wayland.swapchain.private_data.pre_transform dEQP-VK.wsi.wayland.swapchain.private_data.composite_alpha dEQP-VK.wsi.wayland.swapchain.private_data.present_mode dEQP-VK.wsi.wayland.swapchain.private_data.clipped +dEQP-VK.wsi.wayland.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.wayland.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.wayland.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.wayland.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -1379,6 +1388,7 @@ dEQP-VK.wsi.android.swapchain.create.pre_transform dEQP-VK.wsi.android.swapchain.create.composite_alpha dEQP-VK.wsi.android.swapchain.create.present_mode dEQP-VK.wsi.android.swapchain.create.clipped +dEQP-VK.wsi.android.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.android.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.android.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.android.swapchain.simulate_oom.image_format @@ -1390,6 +1400,7 @@ dEQP-VK.wsi.android.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.android.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.android.swapchain.simulate_oom.present_mode dEQP-VK.wsi.android.swapchain.simulate_oom.clipped +dEQP-VK.wsi.android.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.android.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.android.swapchain.render.basic dEQP-VK.wsi.android.swapchain.render.basic2 @@ -1415,6 +1426,7 @@ dEQP-VK.wsi.android.swapchain.private_data.pre_transform dEQP-VK.wsi.android.swapchain.private_data.composite_alpha dEQP-VK.wsi.android.swapchain.private_data.present_mode dEQP-VK.wsi.android.swapchain.private_data.clipped +dEQP-VK.wsi.android.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.android.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.android.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.android.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -2552,6 +2564,7 @@ dEQP-VK.wsi.win32.swapchain.create.pre_transform dEQP-VK.wsi.win32.swapchain.create.composite_alpha dEQP-VK.wsi.win32.swapchain.create.present_mode dEQP-VK.wsi.win32.swapchain.create.clipped +dEQP-VK.wsi.win32.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.win32.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.win32.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.win32.swapchain.simulate_oom.image_format @@ -2563,6 +2576,7 @@ dEQP-VK.wsi.win32.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.win32.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.win32.swapchain.simulate_oom.present_mode dEQP-VK.wsi.win32.swapchain.simulate_oom.clipped +dEQP-VK.wsi.win32.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.win32.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.win32.swapchain.render.basic dEQP-VK.wsi.win32.swapchain.render.basic2 @@ -2587,6 +2601,7 @@ dEQP-VK.wsi.win32.swapchain.private_data.pre_transform dEQP-VK.wsi.win32.swapchain.private_data.composite_alpha dEQP-VK.wsi.win32.swapchain.private_data.present_mode dEQP-VK.wsi.win32.swapchain.private_data.clipped +dEQP-VK.wsi.win32.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.win32.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.win32.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.win32.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -3004,6 +3019,7 @@ dEQP-VK.wsi.macos.swapchain.create.pre_transform dEQP-VK.wsi.macos.swapchain.create.composite_alpha dEQP-VK.wsi.macos.swapchain.create.present_mode dEQP-VK.wsi.macos.swapchain.create.clipped +dEQP-VK.wsi.macos.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.macos.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.macos.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.macos.swapchain.simulate_oom.image_format @@ -3015,6 +3031,7 @@ dEQP-VK.wsi.macos.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.macos.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.macos.swapchain.simulate_oom.present_mode dEQP-VK.wsi.macos.swapchain.simulate_oom.clipped +dEQP-VK.wsi.macos.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.macos.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.macos.swapchain.render.basic dEQP-VK.wsi.macos.swapchain.render.basic2 @@ -3039,6 +3056,7 @@ dEQP-VK.wsi.macos.swapchain.private_data.pre_transform dEQP-VK.wsi.macos.swapchain.private_data.composite_alpha dEQP-VK.wsi.macos.swapchain.private_data.present_mode dEQP-VK.wsi.macos.swapchain.private_data.clipped +dEQP-VK.wsi.macos.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.macos.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.macos.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.macos.incremental_present.scale_none.immediate.identity.pre_multiplied.reference @@ -3454,6 +3472,7 @@ dEQP-VK.wsi.headless.swapchain.create.pre_transform dEQP-VK.wsi.headless.swapchain.create.composite_alpha dEQP-VK.wsi.headless.swapchain.create.present_mode dEQP-VK.wsi.headless.swapchain.create.clipped +dEQP-VK.wsi.headless.swapchain.create.exclusive_nonzero_queues dEQP-VK.wsi.headless.swapchain.create.image_swapchain_create_info dEQP-VK.wsi.headless.swapchain.simulate_oom.min_image_count dEQP-VK.wsi.headless.swapchain.simulate_oom.image_format @@ -3465,6 +3484,7 @@ dEQP-VK.wsi.headless.swapchain.simulate_oom.pre_transform dEQP-VK.wsi.headless.swapchain.simulate_oom.composite_alpha dEQP-VK.wsi.headless.swapchain.simulate_oom.present_mode dEQP-VK.wsi.headless.swapchain.simulate_oom.clipped +dEQP-VK.wsi.headless.swapchain.simulate_oom.exclusive_nonzero_queues dEQP-VK.wsi.headless.swapchain.simulate_oom.image_swapchain_create_info dEQP-VK.wsi.headless.swapchain.render.basic dEQP-VK.wsi.headless.swapchain.render.basic2 @@ -3490,6 +3510,7 @@ dEQP-VK.wsi.headless.swapchain.private_data.pre_transform dEQP-VK.wsi.headless.swapchain.private_data.composite_alpha dEQP-VK.wsi.headless.swapchain.private_data.present_mode dEQP-VK.wsi.headless.swapchain.private_data.clipped +dEQP-VK.wsi.headless.swapchain.private_data.exclusive_nonzero_queues dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.opaque.reference dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.opaque.incremental_present dEQP-VK.wsi.headless.incremental_present.scale_none.immediate.identity.pre_multiplied.reference diff --git a/framework/delibs/decpp/deDefs.hpp b/framework/delibs/decpp/deDefs.hpp index 62704f0..7b6dede 100644 --- a/framework/delibs/decpp/deDefs.hpp +++ b/framework/delibs/decpp/deDefs.hpp @@ -127,6 +127,10 @@ size_t alignOf (void) return (size_t)DE_OFFSET_OF(PaddingCheck, t); } +//! Similar to DE_LENGTH_OF_ARRAY but constexpr and without auxiliar helpers. +template +constexpr size_t arrayLength (const T (&)[N]) { return N; } + } // de /*--------------------------------------------------------------------*//*! -- 2.7.4