On Tue, Apr 03, 2012 at 09:04:51AM -0500, George McCollister wrote:
> gnome-screen saver fades out to black before activating.
> A bug in xorg-server prevents the fade out from being
> interrupted by moving the cursor.
> 
> Added patch 204_fix-neg-sync-transition.patch from:
> xorg-server_1.9.0-0ubuntu7.6.diff.gz
> 
> https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/595555
> https://bugzilla.redhat.com/show_bug.cgi?id=612620
> 
> There are been quite a lot of other fixes in the xorg-server 1.9
> branch. It would probably be a good idea update.
> http://cgit.freedesktop.org/xorg/xserver/log/?h=server-1.9-branch

I suppose we should update to 1.9.5 instead. Unfortunately I' rather busy
and Xorg is not a high priority for me. But patches are welcome :-).

Michael

> 
> Signed-off-by: George McCollister <[email protected]>
> ---
>  .../204_fix-neg-sync-transition.patch              |   84 
> ++++++++++++++++++++
>  patches/xorg-server-1.9.3/series                   |    1 +
>  2 files changed, 85 insertions(+), 0 deletions(-)
>  create mode 100644 
> patches/xorg-server-1.9.3/204_fix-neg-sync-transition.patch
> 
> diff --git a/patches/xorg-server-1.9.3/204_fix-neg-sync-transition.patch 
> b/patches/xorg-server-1.9.3/204_fix-neg-sync-transition.patch
> new file mode 100644
> index 0000000..f10fb32
> --- /dev/null
> +++ b/patches/xorg-server-1.9.3/204_fix-neg-sync-transition.patch
> @@ -0,0 +1,84 @@
> +commit da218289275e67e49d801d58dd818d237de8a9bc
> +Author: Christopher James Halse Rogers 
> <[email protected]>
> +Date:   Tue Aug 24 13:30:25 2010 +1000
> +
> +    Xext: Fix edge case with {Positive,Negative}Transition triggers.
> +    
> +    The {Positive,Negative}Transition triggers only fire when the counter
> +    goes from strictly {below,above} the threshold.  If
> +    SyncComputeBracketValues gets called exactly at this threshold we may 
> update
> +    the bracket values so that the counter is not updated past the threshold.
> +    
> +    Signed-off-by: Christopher James Halse Rogers 
> <[email protected]>
> +
> +diff --git a/Xext/sync.c b/Xext/sync.c
> +index a51262a..c00e692 100644
> +--- a/Xext/sync.c
> ++++ b/Xext/sync.c
> +@@ -959,6 +959,17 @@ SyncComputeBracketValues(SyncCounter *pCounter)
> +         {
> +             psci->bracket_less = pTrigger->test_value;
> +             pnewltval = &psci->bracket_less;
> ++        } else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
> ++                   XSyncValueLessThan(pTrigger->test_value,
> ++                                      psci->bracket_greater))
> ++        {
> ++            /*
> ++             * The value is exactly equal to our threshold.  We want one
> ++             * more event in the positive direction to ensure we pick up
> ++             * when the value *exceeds* this threshold.
> ++             */
> ++            psci->bracket_greater = pTrigger->test_value;
> ++            pnewgtval = &psci->bracket_greater;
> +         }
> +     }
> +         else if (pTrigger->test_type == XSyncPositiveTransition &&
> +@@ -969,6 +980,17 @@ SyncComputeBracketValues(SyncCounter *pCounter)
> +         {
> +             psci->bracket_greater = pTrigger->test_value;
> +             pnewgtval = &psci->bracket_greater;
> ++        } else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
> ++                   XSyncValueGreaterThan(pTrigger->test_value,
> ++                                         psci->bracket_less))
> ++        {
> ++            /*
> ++             * The value is exactly equal to our threshold.  We want one
> ++             * more event in the negative direction to ensure we pick up
> ++             * when the value is less than this threshold.
> ++             */
> ++            psci->bracket_less = pTrigger->test_value;
> ++            pnewltval = &psci->bracket_less;
> +         }
> +     }
> +     } /* end for each trigger */
> +commit d9e9c0c3cf0456f78b6eed3290e6a418e38963fb
> +Author: Christopher James Halse Rogers 
> <[email protected]>
> +Date:   Tue Aug 24 13:35:05 2010 +1000
> +
> +    IDLETIME: Fix edge-case in IdleTimeBlockHandler
> +    
> +    Ensure that if we're called exactly on the threshold of a
> +    NegativeTransition trigger that we reshedule to pick up
> +    an idle time over the threshold.
> +    
> +    Signed-off-by: Christopher James Halse Rogers 
> <[email protected]>
> +
> +diff --git a/Xext/sync.c b/Xext/sync.c
> +index c00e692..314b63e 100644
> +--- a/Xext/sync.c
> ++++ b/Xext/sync.c
> +@@ -2322,6 +2322,14 @@ IdleTimeBlockHandler(pointer env, struct timeval 
> **wt, pointer LastSelectMask)
> +             break;
> +         }
> +     }
> ++    /* 
> ++     * We've been called exactly on the idle time, but we have a
> ++     * NegativeTransition trigger which requires a transition from an
> ++     * idle time greater than this.  Schedule a wakeup for the next
> ++     * millisecond so we won't miss a transition.
> ++     */
> ++    if (XSyncValueEqual (idle, *pIdleTimeValueLess))
> ++        AdjustWaitForDelay(wt, 1);
> +     }
> +     else if (pIdleTimeValueGreater)
> +     {
> diff --git a/patches/xorg-server-1.9.3/series 
> b/patches/xorg-server-1.9.3/series
> index aa40d1d..2050ec2 100644
> --- a/patches/xorg-server-1.9.3/series
> +++ b/patches/xorg-server-1.9.3/series
> @@ -3,3 +3,4 @@ loader-when-creating-sdksyms.c-only-include-shmint.h.patch
>  remove_udev_if_disabled.diff
>  remove_dbus_if_disabled.diff
>  remove_hal_if_disabled.diff
> +204_fix-neg-sync-transition.patch
> -- 
> 1.7.8.4
> 
> 
> -- 
> ptxdist mailing list
> [email protected]
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
[email protected]

Reply via email to