From eb1d009a3e6c0486a8e0c3340881360f1f57fdcc Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 23 Mar 2022 02:36:00 -0700 Subject: [PATCH] radv: Don't use VK_OUTARRAY_MAKE()/vk_outarray_append() MSVC doesn't support typeof(). If we want to keep compiling radv on windows we need to use the typed variants of those macros. Fixes: 10d69d5f0bcc ("radv: fix returning empty drmFormatModifierTilingFeatures") Acked-by: Daniel Stone Acked-by: Erik Faye-Lund Reviewed-by: Jason Ekstrand Part-of: --- src/amd/vulkan/radv_formats.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index 4f916b4d328..92e59ba6d94 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -1238,7 +1238,9 @@ radv_list_drm_format_modifiers(struct radv_physical_device *dev, VkFormat format return; } - VK_OUTARRAY_MAKE(out, mod_list->pDrmFormatModifierProperties, &mod_list->drmFormatModifierCount); + VK_OUTARRAY_MAKE_TYPED(VkDrmFormatModifierPropertiesEXT, out, + mod_list->pDrmFormatModifierProperties, + &mod_list->drmFormatModifierCount); ac_get_supported_modifiers(&dev->rad_info, &radv_modifier_options, vk_format_to_pipe_format(format), &mod_count, NULL); @@ -1266,7 +1268,7 @@ radv_list_drm_format_modifiers(struct radv_physical_device *dev, VkFormat format if (!features) continue; - vk_outarray_append(&out, out_props) { + vk_outarray_append_typed(VkDrmFormatModifierPropertiesEXT, &out, out_props) { *out_props = (VkDrmFormatModifierPropertiesEXT) { .drmFormatModifier = mods[i], .drmFormatModifierPlaneCount = planes, @@ -1293,7 +1295,9 @@ radv_list_drm_format_modifiers_2(struct radv_physical_device *dev, VkFormat form return; } - VK_OUTARRAY_MAKE(out, mod_list->pDrmFormatModifierProperties, &mod_list->drmFormatModifierCount); + VK_OUTARRAY_MAKE_TYPED(VkDrmFormatModifierProperties2EXT, out, + mod_list->pDrmFormatModifierProperties, + &mod_list->drmFormatModifierCount); ac_get_supported_modifiers(&dev->rad_info, &radv_modifier_options, vk_format_to_pipe_format(format), &mod_count, NULL); @@ -1321,7 +1325,7 @@ radv_list_drm_format_modifiers_2(struct radv_physical_device *dev, VkFormat form if (!features) continue; - vk_outarray_append(&out, out_props) { + vk_outarray_append_typed(VkDrmFormatModifierProperties2EXT, &out, out_props) { *out_props = (VkDrmFormatModifierProperties2EXT) { .drmFormatModifier = mods[i], .drmFormatModifierPlaneCount = planes,