[PATCH v4 13/13] drm/i915: Implement dedicated fbdev I/O helpers
Sam Ravnborg
sam at ravnborg.org
Tue May 30 15:37:57 UTC 2023
Hi Thomas,
> > > - if (helper->funcs->fb_dirty) {
> > > - drm_fb_helper_memory_range_to_clip(info, pos, ret, &damage_area);
> > > - drm_fb_helper_damage(helper, damage_area.x1, damage_area.y1,
> > > - drm_rect_width(&damage_area),
> > > - drm_rect_height(&damage_area));
> > > - }
> >
> > The generated helpers do not have the if (helper->funcs->fb_dirty)
> > check.
> > Is this implemented somewhere else that I missed?
>
> It's not needed any longer. We used to test if the fbdev code needs damage
> handling by looking for a fb_dirty callback. If so, we ran the damage
> handling code.
>
> With the patchset applied, the fbdev code that does not need damage handling
> calls fb_{io,sys}_write() directly. The fbdev code that needs damage
> handling (generic, i915, msm) uses the generator macro that creates
> necessary the calls unconditionally. We know each case at build time.
>
> (I think I have to move the msm patch after patch 10/13 to make it
> bisectable.)
>
> AFAICT the missing test for fb_dirty is also one of the reasons why there's
> a difference in performance.
>
> Hopefully, this answers your question?
Makes perfect sense - thanks.
That also implies that my conditional r-b's are now OK.
Sam
More information about the amd-gfx
mailing list