From 178c5a1719c356fd660466c45a7cb1ad2d0074ed Mon Sep 17 00:00:00 2001 From: Sandeep Shinde Date: Tue, 27 Nov 2018 19:06:00 +0530 Subject: [PATCH] Add tests for VK_KHR_surface_protected_capabilities Add new tests, which do basic query for functionality provided by VK_KHR_surface_protected_capabilities extension. Modify tests to make use of VK_KHR_surface_protected_capabilities extension to decide whether to run or not. These tests should only be ran when VkSurfaceCapabilityProtectedKHR.supportsProtected is reported as VK_TRUE otherwise return as NOT_SUPPORTED because protected VkSurface can not be displayed on screen through WSI swapchain. New tests: dEQP-VK.wsi.xlib.surface.query_protected_capabilities dEQP-VK.wsi.xcb.surface.query_protected_capabilities dEQP-VK.wsi.wayland.surface.query_protected_capabilities dEQP-VK.wsi.mir.surface.query_protected_capabilities dEQP-VK.wsi.android.surface.query_protected_capabilities dEQP-VK.wsi.win32.surface.query_protected_capabilities dEQP-VK.wsi.macos.surface.query_protected_capabilities Affected tests: dEQP-VK.api.info.instance.extensions dEQP-VK.protected_memory.interaction.wsi.xlib.swapchain.render.basic dEQP-VK.protected_memory.interaction.wsi.xcb.swapchain.render.basic dEQP-VK.protected_memory.interaction.wsi.wayland.swapchain.render.basic dEQP-VK.protected_memory.interaction.wsi.mir.swapchain.render.basic dEQP-VK.protected_memory.interaction.wsi.android.swapchain.render.basic dEQP-VK.protected_memory.interaction.wsi.win32.swapchain.render.basic dEQP-VK.protected_memory.interaction.wsi.android.swapchain.render.basic Components: Vulkan VK-GL-CTS issue: 1466 Change-Id: I872281801dd935f52c0e999e0c0c2af8a4b8789a (cherry picked from commit 2d64b282564a754457e4450f34aa8790242ca789) --- android/cts/master/vk-master.txt | 2 + .../vulkancts/framework/vulkan/vkBasicTypes.inl | 2 + .../framework/vulkan/vkGetStructureTypeImpl.inl | 5 ++ external/vulkancts/framework/vulkan/vkStrUtil.inl | 1 + .../vulkancts/framework/vulkan/vkStrUtilImpl.inl | 11 ++++ .../vulkancts/framework/vulkan/vkStructTypes.inl | 7 +++ external/vulkancts/framework/vulkan/vkVulkan_c.inl | 12 +++++ .../modules/vulkan/api/vktApiFeatureInfo.cpp | 1 + .../vktProtectedMemWsiSwapchainTests.cpp | 37 +++++++++++++ .../modules/vulkan/wsi/vktWsiSurfaceTests.cpp | 63 ++++++++++++++++++++++ .../mustpass/1.1.3/vk-default-no-waivers.txt | 7 +++ external/vulkancts/mustpass/1.1.3/vk-default.txt | 7 +++ external/vulkancts/scripts/src/vulkan.h.in | 12 +++++ 13 files changed, 167 insertions(+) diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 9ba5f1f..1908600 100755 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -325353,6 +325353,7 @@ dEQP-VK.wsi.android.surface.create_simulate_oom dEQP-VK.wsi.android.surface.query_support dEQP-VK.wsi.android.surface.query_capabilities dEQP-VK.wsi.android.surface.query_capabilities2 +dEQP-VK.wsi.android.surface.query_protected_capabilities dEQP-VK.wsi.android.surface.query_formats dEQP-VK.wsi.android.surface.query_formats2 dEQP-VK.wsi.android.surface.query_present_modes @@ -325420,6 +325421,7 @@ dEQP-VK.wsi.macos.surface.create_simulate_oom dEQP-VK.wsi.macos.surface.query_support dEQP-VK.wsi.macos.surface.query_capabilities dEQP-VK.wsi.macos.surface.query_capabilities2 +dEQP-VK.wsi.macos.surface.query_protected_capabilities dEQP-VK.wsi.macos.surface.query_formats dEQP-VK.wsi.macos.surface.query_formats2 dEQP-VK.wsi.macos.surface.query_present_modes diff --git a/external/vulkancts/framework/vulkan/vkBasicTypes.inl b/external/vulkancts/framework/vulkan/vkBasicTypes.inl index 6f7ae08..5448aaf 100644 --- a/external/vulkancts/framework/vulkan/vkBasicTypes.inl +++ b/external/vulkancts/framework/vulkan/vkBasicTypes.inl @@ -349,6 +349,7 @@ enum VkStructureType VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, }; enum VkSystemAllocationScope @@ -2179,6 +2180,7 @@ VK_DEFINE_PLATFORM_TYPE(RROutput, void*); #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT #define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT diff --git a/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl b/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl index c291356..a2d9178 100644 --- a/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl +++ b/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl @@ -866,6 +866,11 @@ template<> VkStructureType getStructureType VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR; +} + template<> VkStructureType getStructureType (void) { return VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; diff --git a/external/vulkancts/framework/vulkan/vkStrUtil.inl b/external/vulkancts/framework/vulkan/vkStrUtil.inl index 03894f0..36a259a 100644 --- a/external/vulkancts/framework/vulkan/vkStrUtil.inl +++ b/external/vulkancts/framework/vulkan/vkStrUtil.inl @@ -526,6 +526,7 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverPropertie std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsPropertiesKHR& value); std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolveKHR& value); std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolvePropertiesKHR& value); +std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value); std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value); std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value); std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value); diff --git a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl index d9a63a9..a0efacc 100644 --- a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl +++ b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl @@ -358,6 +358,7 @@ const char* getStructureTypeName (VkStructureType value) case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR: return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"; default: return DE_NULL; } } @@ -5499,6 +5500,16 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilRes return s; } +std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value) +{ + s << "VkSurfaceProtectedCapabilitiesKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tsupportsProtected = " << value.supportsProtected << '\n'; + s << '}'; + return s; +} + std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value) { s << "VkDebugReportCallbackCreateInfoEXT = {\n"; diff --git a/external/vulkancts/framework/vulkan/vkStructTypes.inl b/external/vulkancts/framework/vulkan/vkStructTypes.inl index 2804f29..476f349 100644 --- a/external/vulkancts/framework/vulkan/vkStructTypes.inl +++ b/external/vulkancts/framework/vulkan/vkStructTypes.inl @@ -2396,6 +2396,13 @@ struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR VkBool32 independentResolve; }; +struct VkSurfaceProtectedCapabilitiesKHR +{ + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +}; + struct VkDebugReportCallbackCreateInfoEXT { VkStructureType sType; diff --git a/external/vulkancts/framework/vulkan/vkVulkan_c.inl b/external/vulkancts/framework/vulkan/vkVulkan_c.inl index 975842c..b920b6a 100644 --- a/external/vulkancts/framework/vulkan/vkVulkan_c.inl +++ b/external/vulkancts/framework/vulkan/vkVulkan_c.inl @@ -414,6 +414,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), @@ -6332,6 +6333,17 @@ typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR { } VkPhysicalDeviceDepthStencilResolvePropertiesKHR; +#define VK_KHR_surface_protected_capabilities 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" + +typedef struct VkSurfaceProtectedCapabilitiesKHR { + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +} VkSurfaceProtectedCapabilitiesKHR; + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp index cf49586..3044586 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp @@ -706,6 +706,7 @@ void checkInstanceExtensions (tcu::ResultCollector& results, const vector getRequiredWsiExtensions (const Extensions& supportedEx if (isExtensionSupported(supportedExtensions, vk::RequiredExtension("VK_EXT_swapchain_colorspace"))) extensions.push_back("VK_EXT_swapchain_colorspace"); + // VK_KHR_surface_protected_capabilities adds a way to check if swapchain can be + // created for protected VkSurface, so if this extension is enabled then we can + // check for that capability. + // To check this capability, vkGetPhysicalDeviceSurfaceCapabilities2KHR needs + // to be called so add VK_KHR_get_surface_capabilities2 for this. + if (isExtensionSupported(supportedExtensions, vk::RequiredExtension("VK_KHR_surface_protected_capabilities"))) + { + extensions.push_back("VK_KHR_get_surface_capabilities2"); + extensions.push_back("VK_KHR_surface_protected_capabilities"); + } + checkAllSupported(supportedExtensions, extensions); return extensions; @@ -1090,6 +1101,32 @@ tcu::TestStatus basicRenderTest (Context& baseCtx, vk::wsi::Type wsiType) vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY, maxQueuedFrames)); + if (isExtensionSupported(supportedExtensions, vk::RequiredExtension("VK_KHR_surface_protected_capabilities"))) + { + // Check if swapchain can be created for protected surface + const vk::InstanceInterface& vki = context.getInstanceDriver(); + vk::VkSurfaceCapabilities2KHR extCapabilities; + vk::VkSurfaceProtectedCapabilitiesKHR extProtectedCapabilities; + const vk::VkPhysicalDeviceSurfaceInfo2KHR surfaceInfo = + { + vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR, + DE_NULL, + surface + }; + + extProtectedCapabilities.sType = vk::VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR; + extProtectedCapabilities.pNext = DE_NULL; + extProtectedCapabilities.supportsProtected = DE_FALSE; + + extCapabilities.sType = vk::VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR; + extCapabilities.pNext = &extProtectedCapabilities; + + VK_CHECK(vki.getPhysicalDeviceSurfaceCapabilities2KHR(context.getPhysicalDevice(), &surfaceInfo, &extCapabilities)); + + if (extProtectedCapabilities.supportsProtected == DE_FALSE) + TCU_THROW(NotSupportedError, "Swapchain creation for Protected VkSurface is not Supported."); + } + try { const deUint32 numFramesToRender = 60*10; diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp index 2501d39..bbf0603 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp @@ -567,6 +567,68 @@ tcu::TestStatus querySurfaceCapabilities2Test (Context& context, Type wsiType) return tcu::TestStatus(results.getResult(), results.getMessage()); } +tcu::TestStatus querySurfaceProtectedCapabilitiesTest (Context& context, Type wsiType) +{ + tcu::TestLog& log = context.getTestContext().getLog(); + tcu::ResultCollector results (log); + + vector requiredExtensions; + requiredExtensions.push_back("VK_KHR_get_surface_capabilities2"); + requiredExtensions.push_back("VK_KHR_surface_protected_capabilities"); + const InstanceHelper instHelper (context, wsiType, requiredExtensions); + const NativeObjects native (context, instHelper.supportedExtensions, wsiType); + const Unique surface (createSurface(instHelper.vki, *instHelper.instance, wsiType, *native.display, *native.window)); + const vector physicalDevices = enumeratePhysicalDevices(instHelper.vki, *instHelper.instance); + + for (size_t deviceNdx = 0; deviceNdx < physicalDevices.size(); ++deviceNdx) + { + if (isSupportedByAnyQueue(instHelper.vki, physicalDevices[deviceNdx], *surface)) + { + VkSurfaceCapabilities2KHR extCapabilities; + VkSurfaceProtectedCapabilitiesKHR extProtectedCapabilities; + + deMemset(&extProtectedCapabilities, 0xcd, sizeof(VkSurfaceProtectedCapabilitiesKHR)); + extProtectedCapabilities.sType = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR; + extProtectedCapabilities.pNext = DE_NULL; + + deMemset(&extCapabilities, 0xcd, sizeof(VkSurfaceCapabilities2KHR)); + extCapabilities.sType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR; + extCapabilities.pNext = &extProtectedCapabilities; + + { + VkPhysicalDeviceSurfaceInfo2KHR infoCopy; + const VkPhysicalDeviceSurfaceInfo2KHR surfaceInfo = + { + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR, + DE_NULL, + *surface + }; + + + deMemcpy(&infoCopy, &surfaceInfo, sizeof(VkPhysicalDeviceSurfaceInfo2KHR)); + + VK_CHECK(instHelper.vki.getPhysicalDeviceSurfaceCapabilities2KHR(physicalDevices[deviceNdx], &surfaceInfo, &extCapabilities)); + + results.check(deMemoryEqual(&surfaceInfo, &infoCopy, sizeof(VkPhysicalDeviceSurfaceInfo2KHR)) == DE_TRUE, "Driver wrote into input struct"); + } + + results.check(extCapabilities.sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR && + extCapabilities.pNext == &extProtectedCapabilities, + "sType/pNext modified"); + + results.check(extProtectedCapabilities.sType == VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR && + extProtectedCapabilities.pNext == DE_NULL, + "sType/pNext modified"); + + results.check(extProtectedCapabilities.supportsProtected == 0 || + extProtectedCapabilities.supportsProtected == 1, + "supportsProtected "); + } + } + + return tcu::TestStatus(results.getResult(), results.getMessage()); +} + void validateSurfaceFormats (tcu::ResultCollector& results, Type wsiType, const vector& formats) { const VkSurfaceFormatKHR* requiredFormats = DE_NULL; @@ -1186,6 +1248,7 @@ void createSurfaceTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType) addFunctionCase(testGroup, "query_support", "Query surface support", querySurfaceSupportTest, wsiType); addFunctionCase(testGroup, "query_capabilities", "Query surface capabilities", querySurfaceCapabilitiesTest, wsiType); addFunctionCase(testGroup, "query_capabilities2", "Query extended surface capabilities", querySurfaceCapabilities2Test, wsiType); + addFunctionCase(testGroup, "query_protected_capabilities", "Query protected surface capabilities", querySurfaceProtectedCapabilitiesTest, wsiType); addFunctionCase(testGroup, "query_formats", "Query surface formats", querySurfaceFormatsTest, wsiType); addFunctionCase(testGroup, "query_formats2", "Query extended surface formats", querySurfaceFormats2Test, wsiType); addFunctionCase(testGroup, "query_present_modes", "Query surface present modes", querySurfacePresentModesTest, wsiType); diff --git a/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt b/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt index 146f082..9da224d 100644 --- a/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt +++ b/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt @@ -325487,6 +325487,7 @@ dEQP-VK.wsi.xlib.surface.create_simulate_oom dEQP-VK.wsi.xlib.surface.query_support dEQP-VK.wsi.xlib.surface.query_capabilities dEQP-VK.wsi.xlib.surface.query_capabilities2 +dEQP-VK.wsi.xlib.surface.query_protected_capabilities dEQP-VK.wsi.xlib.surface.query_formats dEQP-VK.wsi.xlib.surface.query_formats2 dEQP-VK.wsi.xlib.surface.query_present_modes @@ -325546,6 +325547,7 @@ dEQP-VK.wsi.xcb.surface.create_simulate_oom dEQP-VK.wsi.xcb.surface.query_support dEQP-VK.wsi.xcb.surface.query_capabilities dEQP-VK.wsi.xcb.surface.query_capabilities2 +dEQP-VK.wsi.xcb.surface.query_protected_capabilities dEQP-VK.wsi.xcb.surface.query_formats dEQP-VK.wsi.xcb.surface.query_formats2 dEQP-VK.wsi.xcb.surface.query_present_modes @@ -325605,6 +325607,7 @@ dEQP-VK.wsi.wayland.surface.create_simulate_oom dEQP-VK.wsi.wayland.surface.query_support dEQP-VK.wsi.wayland.surface.query_capabilities dEQP-VK.wsi.wayland.surface.query_capabilities2 +dEQP-VK.wsi.wayland.surface.query_protected_capabilities dEQP-VK.wsi.wayland.surface.query_formats dEQP-VK.wsi.wayland.surface.query_formats2 dEQP-VK.wsi.wayland.surface.query_present_modes @@ -325663,6 +325666,7 @@ dEQP-VK.wsi.mir.surface.create_simulate_oom dEQP-VK.wsi.mir.surface.query_support dEQP-VK.wsi.mir.surface.query_capabilities dEQP-VK.wsi.mir.surface.query_capabilities2 +dEQP-VK.wsi.mir.surface.query_protected_capabilities dEQP-VK.wsi.mir.surface.query_formats dEQP-VK.wsi.mir.surface.query_formats2 dEQP-VK.wsi.mir.surface.query_present_modes @@ -325743,6 +325747,7 @@ dEQP-VK.wsi.android.surface.create_simulate_oom dEQP-VK.wsi.android.surface.query_support dEQP-VK.wsi.android.surface.query_capabilities dEQP-VK.wsi.android.surface.query_capabilities2 +dEQP-VK.wsi.android.surface.query_protected_capabilities dEQP-VK.wsi.android.surface.query_formats dEQP-VK.wsi.android.surface.query_formats2 dEQP-VK.wsi.android.surface.query_present_modes @@ -325822,6 +325827,7 @@ dEQP-VK.wsi.win32.surface.create_simulate_oom dEQP-VK.wsi.win32.surface.query_support dEQP-VK.wsi.win32.surface.query_capabilities dEQP-VK.wsi.win32.surface.query_capabilities2 +dEQP-VK.wsi.win32.surface.query_protected_capabilities dEQP-VK.wsi.win32.surface.query_formats dEQP-VK.wsi.win32.surface.query_formats2 dEQP-VK.wsi.win32.surface.query_present_modes @@ -325881,6 +325887,7 @@ dEQP-VK.wsi.macos.surface.create_simulate_oom dEQP-VK.wsi.macos.surface.query_support dEQP-VK.wsi.macos.surface.query_capabilities dEQP-VK.wsi.macos.surface.query_capabilities2 +dEQP-VK.wsi.macos.surface.query_protected_capabilities dEQP-VK.wsi.macos.surface.query_formats dEQP-VK.wsi.macos.surface.query_formats2 dEQP-VK.wsi.macos.surface.query_present_modes diff --git a/external/vulkancts/mustpass/1.1.3/vk-default.txt b/external/vulkancts/mustpass/1.1.3/vk-default.txt index c8d917d..52a8234 100644 --- a/external/vulkancts/mustpass/1.1.3/vk-default.txt +++ b/external/vulkancts/mustpass/1.1.3/vk-default.txt @@ -325448,6 +325448,7 @@ dEQP-VK.wsi.xlib.surface.create_simulate_oom dEQP-VK.wsi.xlib.surface.query_support dEQP-VK.wsi.xlib.surface.query_capabilities dEQP-VK.wsi.xlib.surface.query_capabilities2 +dEQP-VK.wsi.xlib.surface.query_protected_capabilities dEQP-VK.wsi.xlib.surface.query_formats dEQP-VK.wsi.xlib.surface.query_formats2 dEQP-VK.wsi.xlib.surface.query_present_modes @@ -325507,6 +325508,7 @@ dEQP-VK.wsi.xcb.surface.create_simulate_oom dEQP-VK.wsi.xcb.surface.query_support dEQP-VK.wsi.xcb.surface.query_capabilities dEQP-VK.wsi.xcb.surface.query_capabilities2 +dEQP-VK.wsi.xcb.surface.query_protected_capabilities dEQP-VK.wsi.xcb.surface.query_formats dEQP-VK.wsi.xcb.surface.query_formats2 dEQP-VK.wsi.xcb.surface.query_present_modes @@ -325566,6 +325568,7 @@ dEQP-VK.wsi.wayland.surface.create_simulate_oom dEQP-VK.wsi.wayland.surface.query_support dEQP-VK.wsi.wayland.surface.query_capabilities dEQP-VK.wsi.wayland.surface.query_capabilities2 +dEQP-VK.wsi.wayland.surface.query_protected_capabilities dEQP-VK.wsi.wayland.surface.query_formats dEQP-VK.wsi.wayland.surface.query_formats2 dEQP-VK.wsi.wayland.surface.query_present_modes @@ -325624,6 +325627,7 @@ dEQP-VK.wsi.mir.surface.create_simulate_oom dEQP-VK.wsi.mir.surface.query_support dEQP-VK.wsi.mir.surface.query_capabilities dEQP-VK.wsi.mir.surface.query_capabilities2 +dEQP-VK.wsi.mir.surface.query_protected_capabilities dEQP-VK.wsi.mir.surface.query_formats dEQP-VK.wsi.mir.surface.query_formats2 dEQP-VK.wsi.mir.surface.query_present_modes @@ -325704,6 +325708,7 @@ dEQP-VK.wsi.android.surface.create_simulate_oom dEQP-VK.wsi.android.surface.query_support dEQP-VK.wsi.android.surface.query_capabilities dEQP-VK.wsi.android.surface.query_capabilities2 +dEQP-VK.wsi.android.surface.query_protected_capabilities dEQP-VK.wsi.android.surface.query_formats dEQP-VK.wsi.android.surface.query_formats2 dEQP-VK.wsi.android.surface.query_present_modes @@ -325783,6 +325788,7 @@ dEQP-VK.wsi.win32.surface.create_simulate_oom dEQP-VK.wsi.win32.surface.query_support dEQP-VK.wsi.win32.surface.query_capabilities dEQP-VK.wsi.win32.surface.query_capabilities2 +dEQP-VK.wsi.win32.surface.query_protected_capabilities dEQP-VK.wsi.win32.surface.query_formats dEQP-VK.wsi.win32.surface.query_formats2 dEQP-VK.wsi.win32.surface.query_present_modes @@ -325842,6 +325848,7 @@ dEQP-VK.wsi.macos.surface.create_simulate_oom dEQP-VK.wsi.macos.surface.query_support dEQP-VK.wsi.macos.surface.query_capabilities dEQP-VK.wsi.macos.surface.query_capabilities2 +dEQP-VK.wsi.macos.surface.query_protected_capabilities dEQP-VK.wsi.macos.surface.query_formats dEQP-VK.wsi.macos.surface.query_formats2 dEQP-VK.wsi.macos.surface.query_present_modes diff --git a/external/vulkancts/scripts/src/vulkan.h.in b/external/vulkancts/scripts/src/vulkan.h.in index cd62930..da0d54b 100755 --- a/external/vulkancts/scripts/src/vulkan.h.in +++ b/external/vulkancts/scripts/src/vulkan.h.in @@ -411,6 +411,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), @@ -6329,6 +6330,17 @@ typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR { } VkPhysicalDeviceDepthStencilResolvePropertiesKHR; +#define VK_KHR_surface_protected_capabilities 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" + +typedef struct VkSurfaceProtectedCapabilitiesKHR { + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +} VkSurfaceProtectedCapabilitiesKHR; + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -- 2.7.4