diff options
-rw-r--r-- | vulkan/vkjson/vkjson.cc | 18 | ||||
-rw-r--r-- | vulkan/vkjson/vkjson.h | 11 | ||||
-rw-r--r-- | vulkan/vkjson/vkjson_instance.cc | 10 |
3 files changed, 39 insertions, 0 deletions
diff --git a/vulkan/vkjson/vkjson.cc b/vulkan/vkjson/vkjson.cc index 8c0cce26ba..18fef2bf58 100644 --- a/vulkan/vkjson/vkjson.cc +++ b/vulkan/vkjson/vkjson.cc @@ -986,6 +986,13 @@ inline bool Iterate(Visitor* visitor, template <typename Visitor> inline bool Iterate(Visitor* visitor, + VkJsonExtImage2DViewOf3DFeatures* features) { + return visitor->Visit("image2DViewOf3DFeaturesEXT", + &features->image_2D_view_of_3D_features_EXT); +} + +template <typename Visitor> +inline bool Iterate(Visitor* visitor, VkJsonExtShaderFloat16Int8Features* features) { return visitor->Visit("shaderFloat16Int8FeaturesKHR", &features->shader_float16_int8_features_khr); @@ -1093,6 +1100,13 @@ inline bool Iterate(Visitor* visitor, template <typename Visitor> inline bool Iterate(Visitor* visitor, + VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* features) { + return visitor->Visit("image2DViewOf3D", &features->image2DViewOf3D) && + visitor->Visit("sampler2DViewOf3D", &features->sampler2DViewOf3D); +} + +template <typename Visitor> +inline bool Iterate(Visitor* visitor, VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* features) { return visitor->Visit("shaderFloat16", &features->shaderFloat16) && visitor->Visit("shaderInt8", &features->shaderInt8); @@ -1241,6 +1255,10 @@ inline bool Iterate(Visitor* visitor, VkJsonDevice* device) { ret &= visitor->Visit("VK_KHR_variable_pointers", &device->ext_variable_pointer_features); } + if (device->ext_image_2d_view_of_3d_features.reported) { + ret &= visitor->Visit("VK_EXT_image_2d_view_of_3d", + &device->ext_image_2d_view_of_3d_features); + } if (device->ext_shader_float16_int8_features.reported) { ret &= visitor->Visit("VK_KHR_shader_float16_int8", &device->ext_shader_float16_int8_features); diff --git a/vulkan/vkjson/vkjson.h b/vulkan/vkjson/vkjson.h index 5818c73b16..87a76c1ac9 100644 --- a/vulkan/vkjson/vkjson.h +++ b/vulkan/vkjson/vkjson.h @@ -58,6 +58,16 @@ struct VkJsonExtVariablePointerFeatures { VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointer_features_khr; }; +struct VkJsonExtImage2DViewOf3DFeatures { + VkJsonExtImage2DViewOf3DFeatures() { + reported = false; + memset(&image_2D_view_of_3D_features_EXT, 0, + sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)); + } + bool reported; + VkPhysicalDeviceImage2DViewOf3DFeaturesEXT image_2D_view_of_3D_features_EXT; +}; + struct VkJsonExtShaderFloat16Int8Features { VkJsonExtShaderFloat16Int8Features() { reported = false; @@ -115,6 +125,7 @@ struct VkJsonDevice { VkPhysicalDeviceFeatures features; VkJsonExtDriverProperties ext_driver_properties; VkJsonExtVariablePointerFeatures ext_variable_pointer_features; + VkJsonExtImage2DViewOf3DFeatures ext_image_2d_view_of_3d_features; VkJsonExtShaderFloat16Int8Features ext_shader_float16_int8_features; VkPhysicalDeviceMemoryProperties memory; std::vector<VkQueueFamilyProperties> queues; diff --git a/vulkan/vkjson/vkjson_instance.cc b/vulkan/vkjson/vkjson_instance.cc index 32bc50b5f8..04bb446e40 100644 --- a/vulkan/vkjson/vkjson_instance.cc +++ b/vulkan/vkjson/vkjson_instance.cc @@ -103,6 +103,16 @@ VkJsonDevice VkJsonGetDevice(VkPhysicalDevice physical_device) { features.pNext = &device.ext_variable_pointer_features.variable_pointer_features_khr; } + if (HasExtension("VK_EXT_image_2d_view_of_3d", device.extensions)) { + device.ext_image_2d_view_of_3d_features.reported = true; + device.ext_image_2d_view_of_3d_features.image_2D_view_of_3D_features_EXT + .sType = + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT; + device.ext_image_2d_view_of_3d_features.image_2D_view_of_3D_features_EXT + .pNext = features.pNext; + features.pNext = &device.ext_image_2d_view_of_3d_features + .image_2D_view_of_3D_features_EXT; + } if (HasExtension("VK_KHR_shader_float16_int8", device.extensions)) { device.ext_shader_float16_int8_features.reported = true; device.ext_shader_float16_int8_features.shader_float16_int8_features_khr |