drm/vkms: add reflect-y and rotate-180 property
authorMaíra Canal <mcanal@igalia.com>
Tue, 18 Apr 2023 13:05:23 +0000 (10:05 -0300)
committerMaíra Canal <mairacanal@riseup.net>
Mon, 8 May 2023 12:46:13 +0000 (09:46 -0300)
commit1ce76fae2bc14dd776b0c237456d8bd117c0e617
treee149b1e5dafc3705f654012187eaeda42635c5fc
parent4a9820343579f65635500d9f9b268ec6d07496e0
drm/vkms: add reflect-y and rotate-180 property

Currently, vkms only supports the reflect-x property. Therefore, add the
reflect-y property to vkms through a software implementation of the
operation. This is possible by reverse reading the y axis during the
blending.

Note that, by implementing the reflect-x and reflect-y properties, it is
also possible to add the rotate-180 property, as it is a combination
of those two properties.

Tested with igt@kms_rotation_crc@primary-reflect-y [1],
igt@kms_rotation_crc@sprite-reflect-y [1],
igt@kms_rotation_crc@primary-rotation-180,
igt@kms_rotation_crc@sprite-rotation-180,
and igt@kms_rotation_crc@cursor-rotation-180.

[1] https://patchwork.freedesktop.org/series/116025/

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Maíra Canal <mairacanal@riseup.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20230418130525.128733-4-mcanal@igalia.com
drivers/gpu/drm/vkms/vkms_composer.c
drivers/gpu/drm/vkms/vkms_plane.c