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);
 

Reply via email to