diff --git a/spa/plugins/vulkan/vulkan-types.h b/spa/plugins/vulkan/vulkan-types.h index 143a425ce..c2708ea87 100644 --- a/spa/plugins/vulkan/vulkan-types.h +++ b/spa/plugins/vulkan/vulkan-types.h @@ -6,6 +6,7 @@ #include #define MAX_BUFFERS 16 +#define DMABUF_MAX_PLANES 1 struct vulkan_modifier_info { VkDrmFormatModifierPropertiesEXT props; diff --git a/spa/plugins/vulkan/vulkan-utils.c b/spa/plugins/vulkan/vulkan-utils.c index 1c3f678b8..780fe89a4 100644 --- a/spa/plugins/vulkan/vulkan-utils.c +++ b/spa/plugins/vulkan/vulkan-utils.c @@ -266,6 +266,9 @@ static int queryFormatInfo(struct vulkan_base *s, struct vulkan_base_info *info) if (!(props.drmFormatModifierTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)) continue; + if (props.drmFormatModifierPlaneCount > DMABUF_MAX_PLANES) + continue; + VkPhysicalDeviceImageDrmFormatModifierInfoEXT modInfo = { .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT, .drmFormatModifier = props.drmFormatModifier,