From 8365d3997fd4b0aaa747ad37c2de1f3fd30d3a60 Mon Sep 17 00:00:00 2001 From: Vihanakangas Date: Mon, 23 Nov 2020 15:23:34 +0200 Subject: [PATCH] Ensure WSI colorspace has no effect on image contents This test makes sure that rendering is invariant with regards to the swapchain colorspace. Fixes validation errors on dEQP-VK.wsi.*.colorspace.* tests. Affects: dEQP-VK.wsi.*.colorspace.* New tests: dEQP-VK.wsi.*.colorspace_compare.* Components: Vulkan VK-GL-CTS issue: 1915 Change-Id: Ic8d4c52e182bbef73c1cfe85be9ea054545c86d8 --- android/cts/master/vk-master-2021-03-01.txt | 12 + android/cts/master/vk-master.txt | 12 + .../modules/vulkan/wsi/vktWsiColorSpaceTests.cpp | 278 ++++++++++++++++++++- .../modules/vulkan/wsi/vktWsiColorSpaceTests.hpp | 3 +- .../vulkancts/modules/vulkan/wsi/vktWsiTests.cpp | 1 + external/vulkancts/mustpass/master/vk-default.txt | 36 +++ 6 files changed, 333 insertions(+), 9 deletions(-) diff --git a/android/cts/master/vk-master-2021-03-01.txt b/android/cts/master/vk-master-2021-03-01.txt index 23625d8..3e56213 100644 --- a/android/cts/master/vk-master-2021-03-01.txt +++ b/android/cts/master/vk-master-2021-03-01.txt @@ -118281,6 +118281,12 @@ 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.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.android.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.android.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.android.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.android.full_screen_exclusive.default dEQP-VK.wsi.android.full_screen_exclusive.allowed dEQP-VK.wsi.android.full_screen_exclusive.disallowed @@ -118296,6 +118302,12 @@ 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.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.macos.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.macos.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.macos.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.macos.full_screen_exclusive.default dEQP-VK.wsi.macos.full_screen_exclusive.allowed dEQP-VK.wsi.macos.full_screen_exclusive.disallowed diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index cdaa784..e4b8128 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -557647,6 +557647,12 @@ dEQP-VK.wsi.android.shared_presentable_image.scale_up.inherit.inherit.continuous dEQP-VK.wsi.android.colorspace.extensions dEQP-VK.wsi.android.colorspace.basic dEQP-VK.wsi.android.colorspace.hdr +dEQP-VK.wsi.android.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.android.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.android.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.android.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.android.full_screen_exclusive.default dEQP-VK.wsi.android.full_screen_exclusive.allowed dEQP-VK.wsi.android.full_screen_exclusive.disallowed @@ -558083,6 +558089,12 @@ dEQP-VK.wsi.macos.shared_presentable_image.scale_none.inherit.inherit.continuous dEQP-VK.wsi.macos.colorspace.extensions dEQP-VK.wsi.macos.colorspace.basic dEQP-VK.wsi.macos.colorspace.hdr +dEQP-VK.wsi.macos.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.macos.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.macos.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.macos.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.macos.full_screen_exclusive.default dEQP-VK.wsi.macos.full_screen_exclusive.allowed dEQP-VK.wsi.macos.full_screen_exclusive.disallowed diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.cpp index 6bd8962..6339d2a 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.cpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.cpp @@ -43,6 +43,8 @@ #include "vkAllocationCallbackUtil.hpp" #include "vkCmdUtil.hpp" #include "vkObjUtil.hpp" +#include "tcuSurface.hpp" +#include "vkImageUtil.hpp" #include "tcuTestLog.hpp" #include "tcuFormatUtil.hpp" @@ -326,12 +328,31 @@ VkSwapchainCreateInfoKHR getBasicSwapchainParameters (Type wsiType, VkSurfaceKHR surface, VkSurfaceFormatKHR surfaceFormat, const tcu::UVec2& desiredSize, - deUint32 desiredImageCount) + deUint32 desiredImageCount, + VkColorSpaceKHR desiredColorspace = VK_COLOR_SPACE_MAX_ENUM_KHR) { + bool setColorspaceManually = desiredColorspace != VK_COLOR_SPACE_MAX_ENUM_KHR; + const VkSurfaceCapabilitiesKHR capabilities = getPhysicalDeviceSurfaceCapabilities(vki, physicalDevice, surface); const PlatformProperties& platformProperties = getPlatformProperties(wsiType); + const VkSurfaceCapabilitiesKHR surfaceCapabilities = getPhysicalDeviceSurfaceCapabilities(vki,physicalDevice, surface); + + // Check that the device has at least one supported alpha compositing mode + // and pick the first supported mode to be used. + vk::VkCompositeAlphaFlagsKHR alpha = 0; + for (deUint32 i = 1u; i <= surfaceCapabilities.supportedCompositeAlpha; i <<= 1u) + { + if ((i & surfaceCapabilities.supportedCompositeAlpha) != 0) + { + alpha = i; + break; + } + } + if (alpha == 0) + TCU_THROW(NotSupportedError, "No supported composite alphas available."); + const VkSurfaceTransformFlagBitsKHR transform = (capabilities.supportedTransforms & VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) ? VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR : capabilities.currentTransform; const VkSwapchainCreateInfoKHR parameters = { @@ -341,16 +362,15 @@ VkSwapchainCreateInfoKHR getBasicSwapchainParameters (Type wsiType, surface, de::clamp(desiredImageCount, capabilities.minImageCount, capabilities.maxImageCount > 0 ? capabilities.maxImageCount : capabilities.minImageCount + desiredImageCount), surfaceFormat.format, - surfaceFormat.colorSpace, - (platformProperties.swapchainExtent == PlatformProperties::SWAPCHAIN_EXTENT_MUST_MATCH_WINDOW_SIZE - ? capabilities.currentExtent : vk::makeExtent2D(desiredSize.x(), desiredSize.y())), + (setColorspaceManually ? desiredColorspace : surfaceFormat.colorSpace), + (platformProperties.swapchainExtent == PlatformProperties::SWAPCHAIN_EXTENT_MUST_MATCH_WINDOW_SIZE ? capabilities.currentExtent : vk::makeExtent2D(desiredSize.x(), desiredSize.y())), 1u, // imageArrayLayers - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT, VK_SHARING_MODE_EXCLUSIVE, 0u, (const deUint32*)DE_NULL, transform, - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, + static_cast(alpha), VK_PRESENT_MODE_FIFO_KHR, VK_FALSE, // clipped (VkSwapchainKHR)0 // oldSwapchain @@ -401,6 +421,46 @@ vector allocateCommandBuffers (const DeviceInterface& vkd, return buffers; } +tcu::Vec4 getPixel (const DeviceInterface& vkd, + const VkDevice device, + const VkQueue queue, + const VkCommandPool& commandPool, + Allocator& allocator, + const tcu::UVec2 size, + const tcu::TextureFormat textureFormat, + const VkImage* image) +{ + Move commandBuffer; + Move resultBuffer; + de::MovePtr resultBufferMemory; + + commandBuffer = allocateCommandBuffer(vkd, device, commandPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY); + + // Result Buffer + { + const VkDeviceSize bufferSize = textureFormat.getPixelSize() * size.x() * size.y(); + const VkBufferCreateInfo createInfo = makeBufferCreateInfo(bufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT); + + resultBuffer = createBuffer(vkd, device, &createInfo); + resultBufferMemory = allocator.allocate(getBufferMemoryRequirements(vkd, device, *resultBuffer), MemoryRequirement::HostVisible); + + VK_CHECK(vkd.bindBufferMemory(device, *resultBuffer, resultBufferMemory->getMemory(), resultBufferMemory->getOffset())); + } + + beginCommandBuffer(vkd, *commandBuffer, 0u); + { + copyImageToBuffer(vkd, *commandBuffer, *image, *resultBuffer, tcu::IVec2(size.x(), size.y()), VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR); + } + endCommandBuffer(vkd, *commandBuffer); + submitCommandsAndWait(vkd, device, queue, commandBuffer.get()); + + tcu::ConstPixelBufferAccess resultAccess(textureFormat, + tcu::IVec3(size.x(), size.y(), 1), + resultBufferMemory->getHostPtr()); + + return (resultAccess.getPixel(128, 128)); +} + tcu::TestStatus basicExtensionTest (Context& context, Type wsiType) { const tcu::UVec2 desiredSize (256, 256); @@ -432,6 +492,177 @@ tcu::TestStatus basicExtensionTest (Context& context, Type wsiType) return tcu::TestStatus::pass("Extension tests succeeded"); } +struct TestParams +{ + Type wsiType; + VkFormat format; +}; + +// Create swapchain with multiple images on different colorspaces and compare pixels on those images. +tcu::TestStatus colorspaceCompareTest (Context& context, TestParams params) +{ + if (!context.isInstanceFunctionalitySupported("VK_EXT_swapchain_colorspace")) + TCU_THROW(NotSupportedError, "Extension VK_EXT_swapchain_colorspace not supported"); + + const tcu::UVec2 desiredSize (256, 256); + const InstanceHelper instHelper (context, params.wsiType); + const NativeObjects native (context, instHelper.supportedExtensions, params.wsiType, tcu::just(desiredSize)); + const Unique surface (createSurface(instHelper.vki, instHelper.instance, params.wsiType, *native.display, *native.window)); + const DeviceHelper devHelper (context, instHelper.vki, instHelper.instance, *surface); + + const vector queriedFormats = getPhysicalDeviceSurfaceFormats(instHelper.vki, + devHelper.physicalDevice, + *surface); + + vector supportedColorSpaces; + for (const auto& queriedFormat : queriedFormats) + { + if (queriedFormat.format == params.format) + { + supportedColorSpaces.push_back(queriedFormat.colorSpace); + } + } + + // Not supported if there's no color spaces for the format. + if(supportedColorSpaces.size() < 2) + TCU_THROW(NotSupportedError, "Format not supported"); + + // Surface format is used to create the swapchain. + VkSurfaceFormatKHR surfaceFormat = + { + params.format, // format + supportedColorSpaces.at(0) // colorSpace + }; + + tcu::Vec4 referenceColorspacePixel; + const tcu::TextureFormat textureFormat = vk::mapVkFormat(surfaceFormat.format); + const DeviceInterface& vkd = devHelper.vkd; + const VkDevice device = *devHelper.device; + SimpleAllocator allocator (vkd, + device, + getPhysicalDeviceMemoryProperties(instHelper.vki, + context.getPhysicalDevice())); + + for (size_t colorspaceNdx = 0; colorspaceNdx < supportedColorSpaces.size(); ++colorspaceNdx) + { + const VkSwapchainCreateInfoKHR swapchainInfo = getBasicSwapchainParameters(params.wsiType, + instHelper.vki, + devHelper.physicalDevice, + *surface, + surfaceFormat, + desiredSize, + 2, + supportedColorSpaces[colorspaceNdx]); + const Unique swapchain (createSwapchainKHR(vkd, device, &swapchainInfo)); + const vector swapchainImages = getSwapchainImages(vkd, device, *swapchain); + const vector deviceExtensions (enumerateDeviceExtensionProperties(instHelper.vki, devHelper.physicalDevice, DE_NULL)); + + const WsiTriangleRenderer renderer(vkd, + device, + allocator, + context.getBinaryCollection(), + true, + swapchainImages, + swapchainImages, + swapchainInfo.imageFormat, + tcu::UVec2(swapchainInfo.imageExtent.width, swapchainInfo.imageExtent.height)); + + const Move commandPool (createCommandPool(vkd, + device, + VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, + devHelper.queueFamilyIndex)); + const Move imageReadySemaphore = createSemaphore(vkd, device); + const Move renderingCompleteSemaphore = createSemaphore(vkd, device); + const Move commandBuffer = allocateCommandBuffer(vkd, + device, + *commandPool, + VK_COMMAND_BUFFER_LEVEL_PRIMARY); + + try + { + deUint32 imageNdx = ~0u; + + { + const VkResult acquireResult = vkd.acquireNextImageKHR(device, + *swapchain, + std::numeric_limits::max(), + imageReadySemaphore.get(), + DE_NULL, + &imageNdx); + + if (acquireResult == VK_SUBOPTIMAL_KHR) + { + context.getTestContext().getLog() << TestLog::Message << "Got " << acquireResult + << TestLog::EndMessage; + } + else + { + VK_CHECK(acquireResult); + } + } + + TCU_CHECK((size_t) imageNdx < swapchainImages.size()); + + { + const VkPipelineStageFlags waitDstStage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + const VkSubmitInfo submitInfo = + { + VK_STRUCTURE_TYPE_SUBMIT_INFO, + DE_NULL, + 0u, + &imageReadySemaphore.get(), + &waitDstStage, + 1u, + &commandBuffer.get(), + 1u, + &renderingCompleteSemaphore.get() + }; + const VkPresentInfoKHR presentInfo = + { + VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, + DE_NULL, + 1u, + &renderingCompleteSemaphore.get(), + 1u, + &swapchain.get(), + &imageNdx, + (VkResult *) DE_NULL + }; + + renderer.recordFrame(commandBuffer.get(), imageNdx, 0); + VK_CHECK(vkd.queueSubmit(devHelper.queue, 1u, &submitInfo, DE_NULL)); + VK_CHECK_WSI(vkd.queuePresentKHR(devHelper.queue, &presentInfo)); + } + + // Set reference pixelBufferAccess for comparison. + if (colorspaceNdx == 0) + { + referenceColorspacePixel = getPixel(vkd, device, devHelper.queue, commandPool.get(), + allocator, desiredSize, textureFormat, + &swapchainImages[imageNdx]); + continue; + } + + // Compare pixels from images to make sure the colorspace makes no difference. + if (referenceColorspacePixel == getPixel(vkd, device, devHelper.queue, commandPool.get(), + allocator, desiredSize, textureFormat, + &swapchainImages[imageNdx])) + continue; + else + return tcu::TestStatus::fail("Colorspace comparison test failed"); + VK_CHECK(vkd.deviceWaitIdle(device)); + } + catch (...) + { + // Make sure device is idle before destroying resources + vkd.deviceWaitIdle(device); + throw; + } + } + + return tcu::TestStatus::pass("Colorspace comparison test succeeded"); +} + tcu::TestStatus surfaceFormatRenderTest (Context& context, Type wsiType, const InstanceHelper& instHelper, @@ -457,7 +688,7 @@ tcu::TestStatus surfaceFormatRenderTest (Context& context, device, allocator, context.getBinaryCollection(), - false, + true, swapchainImages, swapchainImages, swapchainInfo.imageFormat, @@ -619,11 +850,17 @@ tcu::TestStatus surfaceFormatRenderWithHdrTests (Context& context, Type wsiType) return tcu::TestStatus::pass("Rendering tests succeeded"); } -void getBasicRenderPrograms (SourceCollections& dst, Type) +// We need different versions of this function in order to invoke +// different overloaded versions of addFunctionCaseWithPrograms. +void getBasicRenderPrograms2 (SourceCollections& dst, TestParams) { WsiTriangleRenderer::getPrograms(dst); } +void getBasicRenderPrograms (SourceCollections& dst, Type) +{ + WsiTriangleRenderer::getPrograms(dst); +} } // anonymous void createColorSpaceTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType) @@ -633,5 +870,30 @@ void createColorSpaceTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType addFunctionCaseWithPrograms(testGroup, "hdr", "Basic Rendering Tests with HDR", getBasicRenderPrograms, surfaceFormatRenderWithHdrTests, wsiType); } +void createColorspaceCompareTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType) +{ + const VkFormat formatList[] = { + VK_FORMAT_B8G8R8A8_UNORM, + VK_FORMAT_R8G8B8A8_UNORM, + VK_FORMAT_R8G8B8A8_SRGB, + VK_FORMAT_R5G6B5_UNORM_PACK16, + VK_FORMAT_A2B10G10R10_UNORM_PACK32, + VK_FORMAT_R16G16B16A16_SFLOAT + }; + + // Create test for every format. + for (const VkFormat& format : formatList) + { + const char* const enumName = getFormatName(format); + const string caseName = de::toLower(string(enumName).substr(10)); + const TestParams params = + { + wsiType, + format + }; + addFunctionCaseWithPrograms(testGroup, caseName, "", getBasicRenderPrograms2, colorspaceCompareTest, params); + } +} + } // wsi } // vkt diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.hpp b/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.hpp index 38d688a..86faef6 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.hpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiColorSpaceTests.hpp @@ -32,7 +32,8 @@ namespace vkt namespace wsi { -void createColorSpaceTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType); +void createColorSpaceTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType); +void createColorspaceCompareTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType); } // wsi } // vkt diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiTests.cpp index 167dc3d..aaa0942 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiTests.cpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiTests.cpp @@ -51,6 +51,7 @@ void createTypeSpecificTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiTy addTestGroup(testGroup, "display_timing", "Display Timing Tests", createDisplayTimingTests, wsiType); addTestGroup(testGroup, "shared_presentable_image", "VK_KHR_shared_presentable_image tests", createSharedPresentableImageTests, wsiType); addTestGroup(testGroup, "colorspace", "ColorSpace tests", createColorSpaceTests, wsiType); + addTestGroup(testGroup, "colorspace_compare", "ColorSpace compare tests", createColorspaceCompareTests, wsiType); addTestGroup(testGroup, "full_screen_exclusive", "VK_EXT_full_screen_exclusive tests", createFullScreenExclusiveTests, wsiType); } diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt index 8a12ec0..9e09e2b 100644 --- a/external/vulkancts/mustpass/master/vk-default.txt +++ b/external/vulkancts/mustpass/master/vk-default.txt @@ -557325,6 +557325,12 @@ dEQP-VK.wsi.xlib.shared_presentable_image.scale_none.inherit.inherit.continuous dEQP-VK.wsi.xlib.colorspace.extensions dEQP-VK.wsi.xlib.colorspace.basic dEQP-VK.wsi.xlib.colorspace.hdr +dEQP-VK.wsi.xlib.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.xlib.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.xlib.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.xlib.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.xlib.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.xlib.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.xlib.full_screen_exclusive.default dEQP-VK.wsi.xlib.full_screen_exclusive.allowed dEQP-VK.wsi.xlib.full_screen_exclusive.disallowed @@ -557761,6 +557767,12 @@ dEQP-VK.wsi.xcb.shared_presentable_image.scale_none.inherit.inherit.continuous dEQP-VK.wsi.xcb.colorspace.extensions dEQP-VK.wsi.xcb.colorspace.basic dEQP-VK.wsi.xcb.colorspace.hdr +dEQP-VK.wsi.xcb.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.xcb.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.xcb.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.xcb.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.xcb.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.xcb.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.xcb.full_screen_exclusive.default dEQP-VK.wsi.xcb.full_screen_exclusive.allowed dEQP-VK.wsi.xcb.full_screen_exclusive.disallowed @@ -558196,6 +558208,12 @@ dEQP-VK.wsi.wayland.shared_presentable_image.scale_none.inherit.inherit.continuo dEQP-VK.wsi.wayland.colorspace.extensions dEQP-VK.wsi.wayland.colorspace.basic dEQP-VK.wsi.wayland.colorspace.hdr +dEQP-VK.wsi.wayland.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.wayland.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.wayland.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.wayland.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.wayland.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.wayland.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.wayland.full_screen_exclusive.default dEQP-VK.wsi.wayland.full_screen_exclusive.allowed dEQP-VK.wsi.wayland.full_screen_exclusive.disallowed @@ -559352,6 +559370,12 @@ dEQP-VK.wsi.android.shared_presentable_image.scale_down.inherit.inherit.continuo dEQP-VK.wsi.android.colorspace.extensions dEQP-VK.wsi.android.colorspace.basic dEQP-VK.wsi.android.colorspace.hdr +dEQP-VK.wsi.android.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.android.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.android.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.android.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.android.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.android.full_screen_exclusive.default dEQP-VK.wsi.android.full_screen_exclusive.allowed dEQP-VK.wsi.android.full_screen_exclusive.disallowed @@ -559788,6 +559812,12 @@ dEQP-VK.wsi.win32.shared_presentable_image.scale_none.inherit.inherit.continuous dEQP-VK.wsi.win32.colorspace.extensions dEQP-VK.wsi.win32.colorspace.basic dEQP-VK.wsi.win32.colorspace.hdr +dEQP-VK.wsi.win32.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.win32.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.win32.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.win32.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.win32.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.win32.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.win32.full_screen_exclusive.default dEQP-VK.wsi.win32.full_screen_exclusive.allowed dEQP-VK.wsi.win32.full_screen_exclusive.disallowed @@ -560224,6 +560254,12 @@ dEQP-VK.wsi.macos.shared_presentable_image.scale_none.inherit.inherit.continuous dEQP-VK.wsi.macos.colorspace.extensions dEQP-VK.wsi.macos.colorspace.basic dEQP-VK.wsi.macos.colorspace.hdr +dEQP-VK.wsi.macos.colorspace_compare.b8g8r8a8_unorm +dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_unorm +dEQP-VK.wsi.macos.colorspace_compare.r8g8b8a8_srgb +dEQP-VK.wsi.macos.colorspace_compare.r5g6b5_unorm_pack16 +dEQP-VK.wsi.macos.colorspace_compare.a2b10g10r10_unorm_pack32 +dEQP-VK.wsi.macos.colorspace_compare.r16g16b16a16_sfloat dEQP-VK.wsi.macos.full_screen_exclusive.default dEQP-VK.wsi.macos.full_screen_exclusive.allowed dEQP-VK.wsi.macos.full_screen_exclusive.disallowed -- 2.7.4