diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2020-02-15 02:42:28 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-02-15 08:59:47 +0100 |
commit | 7cde3ca9e7c5de666cc607e737f984a52f94e021 (patch) | |
tree | 9625b6c02d0dad1e8cc40f9713b2c1d4919d011a /source/l/qt5/patches/qtbase-qxcbwindow.patch | |
parent | bea4af160dc640549e07144b9a0dddf09b569861 (diff) | |
download | current-7cde3ca9e7c5de666cc607e737f984a52f94e021.tar.gz |
Sat Feb 15 02:42:28 UTC 202020200215024228
a/kernel-generic-5.4.20-x86_64-1.txz: Upgraded.
a/kernel-huge-5.4.20-x86_64-1.txz: Upgraded.
a/kernel-modules-5.4.20-x86_64-1.txz: Upgraded.
a/shadow-4.8.1-x86_64-3.txz: Rebuilt.
a/util-linux-2.35.1-x86_64-3.txz: Rebuilt.
d/kernel-headers-5.4.20-x86-1.txz: Upgraded.
k/kernel-source-5.4.20-noarch-1.txz: Upgraded.
l/ConsoleKit2-1.2.1-x86_64-2.txz: Rebuilt.
l/dconf-editor-3.34.4-x86_64-1.txz: Upgraded.
l/libxkbcommon-0.10.0-x86_64-1.txz: Added.
l/openal-soft-1.19.1-x86_64-1.txz: Added.
l/qt5-5.13.2-x86_64-1.txz: Added.
Thanks to alienBOB.
n/openssh-8.2p1-x86_64-1.txz: Upgraded.
Potentially incompatible changes:
* ssh(1), sshd(8): the removal of "ssh-rsa" from the accepted
CASignatureAlgorithms list.
* ssh(1), sshd(8): this release removes diffie-hellman-group14-sha1
from the default key exchange proposal for both the client and
server.
* ssh-keygen(1): the command-line options related to the generation
and screening of safe prime numbers used by the
diffie-hellman-group-exchange-* key exchange algorithms have
changed. Most options have been folded under the -O flag.
* sshd(8): the sshd listener process title visible to ps(1) has
changed to include information about the number of connections that
are currently attempting authentication and the limits configured
by MaxStartups.
x/mesa-19.3.4-x86_64-2.txz: Rebuilt.
Reverted "[PATCH] swr: Fix GCC 4.9 checks." which makes X fail to start with
an illegal instruction on some hardware.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
testing/packages/PAM/ConsoleKit2-1.2.1-x86_64-2_pam.txz: Rebuilt.
Rebuilt with --disable-libcgmanager to fix setting limits on PAM.
Thanks to gattocarlo.
testing/packages/PAM/openssh-8.2p1-x86_64-1_pam.txz: Upgraded.
testing/packages/PAM/shadow-4.8.1-x86_64-3_pam.txz: Rebuilt.
Moved some of the /etc/pam.d/ file to the util-linux package where they
more properly belong.
testing/packages/PAM/util-linux-2.35.1-x86_64-3_pam.txz: Rebuilt.
Added some /etc/pam.d/ files previously in the shadow package.
Changed /etc/pam.d/{chfn,chsh} and made chfn/chsh setuid root to fix them.
Added /etc/pam.d/{runuser,runuser-l}.
usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/l/qt5/patches/qtbase-qxcbwindow.patch')
-rw-r--r-- | source/l/qt5/patches/qtbase-qxcbwindow.patch | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/source/l/qt5/patches/qtbase-qxcbwindow.patch b/source/l/qt5/patches/qtbase-qxcbwindow.patch new file mode 100644 index 00000000..62a0bb44 --- /dev/null +++ b/source/l/qt5/patches/qtbase-qxcbwindow.patch @@ -0,0 +1,97 @@ +Taken from: https://code.qt.io/cgit/qt/qtbase.git/patch/?id=0c183117 + +From 0c1831178540462da31fd7a4b6d2e446bc84498b Mon Sep 17 00:00:00 2001 +From: Erik Kurzinger <ekurzinger@nvidia.com> +Date: Thu, 13 Jun 2019 08:15:50 -0700 +Subject: Track swap interval in QXcbWindow + +As per GLX_EXT_swap_control, the GLX swap interval is specified on a +per-drawable basis. However, QGLXContext only tracks it per-context +using the m_swapInterval member. If a new drawable is made current to a +context, it is still necessary to call glXSwapIntervalEXT to change the +swap interval, even if it has been previously called for the same +context with a different drawable. However, currently, +QGLXContext::makeCurrent doesn't do this if its m_swapInterval field +matches the new swap interval. This change removes m_swapInterval from +QGLXContext, instead tracking it in QXcbWindow. This still avoids +unnecessary calls to glXSwapIntervalEXT, while ensuring the swap +interval is always set for new window drawables. + +Change-Id: Idc34101476c6af618059f6f3d8925dee743994a3 +Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> +--- + .../platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 6 +++--- + src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h | 1 - + src/plugins/platforms/xcb/qxcbwindow.h | 4 ++++ + 3 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +index 4adf662152..f26f698e76 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +@@ -204,7 +204,6 @@ QGLXContext::QGLXContext(QXcbScreen *screen, const QSurfaceFormat &format, QPlat + , m_shareContext(0) + , m_format(format) + , m_isPBufferCurrent(false) +- , m_swapInterval(-1) + , m_ownsContext(nativeHandle.isNull()) + , m_getGraphicsResetStatus(0) + , m_lost(false) +@@ -567,9 +566,9 @@ bool QGLXContext::makeCurrent(QPlatformSurface *surface) + + if (success && surfaceClass == QSurface::Window) { + int interval = surface->format().swapInterval(); ++ QXcbWindow *window = static_cast<QXcbWindow *>(surface); + QXcbScreen *screen = screenForPlatformSurface(surface); +- if (interval >= 0 && m_swapInterval != interval && screen) { +- m_swapInterval = interval; ++ if (interval >= 0 && interval != window->swapInterval() && screen) { + typedef void (*qt_glXSwapIntervalEXT)(Display *, GLXDrawable, int); + typedef void (*qt_glXSwapIntervalMESA)(unsigned int); + static qt_glXSwapIntervalEXT glXSwapIntervalEXT = 0; +@@ -588,6 +587,7 @@ bool QGLXContext::makeCurrent(QPlatformSurface *surface) + glXSwapIntervalEXT(m_display, glxDrawable, interval); + else if (glXSwapIntervalMESA) + glXSwapIntervalMESA(interval); ++ window->setSwapInterval(interval); + } + } + +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h +index be9d3f5dcb..2a88fd6e59 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h +@@ -87,7 +87,6 @@ private: + GLXContext m_shareContext; + QSurfaceFormat m_format; + bool m_isPBufferCurrent; +- int m_swapInterval; + bool m_ownsContext; + GLenum (APIENTRY * m_getGraphicsResetStatus)(); + bool m_lost; +diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h +index f98cd8a74d..8258cc2dfa 100644 +--- a/src/plugins/platforms/xcb/qxcbwindow.h ++++ b/src/plugins/platforms/xcb/qxcbwindow.h +@@ -184,6 +184,9 @@ public: + static void setWindowTitle(const QXcbConnection *conn, xcb_window_t window, const QString &title); + static QString windowTitle(const QXcbConnection *conn, xcb_window_t window); + ++ int swapInterval() const { return m_swapInterval; } ++ void setSwapInterval(int swapInterval) { m_swapInterval = swapInterval; } ++ + public Q_SLOTS: + void updateSyncRequestCounter(); + +@@ -276,6 +279,7 @@ protected: + SyncState m_syncState = NoSyncNeeded; + + QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr; ++ int m_swapInterval = -1; + }; + + class QXcbForeignWindow : public QXcbWindow +-- +cgit v1.2.1 + |