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

2020-07-21 Thread Pierre-Loup A. Griffais
It's otherwise properly supported, just needs exposing to userspace.

Signed-off-by: Pierre-Loup A. Griffais 
---
 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 a52f0b13a2c8..b7bef398057e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4713,6 +4713,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));
@@ -4744,6 +4745,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, _plane_helper_funcs);
 
/* Create (reset) the plane state */
-- 
2.17.1

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


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

2020-07-21 Thread Alex Deucher
On Tue, Jul 21, 2020 at 5:19 PM Pierre-Loup A. Griffais
 wrote:
>
> It's otherwise properly supported, just needs exposing to userspace.
>
> Signed-off-by: Pierre-Loup A. Griffais 

Already applied:
https://cgit.freedesktop.org/~agd5f/linux/commit/?h=drm-next-5.9=ecc874a6e7cb398b363b4e078fca4c097cb286ab

Thanks,

Alex

> ---
>  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 a52f0b13a2c8..b7bef398057e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4713,6 +4713,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));
> @@ -4744,6 +4745,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, _plane_helper_funcs);
>
> /* Create (reset) the plane state */
> --
> 2.17.1
>
> ___
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


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

2019-09-18 Thread Kazlauskas, Nicholas
On 2019-09-17 6:53 p.m., Pierre-Loup A. Griffais wrote:
> 
> 
> 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 
 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.

I'd be mostly interested in getting IGT tests going for our CI so we 
have regular automated testing on the feature. The "kms_rotation_crc" test:

https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/tests/kms_rotation_crc.c

...looks like the correct test for this property but it seems like the 
test would need to be modified to use DRIVER_ANY instead of DRIVER_INTEL 
for drm_open_driver_master.

It probably needs a few "is_i915_device(...)" checks placed before 
"intel_gen(...") checks as well since we don't support i915 tiling 
modifiers nor Intel generation checks. With those modifications I'd 
imagine it'd probably run as expected but I haven't had the chance to 
try it out.

Nicholas Kazlauskas


> 
> 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, _plane_helper_funcs);
>    /* Create (reset) the plane state */
>

>>
>> ___
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> 
> ___
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

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

2019-09-17 Thread Pierre-Loup A. Griffais



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 

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, _plane_helper_funcs);
   /* Create (reset) the plane state */





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


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

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

2019-09-12 Thread Pierre-Loup A. Griffais

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 

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.




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, _plane_helper_funcs);
   
   	/* Create (reset) the plane state */






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

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

2019-09-12 Thread Harry Wentland
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 
> 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?

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, _plane_helper_funcs);
>>   
>>  /* Create (reset) the plane state */
>>
> 
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

2019-09-12 Thread Kazlauskas, Nicholas
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 
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.

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, _plane_helper_funcs);
>   
>   /* Create (reset) the plane state */
> 

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

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

2019-09-12 Thread Pierre-Loup A. Griffais
It's otherwise properly supported, just needs exposing to userspace.

Signed-off-by: Pierre-Loup A. Griffais 
---
 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, _plane_helper_funcs);
 
/* Create (reset) the plane state */
-- 
2.17.1

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