* [ptxdist] [PATCH] xorg-server: fix neg sync transition
@ 2012-04-03 14:04 George McCollister
2012-04-04 6:29 ` Michael Olbrich
0 siblings, 1 reply; 3+ messages in thread
From: George McCollister @ 2012-04-03 14:04 UTC (permalink / raw)
To: ptxdist
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
Signed-off-by: George McCollister <george.mccollister@gmail.com>
---
.../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 <christopher.halse.rogers@canonical.com>
+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 <christopher.halse.rogers@canonical.com>
+
+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 <christopher.halse.rogers@canonical.com>
+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 <christopher.halse.rogers@canonical.com>
+
+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
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ptxdist] [PATCH] xorg-server: fix neg sync transition
2012-04-03 14:04 [ptxdist] [PATCH] xorg-server: fix neg sync transition George McCollister
@ 2012-04-04 6:29 ` Michael Olbrich
2012-04-04 12:56 ` George McCollister
0 siblings, 1 reply; 3+ messages in thread
From: Michael Olbrich @ 2012-04-04 6:29 UTC (permalink / raw)
To: ptxdist
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 <george.mccollister@gmail.com>
> ---
> .../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 <christopher.halse.rogers@canonical.com>
> +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 <christopher.halse.rogers@canonical.com>
> +
> +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 <christopher.halse.rogers@canonical.com>
> +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 <christopher.halse.rogers@canonical.com>
> +
> +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
> ptxdist@pengutronix.de
>
--
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
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ptxdist] [PATCH] xorg-server: fix neg sync transition
2012-04-04 6:29 ` Michael Olbrich
@ 2012-04-04 12:56 ` George McCollister
0 siblings, 0 replies; 3+ messages in thread
From: George McCollister @ 2012-04-04 12:56 UTC (permalink / raw)
To: ptxdist
On 04/04/2012 01:29 AM, Michael Olbrich wrote:
> 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:-).
I'm quite busy at the moment as well, in fact this patch is a hot fix to
a product which just began shipments last Friday. I'll try to post a
patch to update to 1.9.5, but I don't want to rush it and introduce
problems/regressions so it could be a little while.
Cheers,
George
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-04-04 12:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-03 14:04 [ptxdist] [PATCH] xorg-server: fix neg sync transition George McCollister
2012-04-04 6:29 ` Michael Olbrich
2012-04-04 12:56 ` George McCollister
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox