From 19ef41b18179b39ca9ee74003ffc59fc285de0b0 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 19 Jul 2022 09:05:09 +0200 Subject: [PATCH] v3dv: handle VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/vulkan/v3dv_formats.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/broadcom/vulkan/v3dv_formats.c b/src/broadcom/vulkan/v3dv_formats.c index 3019ca5fdef..e2ae0163b6d 100644 --- a/src/broadcom/vulkan/v3dv_formats.c +++ b/src/broadcom/vulkan/v3dv_formats.c @@ -324,6 +324,29 @@ v3dv_GetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice, } break; } + case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: { + struct VkDrmFormatModifierPropertiesList2EXT *list = (void *)ext; + VK_OUTARRAY_MAKE_TYPED(VkDrmFormatModifierProperties2EXT, out, + list->pDrmFormatModifierProperties, + &list->drmFormatModifierCount); + if (linear2) { + vk_outarray_append_typed(VkDrmFormatModifierProperties2EXT, + &out, mod_props) { + mod_props->drmFormatModifier = DRM_FORMAT_MOD_LINEAR; + mod_props->drmFormatModifierPlaneCount = 1; + mod_props->drmFormatModifierTilingFeatures = linear2; + } + } + if (optimal2) { + vk_outarray_append_typed(VkDrmFormatModifierProperties2EXT, + &out, mod_props) { + mod_props->drmFormatModifier = DRM_FORMAT_MOD_BROADCOM_UIF; + mod_props->drmFormatModifierPlaneCount = 1; + mod_props->drmFormatModifierTilingFeatures = optimal2; + } + } + break; + } case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: { VkFormatProperties3 *props = (VkFormatProperties3 *)ext; props->linearTilingFeatures = linear2;