diff options
| author | Ionen Wolkens <ionen@gentoo.org> | 2025-04-06 10:42:06 -0400 |
|---|---|---|
| committer | Ionen Wolkens <ionen@gentoo.org> | 2025-04-06 10:47:26 -0400 |
| commit | 234ace8b5bdeaa481f073cea3a4372c31263015c (patch) | |
| tree | 84054950a0f36b5c2fcbbd1b36f8442e75919d0a /dev-qt/qtwebengine | |
| parent | cf2c31c1eb884fe5708bd4282c2a03aa844b9fd5 (diff) | |
| download | gentoo-234ace8b5bdeaa481f073cea3a4372c31263015c.tar.gz gentoo-234ace8b5bdeaa481f073cea3a4372c31263015c.tar.bz2 gentoo-234ace8b5bdeaa481f073cea3a4372c31263015c.zip | |
dev-qt/qtwebengine: backport fix for QTBUG-133570
Haven't reproduced the crash myself, but both falkon and
qutebrowser upstreams had reports about that issue with 6.9.0,
and may as well include it before potential unmasking.
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt/qtwebengine')
| -rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-6.9.0-QTBUG-133570.patch | 108 | ||||
| -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() { |
