lkml.org 
[lkml]   [2022]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 3/3] drm: omapdrm: Do no allocate non-scanout GEMs through DMM/TILER
From
Date
Hi Liu,

On 12.08.22 г. 7:35 ч., Yongqin Liu wrote:
> Hi, Ivaylo, Tomi
>
> We have one X15 Android AOSP master build, it could not have the home
> screen displayed
> on the hdmi monitor connected with this change, with the following
> message printed on the serial console
> [ 607.404205] omapdrm omapdrm.0: Failed to setup plane plane-0
> [ 607.410522] omapdrm omapdrm.0: Failed to setup plane plane-1
> [ 607.416381] omapdrm omapdrm.0: Failed to setup plane plane-2
> [ 607.422088] omapdrm omapdrm.0: Failed to setup plane plane-3
>
> # for details, please check the link here: http://ix.io/47m1
>
> It will work with home screen displayed on the hdmi monitor if this
> change is reverted.
>
> Is this the broken problem you talked about here?
>
> And could you please give some suggestions on how to have the x15
> Android build work with this change?
>

Make sure scanout (i.e. those to be displayed) buffers are actually
allocated as such - OMAP_BO_SCANOUT flag must be set when calling
omap_bo_new().

Regards,
Ivo.


> Thanks,
> Yongqin Liu
> On Thu, 17 Feb 2022 at 23:29, Ivaylo Dimitrov
> <ivo.g.dimitrov.75@gmail.com> wrote:
>>
>>
>>
>> On 17.02.22 г. 14:46 ч., Tomi Valkeinen wrote:
>>> Hi,
>>>
>>> On 19/01/2022 12:23, Ivaylo Dimitrov wrote:
>>>> On devices with DMM, all allocations are done through either DMM or
>>>> TILER.
>>>> DMM/TILER being a limited resource means that such allocations will start
>>>> to fail before actual free memory is exhausted. What is even worse is
>>>> that
>>>> with time DMM/TILER space gets fragmented to the point that even if we
>>>> have
>>>> enough free DMM/TILER space and free memory, allocation fails because
>>>> there
>>>> is no big enough free block in DMM/TILER space.
>>>>
>>>> Such failures can be easily observed with OMAP xorg DDX, for example -
>>>> starting few GUI applications (so buffers for their windows are
>>>> allocated)
>>>> and then rotating landscape<->portrait while closing and opening new
>>>> windows soon results in allocation failures.
>>>>
>>>> Fix that by mapping buffers through DMM/TILER only when really needed,
>>>> like, for scanout buffers.
>>>
>>> Doesn't this break users that get a buffer from omapdrm and expect it to
>>> be contiguous?
>>>
>>
>> If you mean dumb buffer, then no, this does not break users as dumb
>> buffers are allocated as scanout:
>>
>> https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/omapdrm/omap_gem.c#L603
>>
>> If you mean omap_bo allocated buffers, then if users want
>> linear(scanout) buffer, then they request it explicitly by passing
>> OMAP_BO_SCANOUT.
>>
>> Ivo
>
>
>

\
 
 \ /
  Last update: 2022-08-13 08:59    [W:4.206 / U:1.320 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site