On Mon, Sep 21, 2020 at 04:32:02PM +0530, Karthik B S wrote: > 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. > > v2: -Few patches have been squashed and patches have been shuffled as > per the reviews on the previous version. > > v3: -Few patches have been squashed and patches have been shuffled as > per the reviews on the previous version. > > v4: -Made changes to fix the sequence and time stamp issue as per the > comments received on the previous version. > -Timestamps are calculated using the flip done time stamp and current > timestamp. Here I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP flag is used > for timestamp calculations. > -Event is sent from the interrupt handler immediately using this > updated timestamps and sequence. > -Added more state checks as async flip should only allow change in plane > surface address and nothing else should be allowed to change. > -Added a separate plane hook for async flip. > -Need to find a way to reject fbc enabling if it comes as part of this > flip as bspec states that changes to FBC are not allowed. > > v5: -Fixed the Checkpatch and sparse warnings. > > v6: -Reverted back to the old timestamping code as per the feedback received. > -Added documentation. > > v7: -Changes in intel_atomic_check_async() > -Add vfunc for skl_program_async_surface_address() > > v8: -Add WA for older platforms with double buffered > async address update enable bit. > > v9: -Changes as per feedback received on previous version. > > v10: -Changes as per feedback received on previous version. Everything seems good, so pushed the series to dinq. Thanks. Gave this a little test run on my cfl as well. At first it didn't kick in, but then I remebered that I'm running X with modifiers enabled so I was getting compression instead. After disabling modifiers I got plain old X-tile again and did see async flips happening. > > Karthik B S (8): > drm/i915: Add enable/disable flip done and flip done handler > drm/i915: Add support for async flips in I915 > drm/i915: Add checks specific to async flips > drm/i915: Do not call drm_crtc_arm_vblank_event in async flips > drm/i915: Add dedicated plane hook for async flip case > drm/i915: WA for platforms with double buffered address update enable > bit > Documentation/gpu: Add asynchronous flip documentation for i915 > drm/i915: Enable async flips in i915 > > Documentation/gpu/i915.rst | 6 + > .../gpu/drm/i915/display/intel_atomic_plane.c | 6 +- > drivers/gpu/drm/i915/display/intel_display.c | 199 ++++++++++++++++++ > .../drm/i915/display/intel_display_types.h | 3 + > drivers/gpu/drm/i915/display/intel_sprite.c | 30 +++ > drivers/gpu/drm/i915/i915_irq.c | 52 +++++ > drivers/gpu/drm/i915/i915_irq.h | 3 + > drivers/gpu/drm/i915/i915_reg.h | 1 + > 8 files changed, 299 insertions(+), 1 deletion(-) > > -- > 2.22.0 -- Ville Syrjälä Intel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel