From 40fb1076646ba0b0cf86956393843abf2f854fb8 Mon Sep 17 00:00:00 2001 From: Dawn Han Date: Wed, 29 Jun 2022 18:14:01 +0000 Subject: [PATCH] Add iub features and properties passthrough Signed-off-by: Dawn Han Part-of: --- src/virtio/vulkan/vn_physical_device.c | 20 ++++++++++++++++++++ src/virtio/vulkan/vn_physical_device.h | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index ac79e4b..c520069 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -129,6 +129,9 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, features2); VN_ADD_EXT_TO_PNEXT(exts->EXT_image_robustness, feats->image_robustness, IMAGE_ROBUSTNESS_FEATURES_EXT, features2); + VN_ADD_EXT_TO_PNEXT(exts->EXT_inline_uniform_block, + feats->inline_uniform_block, + INLINE_UNIFORM_BLOCK_FEATURES, features2); VN_ADD_EXT_TO_PNEXT(exts->EXT_shader_demote_to_helper_invocation, feats->shader_demote_to_helper_invocation, SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, @@ -466,6 +469,11 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev) TIMELINE_SEMAPHORE_PROPERTIES, properties2); } + /* Vulkan 1.3 */ + VN_ADD_EXT_TO_PNEXT(exts->EXT_inline_uniform_block, + props->inline_uniform_block, + INLINE_UNIFORM_BLOCK_PROPERTIES, properties2); + /* EXT */ VN_ADD_EXT_TO_PNEXT( exts->EXT_conservative_rasterization, props->conservative_rasterization, @@ -1609,6 +1617,7 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *extended_dynamic_state2; VkPhysicalDeviceImageRobustnessFeaturesEXT *image_robustness; + VkPhysicalDeviceInlineUniformBlockFeatures *inline_uniform_block; VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *shader_demote_to_helper_invocation; @@ -1796,6 +1805,9 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: *u.image_robustness = feats->image_robustness; break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + *u.inline_uniform_block = feats->inline_uniform_block; + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: *u.shader_demote_to_helper_invocation = feats->shader_demote_to_helper_invocation; @@ -1873,6 +1885,9 @@ vn_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSamplerFilterMinmaxProperties *sampler_filter_minmax; VkPhysicalDeviceTimelineSemaphoreProperties *timeline_semaphore; + /* Vulkan 1.3 */ + VkPhysicalDeviceInlineUniformBlockProperties *inline_uniform_block; + /* EXT */ VkPhysicalDeviceConservativeRasterizationPropertiesEXT *conservative_rasterization; @@ -2067,6 +2082,11 @@ vn_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, vk12_props->maxTimelineSemaphoreValueDifference; break; + /* Vulkan 1.3 */ + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: + *u.inline_uniform_block = props->inline_uniform_block; + break; + /* EXT */ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: *u.conservative_rasterization = props->conservative_rasterization; diff --git a/src/virtio/vulkan/vn_physical_device.h b/src/virtio/vulkan/vn_physical_device.h index c17663e..6a9fb00 100644 --- a/src/virtio/vulkan/vn_physical_device.h +++ b/src/virtio/vulkan/vn_physical_device.h @@ -27,6 +27,7 @@ struct vn_physical_device_features { VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state; VkPhysicalDeviceExtendedDynamicState2FeaturesEXT extended_dynamic_state_2; VkPhysicalDeviceImageRobustnessFeaturesEXT image_robustness; + VkPhysicalDeviceInlineUniformBlockFeatures inline_uniform_block; VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures shader_demote_to_helper_invocation; @@ -48,6 +49,9 @@ struct vn_physical_device_properties { VkPhysicalDeviceVulkan11Properties vulkan_1_1; VkPhysicalDeviceVulkan12Properties vulkan_1_2; + /* Vulkan 1.3 */ + VkPhysicalDeviceInlineUniformBlockProperties inline_uniform_block; + /* EXT */ VkPhysicalDeviceConservativeRasterizationPropertiesEXT conservative_rasterization; -- 2.7.4