diff --git a/Libraries/LibGfx/VulkanImage.cpp b/Libraries/LibGfx/VulkanImage.cpp index baafcc9a77..adc98841eb 100644 --- a/Libraries/LibGfx/VulkanImage.cpp +++ b/Libraries/LibGfx/VulkanImage.cpp @@ -84,7 +84,7 @@ int VulkanImage::get_dma_buf_fd() const return fd; } -ErrorOr> create_shared_vulkan_image(VulkanContext const& context, uint32_t width, uint32_t height, VkFormat format, uint32_t num_modifiers, uint64_t const* modifiers) +ErrorOr> create_shared_vulkan_image(VulkanContext const& context, uint32_t width, uint32_t height, VkFormat format, ReadonlySpan modifiers) { VkDrmFormatModifierPropertiesListEXT format_mod_props_list = {}; format_mod_props_list.sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT; @@ -102,12 +102,8 @@ ErrorOr> create_shared_vulkan_image(VulkanContext con Vector format_mods; for (VkDrmFormatModifierPropertiesEXT const& props : format_mod_props) { if ((props.drmFormatModifierTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) && (props.drmFormatModifierPlaneCount == 1)) { - for (uint32_t i = 0; i < num_modifiers; ++i) { - if (modifiers[i] == props.drmFormatModifier) { - format_mods.append(props.drmFormatModifier); - break; - } - } + if (modifiers.contains_slow(props.drmFormatModifier)) + format_mods.append(props.drmFormatModifier); } } diff --git a/Libraries/LibGfx/VulkanImage.h b/Libraries/LibGfx/VulkanImage.h index d6e2d8e1e2..a683c2186b 100644 --- a/Libraries/LibGfx/VulkanImage.h +++ b/Libraries/LibGfx/VulkanImage.h @@ -11,6 +11,7 @@ # include # include # include +# include # include # include @@ -52,7 +53,7 @@ static inline uint32_t vk_format_to_drm_format(VkFormat format) } } -ErrorOr> create_shared_vulkan_image(VulkanContext const& context, uint32_t width, uint32_t height, VkFormat format, uint32_t num_modifiers, uint64_t const* modifiers); +ErrorOr> create_shared_vulkan_image(VulkanContext const& context, uint32_t width, uint32_t height, VkFormat format, ReadonlySpan modifiers); } diff --git a/Libraries/LibWeb/WebGL/OpenGLContext.cpp b/Libraries/LibWeb/WebGL/OpenGLContext.cpp index d0c69df6a3..514f8311bd 100644 --- a/Libraries/LibWeb/WebGL/OpenGLContext.cpp +++ b/Libraries/LibWeb/WebGL/OpenGLContext.cpp @@ -350,7 +350,7 @@ void OpenGLContext::allocate_vkimage_painting_surface() } } - auto vulkan_image = MUST(Gfx::create_shared_vulkan_image(m_skia_backend_context->vulkan_context(), m_size.width(), m_size.height(), vulkan_format, renderable_modifiers.size(), renderable_modifiers.data())); + auto vulkan_image = MUST(Gfx::create_shared_vulkan_image(m_skia_backend_context->vulkan_context(), m_size.width(), m_size.height(), vulkan_format, renderable_modifiers)); m_painting_surface = Gfx::PaintingSurface::create_from_vkimage(m_skia_backend_context, vulkan_image, Gfx::PaintingSurface::Origin::BottomLeft); EGLAttrib attribs[] = {