[Intel-gfx] [RFC 0/7] Asynchronous flip implementation for i915
Paulo Zanoni
paulo.r.zanoni at intel.com
Tue Mar 10 00:04:36 UTC 2020
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(-)
>
More information about the Intel-gfx
mailing list