On Thu, Feb 4, 2021, 17:20 Daniel Vetter <dan...@ffwll.ch> wrote: > On Wed, Feb 03, 2021 at 09:53:40PM +0200, Toni Spets wrote: > > The blocking implementation of the dirtyfb ioctl is extremely slow when > > used for damage tracking on RK3399. If this implementation is in place > Xorg > > will default to using it and will slow down considerably when doing a lot > > of small draws. This is most apparent with the fvwm window manager on > > startup where it will almost lock up for many seconds seconds on RK3399. > > > > Removing this implementation did not cause any visible issues on RK3399 > but > > it did fix the performance issues on Xorg as it will disable damage > > tracking when the ioctl returns it's not supported. > > Then you don't have a manual update panel. > > Iirc there were patches to make this faster in recent kernels, on what > kernels did you try this? >
Latest was 5.10.12. If there are fixes for this in later kernels I will definitely try it out. > Also X should only call this in the blocker handler, not all the time. > It does but fvwm is an example that forces it to be called a lot and it's slow enough to cause significant issues. > So yeah we need to make this faster, not break manual update panels. > Pardon my ignorance but while making this operation faster will indeed make it better wouldn't the correct behavior be to know if a panel requires this or not? Making a low performance device wait any extra time for no reason doesn't sound like the correct fix either. I'm not defending the patch itself as I don't have enough understanding of the drm or kernel so if it's indeed definitely breaking something then of course it can't be used as is. Thanks. -Daniel > > > > > -- > > Toni Spets > > > From 79984ee67c801f552e9eaf4d0cfb62101d1f0f2e Mon Sep 17 00:00:00 2001 > > From: Toni Spets <toni.sp...@iki.fi> > > Date: Wed, 3 Feb 2021 21:14:50 +0200 > > Subject: [PATCH] drm/rockchip: remove atomic helper dirtyfb > > > > --- > > drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > > index 3aa37e177667..2554fd1c8aeb 100644 > > --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > > @@ -21,7 +21,6 @@ > > static const struct drm_framebuffer_funcs rockchip_drm_fb_funcs = { > > .destroy = drm_gem_fb_destroy, > > .create_handle = drm_gem_fb_create_handle, > > - .dirty = drm_atomic_helper_dirtyfb, > > }; > > > > static struct drm_framebuffer * > > -- > > 2.27.0 > > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch >
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel