[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#542064: xserver-xorg: please include patches to fix idle time computation



Package: xserver-xorg
Version: 1:7.4+4
Severity: wishlist

Hi,

as explained in [0], gnome-power-manager 2.28 will stop including any of
the (not always working) kludges to work around the idle time
computation issues in the X server.

The author has provided supposedly correct patches to fix this behavior
to Xorg. The first patch has already been committed, and the second is
very small. It would be nice to have these fixes included in Debian
before g-p-m 2.28 is uploaded.

I’m attaching the patches.

[0] http://blogs.gnome.org/hughsie/2009/08/17/gnome-power-manager-and-blanking-removal-of-bodges/

Thanks,
-- 
 .''`.      Josselin Mouette
: :' :
`. `'   “I recommend you to learn English in hope that you in
  `-     future understand things”  -- Jörg Schilling
From db568f9eabf3450d8a023597ff007df355b13ea8 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 13 Aug 2009 06:37:00 +0000
Subject: Xext: fix up wrong conditions for negative sync transitions.

If the counter had a value higher than the trigger value for a negative
transition, the trigger value did not get set.

The correct sequence of checks is:
if (positive transition)
   if (counter value < trigger value)
      set up trigger
if (negative transition)
   if (counter value > trigger value)
      set up trigger

Red Hat Bug 501601 <https://bugzilla.redhat.com/show_bug.cgi?id=501601>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
diff --git a/Xext/sync.c b/Xext/sync.c
index 5f4ce56..667f8ab 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -962,28 +962,24 @@ SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver)
 		pnewltval = &psci->bracket_less;
 	    }
 	}
-	else if ( (pTrigger->test_type == XSyncPositiveTransition &&
+	else if (pTrigger->test_type == XSyncNegativeTransition &&
 		   ct != XSyncCounterNeverIncreases)
-		 ||
-		 (pTrigger->test_type == XSyncNegativeTransition &&
+	{
+	    if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
+		XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less))
+	    {
+		psci->bracket_less = pTrigger->test_value;
+		pnewltval = &psci->bracket_less;
+	    }
+	}
+        else if (pTrigger->test_type == XSyncPositiveTransition &&
 		  ct != XSyncCounterNeverDecreases)
-		 )
 	{
-	    if (XSyncValueLessThan(pCounter->value, pTrigger->test_value))
+	    if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
+		XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater))
 	    {
-		if (XSyncValueLessThan(pTrigger->test_value,
-				       psci->bracket_greater))
-		{
-		    psci->bracket_greater = pTrigger->test_value;
-		    pnewgtval = &psci->bracket_greater;
-		}
-		else
-		if (XSyncValueGreaterThan(pTrigger->test_value,
-					  psci->bracket_less))
-		{
-		    psci->bracket_less = pTrigger->test_value;
-		    pnewltval = &psci->bracket_less;
-		}
+		psci->bracket_greater = pTrigger->test_value;
+		pnewgtval = &psci->bracket_greater;
 	    }
 	}
     } /* end for each trigger */
--
cgit v0.8.2
From 9c5fcee00d247c5bcf8a9af3a2e332ea4416f7e8 Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Mon, 17 Aug 2009 09:15:32 +0100
Subject: [PATCH 2/2] Do not reset lastDeviceEventTime when we do dixSaveScreens

When we turn off DPMS with DPMSModeOff and do dixSaveScreens, don't reset the
event time else session clients using IDLETIME will be reset.
---
 dix/window.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/dix/window.c b/dix/window.c
index 32e26d9..1a645f6 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -3128,8 +3128,6 @@ dixSaveScreens(ClientPtr client, int on, int mode)
 
     if (on == SCREEN_SAVER_FORCER)
     {
-	UpdateCurrentTimeIf();
-	lastDeviceEventTime = currentTime;
 	if (mode == ScreenSaverReset)
 	    what = SCREEN_SAVER_OFF;
 	else
-- 
1.6.2.5

Attachment: signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=


Reply to: