diff options
Diffstat (limited to 'dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch')
| -rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch b/dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch new file mode 100644 index 000000000000..17071b0c7354 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch @@ -0,0 +1,43 @@ +Patch status: fixed in Qt 6.9.1 + +https://bugreports.qt.io/browse/QTBUG-135047 +https://codereview.qt-project.org/c/qt/qtwebengine/+/634033 +--- a/src/core/compositor/native_skia_output_device_opengl.cpp ++++ b/src/core/compositor/native_skia_output_device_opengl.cpp +@@ -214,9 +214,10 @@ + glFun->glBindTexture(GL_TEXTURE_2D, 0); + +- m_frontBuffer->textureCleanupCallback = [glFun, glxFun, display, glxPixmap, +- glTexture]() { ++ m_frontBuffer->textureCleanupCallback = [glFun, glxFun, display, glxPixmap, glTexture, ++ glxHelper, pixmapId]() { + glxFun->glXReleaseTexImageEXT(display, glxPixmap, GLX_FRONT_LEFT_EXT); + glFun->glDeleteTextures(1, &glTexture); + glXDestroyGLXPixmap(display, glxPixmap); ++ glxHelper->freePixmap(pixmapId); + }; + } +--- a/src/core/ozone/glx_helper.cpp ++++ b/src/core/ozone/glx_helper.cpp +@@ -101,3 +101,13 @@ + } + ++void GLXHelper::freePixmap(uint32_t pixmapId) const ++{ ++ xcb_void_cookie_t cookie = xcb_free_pixmap_checked(m_connection, pixmapId); ++ xcb_generic_error_t *error = xcb_request_check(m_connection, cookie); ++ if (error) { ++ qWarning("GLX: XCB_FREE_PIXMAP failed with error code: 0x%x", error->error_code); ++ free(error); ++ } ++} ++ + QT_END_NAMESPACE +--- a/src/core/ozone/glx_helper.h ++++ b/src/core/ozone/glx_helper.h +@@ -34,4 +34,5 @@ + GLXPixmap importBufferAsPixmap(int dmaBufFd, uint32_t size, uint16_t width, uint16_t height, + uint16_t stride) const; ++ void freePixmap(uint32_t pixmapId) const; + bool isDmaBufSupported() const { return m_isDmaBufSupported; } + |
