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

Aaron Plattner aplattner at nvidia.com
Fri Jun 16 06:25:33 UTC 2017


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.

> -             memcmp(&transform->transform, &crtc->transform.transform,
> -                    sizeof(transform->transform)) != 0)
> +             !RRTransformEqual(transform, &crtc->transform))
>           changed = TRUE;
>   
>       if (x != crtc->x || y != crtc->y)
> 

-- 
nvpublic


More information about the xorg-devel mailing list