venus: Exposes VK_EXT_4444_formats extension

Allows venus to passthrough the VK_EXT_4444_formats extension to
the vulkan client.

And add code to the device initialization and feature query
functions.

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Signed-off-by: Igor Torrente <igor.torrente@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14954>
This commit is contained in:
Igor Torrente
2022-01-27 06:33:55 -03:00
committed by Marge Bot
parent 2a87a741ae
commit e5405e6400
2 changed files with 16 additions and 0 deletions
+15
View File
@@ -145,6 +145,15 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
local_feats.vulkan_memory_model.pNext = NULL;
}
if (physical_dev->renderer_extensions.EXT_4444_formats) {
physical_dev->argb_4444_formats_features.sType =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
physical_dev->argb_4444_formats_features.pNext =
physical_dev->features.pNext;
physical_dev->features.pNext =
&physical_dev->argb_4444_formats_features;
}
if (physical_dev->renderer_extensions.EXT_transform_feedback) {
physical_dev->transform_feedback_features.sType =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
@@ -963,6 +972,7 @@ vn_physical_device_get_passthrough_extensions(
.EXT_shader_viewport_index_layer = true,
/* promoted to VK_VERSION_1_3 */
.EXT_4444_formats = true,
.EXT_extended_dynamic_state = true,
/* EXT */
#ifndef ANDROID
@@ -1638,6 +1648,7 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
VkPhysicalDeviceBufferDeviceAddressFeatures *buffer_device_address;
VkPhysicalDeviceVulkanMemoryModelFeatures *vulkan_memory_model;
VkPhysicalDevice4444FormatsFeaturesEXT *argb_4444_formats;
VkPhysicalDeviceTransformFeedbackFeaturesEXT *transform_feedback;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *extended_dynamic_state;
} u;
@@ -1796,6 +1807,10 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
u.vulkan_memory_model->vulkanMemoryModelAvailabilityVisibilityChains =
vk12_feats->vulkanMemoryModelAvailabilityVisibilityChains;
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
memcpy(u.argb_4444_formats, &physical_dev->argb_4444_formats_features,
sizeof(physical_dev->argb_4444_formats_features));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
memcpy(u.transform_feedback,
&physical_dev->transform_feedback_features,
+1
View File
@@ -41,6 +41,7 @@ struct vn_physical_device {
VkPhysicalDeviceVulkan11Features vulkan_1_1_features;
VkPhysicalDeviceVulkan12Features vulkan_1_2_features;
VkPhysicalDeviceTransformFeedbackFeaturesEXT transform_feedback_features;
VkPhysicalDevice4444FormatsFeaturesEXT argb_4444_formats_features;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
extended_dynamic_state_features;