Messages in this thread | | | Subject | Re: [PATCH 3/3] drm: omapdrm: Do no allocate non-scanout GEMs through DMM/TILER | From | Ivaylo Dimitrov <> | Date | Sat, 13 Aug 2022 09:58:54 +0300 |
| |
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 > > >
| |