Message ID | 20200306113927.16904-1-karthik.b.s@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Asynchronous flip implementation for i915 | expand |
Em sex, 2020-03-06 às 17:09 +0530, Karthik B S escreveu: > Without async flip support in the kernel, fullscreen apps where game > resolution is equal to the screen resolution, must perform an extra blit > per frame prior to flipping. > > Asynchronous page flips will also boost the FPS of Mesa benchmarks. Thanks a lot for doing this work! I did some quick smoke tests on a Gemini Lake and while this appears to be working fine with xf86-video-modesetting, the "pageflip.c" program I shared previously breaks when you launch it as "./pageflip -n": this argument makes the program *not* request for page flip events (by not setting DRM_MODE_PAGE_FLIP_EVENT) and just try to flip as fast as it can. I didn't investigate why this breaks, but it's probably some corner case the series is forgetting. Also, doesn't async pageflip interact with some other display features? Don't we need to disable at least one of FBC, PSR and/or render compression when using async page flips? Ville mentioned some possible interactions with SURF/OFFSET tracking too (framebuffers not being at the start of the bo), which doesn't seem to be covered by the series. Thanks, Paulo > > Karthik B S (7): > drm/i915: Define flip done functions and enable IER > drm/i915: Add support for async flips in I915 > drm/i915: Make commit call blocking in case of async flips > drm/i915: Add checks specific to async flips > drm/i915: Add flip_done_handler definition > drm/i915: Enable and handle flip done interrupt > drm/i915: Do not call drm_crtc_arm_vblank_event in async flips > > drivers/gpu/drm/i915/display/intel_display.c | 55 +++++++++++++++++-- > drivers/gpu/drm/i915/display/intel_sprite.c | 12 ++-- > drivers/gpu/drm/i915/i915_irq.c | 58 +++++++++++++++++++- > drivers/gpu/drm/i915/i915_irq.h | 2 + > drivers/gpu/drm/i915/i915_reg.h | 1 + > 5 files changed, 117 insertions(+), 11 deletions(-) >
> -----Original Message----- > From: Zanoni, Paulo R <paulo.r.zanoni@intel.com> > Sent: Tuesday, March 10, 2020 5:35 AM > To: B S, Karthik <karthik.b.s@intel.com>; intel-gfx@lists.freedesktop.org > Cc: ville.syrjala@linux.intel.com; Kulkarni, Vandita > <vandita.kulkarni@intel.com>; Shankar, Uma <uma.shankar@intel.com> > Subject: Re: [RFC 0/7] Asynchronous flip implementation for i915 > > Em sex, 2020-03-06 às 17:09 +0530, Karthik B S escreveu: > > Without async flip support in the kernel, fullscreen apps where game > > resolution is equal to the screen resolution, must perform an extra > > blit per frame prior to flipping. > > > > Asynchronous page flips will also boost the FPS of Mesa benchmarks. > > > Thanks a lot for doing this work! Thanks a lot for the review. > > I did some quick smoke tests on a Gemini Lake and while this appears to be > working fine with xf86-video-modesetting, the "pageflip.c" program I shared > previously breaks when you launch it as "./pageflip -n": this argument makes > the program *not* request for page flip events (by not setting > DRM_MODE_PAGE_FLIP_EVENT) and just try to flip as fast as it can. I didn't > investigate why this breaks, but it's probably some corner case the series is > forgetting. I hadn't tried out this option. Thanks for pointing this out. Will fix this in the next revision. > > Also, doesn't async pageflip interact with some other display features? > Don't we need to disable at least one of FBC, PSR and/or render compression > when using async page flips? > > Ville mentioned some possible interactions with SURF/OFFSET tracking too > (framebuffers not being at the start of the bo), which doesn't seem to be > covered by the series. > Yes, both the above hasn't been taken care of in this series. Thanks for pointing it out. Will check it and update in the next revision. Thanks, Karthik > Thanks, > Paulo > > > > > Karthik B S (7): > > drm/i915: Define flip done functions and enable IER > > drm/i915: Add support for async flips in I915 > > drm/i915: Make commit call blocking in case of async flips > > drm/i915: Add checks specific to async flips > > drm/i915: Add flip_done_handler definition > > drm/i915: Enable and handle flip done interrupt > > drm/i915: Do not call drm_crtc_arm_vblank_event in async flips > > > > drivers/gpu/drm/i915/display/intel_display.c | 55 +++++++++++++++++-- > > drivers/gpu/drm/i915/display/intel_sprite.c | 12 ++-- > > drivers/gpu/drm/i915/i915_irq.c | 58 +++++++++++++++++++- > > drivers/gpu/drm/i915/i915_irq.h | 2 + > > drivers/gpu/drm/i915/i915_reg.h | 1 + > > 5 files changed, 117 insertions(+), 11 deletions(-) > >