On 11.12.2018 00:45, Inki Dae wrote:
> Hi Andrzej,
>
> 18. 12. 10. 오후 4:35에 Andrzej Hajda 이(가) 쓴 글:
>> Hi Inki,
>>
>> On 10.12.2018 03:25, Inki Dae wrote:
>>> Hi Andrzej,
>>>
>>> 18. 12. 6. 오후 6:38에 Andrzej Hajda 이(가) 쓴 글:
>>>> Hi Inki,
>>>>
>>>> This small patchset adds dynamic zpos support for DECON and FIMD.
>>> This patch will allow user space to change zpos. However, DECON and FIMD 
>>> devices have fixed priority of HW overlays.
>>> This would mean that zpos change by user space doesn't guarantee correct HW 
>>> overlay priority.
>>>
>>> Why do you want to support mutable zpos?
>>
>> Practically you have patches which proves it works, you can see that
>> changing zpos value results in adequate change in displayed image.
>>
>> Conceptually it is just a matter of disconnecting hardware windows
>> present in DECON and FIMD from DRM planes which are software entities.
>>
>> You can reason about it this way:
>>
>> - drm plane is a framebuffer plus informations how it should be
>> transformed/displayed on DECON/FIMD,
>>
>> - hw window in DECON/FIMD is just a channel through which plane is send
>> to the display.
>>
>> DECON and FIMD has fixed hw windows order - windows with lower numbers
>> are displayed below windows with higher number. To display planes in
>> given z-order you just need to send them via windows with appropriate
>> index - farthest plane should go always via win0, closer one via win1,
>> ..., till the last plane.
>>
>> So for example if you have three planes and want to display them in
>> following order (first one farthest, last one closest):
>>
>> plane2, plane1, plane3
>>
>> you should map them to planes as follow:
>>
>> plane2 -> win0, plane1 -> win1, plane3 -> win2
>>
>> then for example plane2 is disabled, we will have following mapping:
>>
>> plane1 -> win0, plane3 -> win1, win2 - disabled
> Plane1 is displayed below Plane3.


And this is what we wanted, the initial order was: plane2, plane1,
plane3, first farthest (or lowest if you prefer this naming schema).


>
>> then if you change zorder of planes to: plane3, plane1:
>>
>> plane3 -> win0, plane1 -> win1
> Plane3 is displayed below Plane1 because DECON/FIMD HW aren't able to change 
> HW overlay priroty.


No, plane3 is displayed below plane1 because we sent it via win0, if we
want inverse we can send plane3 via win1 and plane1 via win0.


> However, user space wanted that Plane1 is displayed below Plane3. Like this, 
> zpos change by user space doesn't guarantee correct HW overlay priority.


As I said before in this example userspace wanted plane3 below plane1,
and as I wrote in comment above any order of planes user want driver is
able to realize with this patch.


> And there is no any reason to change zpos in user space excepting Mixer 
> device which supports HW overlay priority change.


Lack of special registry for manipulating windows order does not mean it
cannot support dynamic zpos.


> In fact, we supported mutable zpos before but changed it to immutable with 
> same reason.


It was just broken if I remember correctly.


>
> Lastly, your patch made real user broken.


Who? How?


Regards

Andrzej


>
> Thanks,
> Inki Dae
>
>>
>> As you see there is no relation between plane number and window number,
>> but window number is equal to plane's position in zpos-ordered list of
>> planes and this is exact value of normalized_zpos field in drm_plane_state.
>>
>>
>> I hope this extended explanation will clarify things.
>>
>>
>> Regards
>>
>> Andrzej
>>
>>
>>
>>> Thanks,
>>> Inki Dae
>>>
>>>> It was tested on tm2 and trats2.
>>>>
>>>> Regards
>>>> Andrzej
>>>>
>>>>
>>>> Andrzej Hajda (3):
>>>>   drm/exynos/decon5433: add dynamic zpos support
>>>>   drm/exynos/fimd: create local helper for disabling hardware window
>>>>   drm/exynos/fimd: add dynamic zpos support
>>>>
>>>>  drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 23 +++++-----
>>>>  drivers/gpu/drm/exynos/exynos_drm_fimd.c      | 42 ++++++++-----------
>>>>  2 files changed, 29 insertions(+), 36 deletions(-)
>>>>
>>
>>
>

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to