Added missing feature structure for VK_KHR_maintenance4
VK_KHR_maintenance4 adds a feature structure, which was missing from
PhysicalDevice::getFeatures2(). This CL adds it.
Tests: dEQP-VK.api.info.get_physical_device_properties2.features
Bug: b/204502926
Change-Id: I88738817a22e536c3b8c13887c5865f634cda403
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/64728
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Commit-Queue: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkPhysicalDevice.cpp b/src/Vulkan/VkPhysicalDevice.cpp
index 010c270..3dc62d6 100644
--- a/src/Vulkan/VkPhysicalDevice.cpp
+++ b/src/Vulkan/VkPhysicalDevice.cpp
@@ -364,6 +364,12 @@
}
template<typename T>
+static void getPhysicalDeviceMaintenance4Features(T *features)
+{
+ features->maintenance4 = VK_TRUE;
+}
+
+template<typename T>
static void getPhysicalDeviceVulkan12Features(T *features)
{
features->samplerMirrorClampToEdge = VK_TRUE;
@@ -409,7 +415,7 @@
getPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(features);
getPhysicalDeviceDynamicRenderingFeatures(features);
getPhysicalDeviceShaderIntegerDotProductFeatures(features);
- features->maintenance4 = VK_TRUE;
+ getPhysicalDeviceMaintenance4Features(features);
}
static void getPhysicalDeviceCustomBorderColorFeaturesExt(VkPhysicalDeviceCustomBorderColorFeaturesEXT *features)
@@ -570,6 +576,9 @@
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
getPhysicalDeviceShaderIntegerDotProductFeatures(reinterpret_cast<struct VkPhysicalDeviceShaderIntegerDotProductFeatures *>(curExtension));
break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
+ getPhysicalDeviceMaintenance4Features(reinterpret_cast<struct VkPhysicalDeviceMaintenance4Features *>(curExtension));
+ break;
// Unsupported extensions, but used by dEQP
// TODO(b/176893525): This may not be legal.
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
@@ -577,6 +586,7 @@
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+ case VK_STRUCTURE_TYPE_MAX_ENUM: // dEQP tests that this value is ignored.
break;
default:
UNSUPPORTED("curExtension->sType: %s", vk::Stringify(curExtension->sType).c_str());