Hello community, here is the log from the commit of package kwin5 for openSUSE:Factory checked in at 2015-04-07 09:29:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwin5 (Old) and /work/SRC/openSUSE:Factory/.kwin5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwin5" Changes: -------- --- /work/SRC/openSUSE:Factory/kwin5/kwin5.changes 2015-03-25 09:58:23.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kwin5.new/kwin5.changes 2015-04-07 09:29:37.000000000 +0200 @@ -1,0 +2,5 @@ +Sat Apr 4 17:27:57 UTC 2015 - [email protected] + +- Added fix_nvidia.patch from upstrem to resolve kde#343551 + +------------------------------------------------------------------- New: ---- fix_nvidia.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwin5.spec ++++++ --- /var/tmp/diff_new_pack.Ef5ceY/_old 2015-04-07 09:29:37.000000000 +0200 +++ /var/tmp/diff_new_pack.Ef5ceY/_new 2015-04-07 09:29:37.000000000 +0200 @@ -25,6 +25,8 @@ Url: http://www.kde.org Source: kwin-%{version}.tar.xz Source99: %{name}-rpmlintrc +# PATCH-FIX-UPSTREAM fix_nvidia.patch -- bugs.kde.org/343551 +Patch1: fix_nvidia.patch BuildRequires: extra-cmake-modules >= 0.0.11 BuildRequires: kactivities5-devel >= 5.6.0 BuildRequires: kcmutils-devel >= 5.6.0 @@ -106,6 +108,7 @@ %lang_package %prep %setup -q -n kwin-%{version} +%patch1 -p1 %build %cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5 ++++++ fix_nvidia.patch ++++++ From: Simeon Bird <[email protected]> Date: Sat, 21 Mar 2015 00:18:46 +0000 Subject: Fix hang on nvidia hardware when deleting sync objects --- Fix hang on nvidia hardware when deleting sync objects When a sync object is deleted, the fence it is connected to must already be signalled, or the driver will busy-wait forever. Signal fences before deleting syncs to avoid this. BUG: 343551 FIXED-IN: 5.3 REVIEW: 123090 --- --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -120,6 +120,17 @@ SyncObject::~SyncObject() { + // If glDeleteSync is called before the xcb fence is signalled + // the nvidia driver (the only one to implement GL_SYNC_X11_FENCE_EXT) + // deadlocks waiting for the fence to be signalled. + // To avoid this, make sure the fence is signalled before + // deleting the sync. + if (m_state == Resetting || m_state == Ready){ + trigger(); + // The flush is necessary! + // The trigger command needs to be sent to the X server + xcb_flush(connection()); + } xcb_sync_destroy_fence(connection(), m_fence); glDeleteSync(m_sync);
