summaryrefslogtreecommitdiff
path: root/dev-qt/qtwebengine
diff options
context:
space:
mode:
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-6.9.0-QTBUG-133570.patch108
-rw-r--r--dev-qt/qtwebengine/qtwebengine-6.9.0-r1.ebuild (renamed from dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild)1
2 files changed, 109 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.9.0-QTBUG-133570.patch b/dev-qt/qtwebengine/files/qtwebengine-6.9.0-QTBUG-133570.patch
new file mode 100644
index 000000000000..decd83aa9b1b
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-6.9.0-QTBUG-133570.patch
@@ -0,0 +1,108 @@
+https://bugs.kde.org/show_bug.cgi?id=497691
+https://github.com/qutebrowser/qutebrowser/issues/8534
+https://bugreports.qt.io/browse/QTBUG-133570
+https://codereview.qt-project.org/c/qt/qtwebengine/+/634920
+--- a/src/core/configure/BUILD.root.gn.in
++++ b/src/core/configure/BUILD.root.gn.in
+@@ -406,4 +406,5 @@
+ "//ui/base/x:gl",
+ "//ui/gfx/linux:gpu_memory_buffer_support_x11",
++ "//ui/gfx/x",
+ ]
+
+@@ -411,4 +412,6 @@
+ "//ui/ozone/platform/x11/gl_egl_utility_x11.cc",
+ "//ui/ozone/platform/x11/gl_egl_utility_x11.h",
++ "//ui/ozone/platform/x11/native_pixmap_egl_x11_binding.cc",
++ "//ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h",
+ ]
+ }
+--- a/src/core/ozone/gl_ozone_angle_qt.cpp
++++ b/src/core/ozone/gl_ozone_angle_qt.cpp
+@@ -1,5 +1,9 @@
+-// Copyright (C) 2024 The Qt Company Ltd.
++// Copyright (C) 2025 The Qt Company Ltd.
+ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
++// Copyright 2016 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
+ #include "gl_ozone_angle_qt.h"
+
+@@ -13,4 +17,6 @@
+ #if BUILDFLAG(IS_OZONE_X11)
+ #include "ozone_util_qt.h"
++
++#include "ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h"
+ #endif
+
+@@ -21,4 +27,32 @@
+
+ namespace ui {
++namespace {
++// Based on //ui/ozone/platform/x11/x11_surface_factory.cc
++enum class NativePixmapSupportType {
++ // Importing native pixmaps not supported.
++ kNone,
++
++ // Native pixmaps are imported directly into EGL using the
++ // EGL_EXT_image_dma_buf_import extension.
++ kDMABuf,
++
++ // Native pixmaps are first imported as X11 pixmaps using DRI3 and then into
++ // EGL.
++ kX11Pixmap,
++};
++
++NativePixmapSupportType GetNativePixmapSupportType()
++{
++ if (gl::GLSurfaceEGL::GetGLDisplayEGL()->ext->b_EGL_EXT_image_dma_buf_import)
++ return NativePixmapSupportType::kDMABuf;
++
++#if BUILDFLAG(IS_OZONE_X11)
++ if (NativePixmapEGLX11Binding::CanImportNativeGLXPixmap())
++ return NativePixmapSupportType::kX11Pixmap;
++#endif
++
++ return NativePixmapSupportType::kNone;
++}
++} // namespace
+
+ bool GLOzoneANGLEQt::LoadGLES2Bindings(const gl::GLImplementationParts & /*implementation*/)
+@@ -74,5 +108,14 @@
+ bool GLOzoneANGLEQt::CanImportNativePixmap(gfx::BufferFormat format)
+ {
+- return gl::GLSurfaceEGL::GetGLDisplayEGL()->ext->b_EGL_EXT_image_dma_buf_import;
++ switch (GetNativePixmapSupportType()) {
++ case NativePixmapSupportType::kDMABuf:
++ return NativePixmapEGLBinding::IsBufferFormatSupported(format);
++#if BUILDFLAG(IS_OZONE_X11)
++ case NativePixmapSupportType::kX11Pixmap:
++ return NativePixmapEGLX11Binding::IsBufferFormatSupported(format);
++#endif
++ default:
++ return false;
++ }
+ }
+
+@@ -83,6 +126,17 @@
+ GLenum target, GLuint texture_id)
+ {
+- return NativePixmapEGLBinding::Create(pixmap, plane_format, plane, plane_size, color_space,
+- target, texture_id);
++ switch (GetNativePixmapSupportType()) {
++ case NativePixmapSupportType::kDMABuf:
++ return NativePixmapEGLBinding::Create(pixmap, plane_format, plane, plane_size, color_space,
++ target, texture_id);
++#if BUILDFLAG(IS_OZONE_X11)
++ case NativePixmapSupportType::kX11Pixmap:
++ return NativePixmapEGLX11Binding::Create(pixmap, plane_format, plane_size, target,
++ texture_id);
++#endif
++ default:
++ NOTREACHED();
++ return nullptr;
++ }
+ }
+
diff --git a/dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild b/dev-qt/qtwebengine/qtwebengine-6.9.0-r1.ebuild
index 5366adc7bed8..d01308b28bb7 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.9.0-r1.ebuild
@@ -109,6 +109,7 @@ PATCHES+=(
"${FILESDIR}"/${PN}-6.8.2-glibc2.41.patch
"${FILESDIR}"/${PN}-6.8.3-pipewire1.4.patch
"${FILESDIR}"/${PN}-6.9.0-x11-pixmap-leak.patch
+ "${FILESDIR}"/${PN}-6.9.0-QTBUG-133570.patch
)
python_check_deps() {