[PATCH xserver] xfree86/modes: Use RRTransformEqual in xf86RandR12CrtcSet

Michel Dänzer michel at daenzer.net
Mon Jun 19 08:57:45 UTC 2017


On 16/06/17 03:25 PM, Aaron Plattner wrote:
> On 06/15/2017 07:31 PM, Michel Dänzer wrote:
>> From: Michel Dänzer <michel.daenzer at amd.com>
>>
>> The memcmp didn't catch when e.g. only the filter changed. Tested by
>> alternately running
>>
>> xrandr --output DVI-I-0 --scale-from 3840x2160 --filter bilinear
>> xrandr --output DVI-I-0 --scale-from 3840x2160 --filter nearest
>>
>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>> ---
>>   hw/xfree86/modes/xf86RandR12.c | 3 +--
>>   1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/hw/xfree86/modes/xf86RandR12.c
>> b/hw/xfree86/modes/xf86RandR12.c
>> index 55d88e331..fe8770d61 100644
>> --- a/hw/xfree86/modes/xf86RandR12.c
>> +++ b/hw/xfree86/modes/xf86RandR12.c
>> @@ -1170,8 +1170,7 @@ xf86RandR12CrtcSet(ScreenPtr pScreen,
>>       if ((transform != NULL) != crtc->transformPresent)
>>           changed = TRUE;
>>       else if (transform &&
> 
> RRTransformEqual treats NULL transform pointers as the identity, so I
> think you can just drop the transform && check here.

Thanks for the suggestion. Unfortunately, AFAICT
xf86CrtcSetModeTransform doesn't reset crtc->transform to the identity
when crtc->transformPresent = FALSE, so skipping the transform && would
lead to false positives in that case and transform == NULL.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer



More information about the xorg-devel mailing list