Module: Mesa Branch: main Commit: 03ffbcb29a447d4a2244a5b81215377385536304 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=03ffbcb29a447d4a2244a5b81215377385536304
Author: Ryan Neph <[email protected]> Date: Wed Feb 15 14:37:32 2023 -0800 Revert "venus: temporarily redirect VkDrmFormatModifierPropertiesListEXT to "2" variant" No longer need to redirect, since the renderer should use the fixed decoder for VkDrmFormatModifierPropertiesListEXT::drmFormatModifierCount by now. This reverts commit 525b8c582f2e8e3e8f12589c1d384d683fee5dc4. Signed-off-by: Ryan Neph <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21395> --- src/virtio/vulkan/vn_common.h | 15 -------- src/virtio/vulkan/vn_physical_device.c | 68 ---------------------------------- 2 files changed, 83 deletions(-) diff --git a/src/virtio/vulkan/vn_common.h b/src/virtio/vulkan/vn_common.h index 7b6156e0a21..e3287a54347 100644 --- a/src/virtio/vulkan/vn_common.h +++ b/src/virtio/vulkan/vn_common.h @@ -337,19 +337,4 @@ vn_object_get_id(const void *obj, VkObjectType type) } } -/* - * Find struct in the pNext of chain and return its previous struct. - */ -static inline void * -vn_find_prev_struct(const void *chain, VkStructureType type) -{ - VkBaseOutStructure *prev = (VkBaseOutStructure *)chain; - while (prev->pNext) { - if (prev->pNext->sType == type) - return prev; - prev = prev->pNext; - } - return NULL; -} - #endif /* VN_COMMON_H */ diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 53676da977e..c3b5078b1b6 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -1905,77 +1905,9 @@ vn_GetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice, } } - /* translate VkDrmFormatModifierPropertiesEXT into - * VkDrmFormatModifierProperties2EXT - * TODO: remove once venus-protocol WA1 is fixed: - * https://gitlab.freedesktop.org/olv/venus-protocol/-/merge_requests/22 - * - * Assumes that the caller will send either the "List" variant or the - * "List2" variant, but never both. */ - VkDrmFormatModifierPropertiesListEXT *modifier_list = NULL; - VkDrmFormatModifierPropertiesList2EXT local_modifier_list2; - - VkBaseInStructure *prev = vn_find_prev_struct( - pFormatProperties, - VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT); - - if (prev) { - modifier_list = (void *)prev->pNext; - -#ifndef NDEBUG - const VkBaseInStructure *list2 = vk_find_struct_const( - pFormatProperties, DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT); - assert(!list2); -#endif - - local_modifier_list2 = (VkDrmFormatModifierPropertiesList2EXT){ - .sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT, - .pNext = modifier_list->pNext, - .drmFormatModifierCount = modifier_list->drmFormatModifierCount, - }; - prev->pNext = (const void *)&local_modifier_list2; - - if (modifier_list->pDrmFormatModifierProperties) { - local_modifier_list2.pDrmFormatModifierProperties = malloc( - local_modifier_list2.drmFormatModifierCount * - sizeof(*local_modifier_list2.pDrmFormatModifierProperties)); - if (!local_modifier_list2.pDrmFormatModifierProperties) { - vn_log(physical_dev->instance, - "failed vkGetPhysicalDeviceFormatProperties: out of host " - "memory."); - return; - } - } - } - vn_call_vkGetPhysicalDeviceFormatProperties2( physical_dev->instance, physicalDevice, format, pFormatProperties); - if (modifier_list) { - modifier_list->drmFormatModifierCount = - local_modifier_list2.drmFormatModifierCount; - - if (modifier_list->pDrmFormatModifierProperties) { - for (uint32_t i = 0; i < modifier_list->drmFormatModifierCount; - i++) { - const VkDrmFormatModifierProperties2EXT *modifier_props2 = - &local_modifier_list2.pDrmFormatModifierProperties[i]; - - modifier_list->pDrmFormatModifierProperties[i] = - (VkDrmFormatModifierPropertiesEXT){ - .drmFormatModifier = modifier_props2->drmFormatModifier, - .drmFormatModifierPlaneCount = - modifier_props2->drmFormatModifierPlaneCount, - .drmFormatModifierTilingFeatures = - modifier_props2->drmFormatModifierTilingFeatures, - }; - } - } - - prev->pNext = (const void *)modifier_list; - free(local_modifier_list2.pDrmFormatModifierProperties); - } - if (entry) { vn_physical_device_add_format_properties( physical_dev, entry, &pFormatProperties->formatProperties);
