Re: [PATCH] drm/amd/display: Create plane rotation property

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 9/12/19 10:32 AM, Pierre-Loup A. Griffais wrote:
On 9/12/19 10:22 AM, Harry Wentland wrote:
On 2019-09-12 1:01 p.m., Kazlauskas, Nicholas wrote:
On 2019-09-12 12:44 p.m., Pierre-Loup A. Griffais wrote:
It's otherwise properly supported, just needs exposing to userspace.

Signed-off-by: Pierre-Loup A. Griffais <pgriffais@xxxxxxxxxxxxxxxxx>
I know IGT has some tests for plane rotation, do you happen to know what
tests pass or fail when exposing this?

I think DCN1 (Raven) should work as expected but I'd be concerned about
DCE or DCN2. I think we have had some cursor bugs in the past with
cursor rotation but they might only be exposed when used in conjunction
with overlay planes.


Windows guys had a fix (in DC) for cursor with HW rotation on DCN a few
weeks ago. That might have fixed these issues.

We should still make sure we can pass IGT tests that do rotation.

How did you test? Weston?

I've tested it with a patched kmscube to add the rotation property in the atomic path. 90, 180 and 270 all seem happy on Raven with that setup. I've not tested any other chip at this point.

If there's more testing you'd like me to do, would anyone point me in the right direction? I'm new to all this, sorry.

Thanks,
 - Pierre-Loup



Harry

I'd just like to make sure there's suitable testing at least if we're
going to expose this to userspace.

Nicholas Kazlauskas

---
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++++++++
   1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 45be7a2132bb..3772763c6449 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4680,6 +4680,7 @@ static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
       uint32_t formats[32];
       int num_formats;
       int res = -EPERM;
+    unsigned int supported_rotations;
       num_formats = get_plane_formats(plane, plane_cap, formats,
                       ARRAY_SIZE(formats));
@@ -4711,6 +4712,13 @@ static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
               DRM_COLOR_YCBCR_BT709, DRM_COLOR_YCBCR_LIMITED_RANGE);
       }
+    supported_rotations =
+        DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
+        DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
+
+    drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0,
+                       supported_rotations);
+
       drm_plane_helper_add(plane, &dm_plane_helper_funcs);
       /* Create (reset) the plane state */



_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux