[PATCH v10 0/8] Asynchronous flip implementation for i915
Karthik B S
karthik.b.s at intel.com
Tue Sep 29 09:46:10 UTC 2020
On 9/28/2020 5:48 PM, Ville Syrjälä wrote:
> 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.
>
Thanks for the merge.
Thanks,
Karthik.B.S
>>
>> 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
>
More information about the dri-devel
mailing list