On Fri, Jan 12, 2018 at 11:38:03AM +0200, Peter Ujfalusi wrote: > Hi, > > The first patch is adding a flag to drm_device that drivers can set if they want > the zpos to be normalized. If we go with the flag it should imo be put into struct drm_mode_config. > Then convert exynos, tegra, sti and rcar-du to use this flag instead of > re-implementing the drm_atomic_helper_check() locally just to add the call to > drm_atomic_normalize_zpos(). > > The last patch is moving omapdrm to use the zpos normalization as well to comply > with the UAPI documentation regarding to zpos. > > Laurent's note in an earlier thread: > https://marc.info/?l=dri-devel&m=151567355225029&w=2 > > "The problem is that zpos normalization requires accessing the state of all > enabled planes for a CRTC in order to compute (and store) the normalized zpos > values. This thus forces all planes to be added to the commit state, even when > the commit doesn't touch the zpos property. I assume this caused issues > (possibly performance issues) in drivers that then performed hardware setup of > all planes as a result." I've dug some more and per Ville the issue seems to have been cursor updates starting to block. Gustavo Padovan has created patches to handle async cursor plane updates like the cursor much better, in a side-path, which would resolve this. Once that has landed we wouldn't need to make the zpos normalization optional anymore. See Ville's original removal of all this. Can you pls add a comment to the atomic_check function to that effect. With those two things addressed the series is: Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > > can be addressed later in the core for all users of drm_atomic_normalize_zpos() > > Regards, > Peter > --- > Peter Ujfalusi (6): > drm: Add drm_device->normalize_zpos boolean > drm/exynos: Let core take care of normalizing the zpos > drm/tegra: Let core take care of normalizing the zpos > drm/sti: Let core take care of normalizing the zpos > drm: rcar-du: Let core take care of normalizing the zpos > drm/omap: Use normalized zpos for plane placement > > drivers/gpu/drm/drm_atomic_helper.c | 6 ++++++ > drivers/gpu/drm/exynos/exynos_drm_drv.c | 21 +-------------------- > drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 - > drivers/gpu/drm/exynos/exynos_drm_fb.c | 2 +- > drivers/gpu/drm/omapdrm/omap_drv.c | 1 + > drivers/gpu/drm/omapdrm/omap_plane.c | 2 +- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 1 + > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 10 +--------- > drivers/gpu/drm/sti/sti_drv.c | 23 ++--------------------- > drivers/gpu/drm/tegra/drm.c | 27 +++------------------------ > include/drm/drm_device.h | 8 ++++++++ > 11 files changed, 25 insertions(+), 77 deletions(-) > > -- > Peter > > Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. > Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel