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>
This commit is contained in:
parent
a3e50b0574
commit
db568f9eab
34
Xext/sync.c
34
Xext/sync.c
|
@ -962,28 +962,24 @@ SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver)
|
||||||
pnewltval = &psci->bracket_less;
|
pnewltval = &psci->bracket_less;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( (pTrigger->test_type == XSyncPositiveTransition &&
|
else if (pTrigger->test_type == XSyncNegativeTransition &&
|
||||||
ct != XSyncCounterNeverIncreases)
|
ct != XSyncCounterNeverIncreases)
|
||||||
||
|
|
||||||
(pTrigger->test_type == XSyncNegativeTransition &&
|
|
||||||
ct != XSyncCounterNeverDecreases)
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
if (XSyncValueLessThan(pCounter->value, pTrigger->test_value))
|
if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
|
||||||
|
XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less))
|
||||||
{
|
{
|
||||||
if (XSyncValueLessThan(pTrigger->test_value,
|
psci->bracket_less = pTrigger->test_value;
|
||||||
psci->bracket_greater))
|
pnewltval = &psci->bracket_less;
|
||||||
{
|
}
|
||||||
psci->bracket_greater = pTrigger->test_value;
|
}
|
||||||
pnewgtval = &psci->bracket_greater;
|
else if (pTrigger->test_type == XSyncPositiveTransition &&
|
||||||
}
|
ct != XSyncCounterNeverDecreases)
|
||||||
else
|
{
|
||||||
if (XSyncValueGreaterThan(pTrigger->test_value,
|
if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
|
||||||
psci->bracket_less))
|
XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater))
|
||||||
{
|
{
|
||||||
psci->bracket_less = pTrigger->test_value;
|
psci->bracket_greater = pTrigger->test_value;
|
||||||
pnewltval = &psci->bracket_less;
|
pnewgtval = &psci->bracket_greater;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} /* end for each trigger */
|
} /* end for each trigger */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user