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)
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.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.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 @@
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 @@
#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 @@
return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR;
}
+template<> VkStructureType getStructureType<VkSurfaceProtectedCapabilitiesKHR> (void)
+{
+ return VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR;
+}
+
template<> VkStructureType getStructureType<VkDebugReportCallbackCreateInfoEXT> (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 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 @@
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 @@
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 @@
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 @@
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 @@
} 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 @@
"VK_KHR_external_fence_capabilities",
"VK_KHR_device_group_creation",
"VK_KHR_get_display_properties2",
+ "VK_KHR_surface_protected_capabilities",
};
checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedInstanceKhrExtensions), s_allowedInstanceKhrExtensions);
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp
index b53979f..2b2b82f 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp
@@ -100,6 +100,17 @@
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 @@
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 @@
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<string> 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<VkSurfaceKHR> surface (createSurface(instHelper.vki, *instHelper.instance, wsiType, *native.display, *native.window));
+ const vector<VkPhysicalDevice> 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<VkSurfaceFormatKHR>& formats)
{
const VkSurfaceFormatKHR* requiredFormats = DE_NULL;
@@ -1186,6 +1248,7 @@
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 @@
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 @@
} 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)