[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