vulkan: store formats with modifiers

This commit is contained in:
columbarius 2023-09-24 01:10:22 +02:00
parent 80fa9ee516
commit bd08dd056a
2 changed files with 8 additions and 1 deletions

View file

@ -28,6 +28,8 @@ struct vulkan_format_info {
struct vulkan_format_infos { struct vulkan_format_infos {
uint32_t formatCount; uint32_t formatCount;
struct vulkan_format_info *infos; struct vulkan_format_info *infos;
uint32_t formatsWithModifiersCount;
}; };
struct vulkan_buffer { struct vulkan_buffer {

View file

@ -777,7 +777,8 @@ int vulkan_format_infos_init(struct vulkan_base *s, uint32_t formatCount, uint32
if (!info->infos) if (!info->infos)
return -ENOMEM; return -ENOMEM;
for (uint32_t i = 0; i < formatCount; i++) { uint32_t i;
for (i = 0; i < formatCount; i++) {
VkFormat format = vulkan_id_to_vkformat(formats[i]); VkFormat format = vulkan_id_to_vkformat(formats[i]);
if (format == VK_FORMAT_UNDEFINED) if (format == VK_FORMAT_UNDEFINED)
continue; continue;
@ -870,6 +871,10 @@ int vulkan_format_infos_init(struct vulkan_base *s, uint32_t formatCount, uint32
} }
free(modPropsList.pDrmFormatModifierProperties); free(modPropsList.pDrmFormatModifierProperties);
} }
for (i = 0; i < info->formatCount; i++) {
if (info->infos[i].modifierCount > 0)
info->formatsWithModifiersCount++;
}
return 0; return 0;
} }