]> git.ipfire.org Git - thirdparty/linux.git/commit
drm/i915/display: update and store the plane damage clips
authorVinod Govindapillai <vinod.govindapillai@intel.com>
Fri, 28 Feb 2025 09:37:56 +0000 (11:37 +0200)
committerMika Kahola <mika.kahola@intel.com>
Mon, 3 Mar 2025 12:45:41 +0000 (14:45 +0200)
commit6f60de67d7e4ae0f6c7aebcb9b62d89fed7233a4
treee5e024cf1c04449a026db5a0bed50303cd3694f2
parent9a112dd8c17fa6397785f2227dfe4f6f175ed524
drm/i915/display: update and store the plane damage clips

Userspace can pass damage area clips per plane to track
changes in a plane and some display components can utilze
these damage clips for efficiently handling use cases like
FBC, PSR etc. A merged damage area is generated and its
coordinates are updated relative to viewport and HW and
stored in the plane_state. This merged damage areas will be
used for FBC dirty rect support in xe3 in the follow-up
patch.

Big thanks to Ville Syrjala for his contribuitions in shaping
up of this series.

v1: - Move damage_merged helper to cover bigjoiner case and use
    the correct plane state for damage find helper (Ville)
    - Damage handling code under HAS_FBC_DIRTY_RECT() so the
    the related part will be executed only for xe3+
    - Changed dev_priv to i915 in one of the functions

v2: - damage reported is stored in the plane state after coords
      adjustmentments irrespective of fbc dirty rect support.
    - Damage to be empty in case of plane not visible (Ville)
    - Handle fb could be NULL and plane not visible cases (Ville)

v3: - No need to empty damage in case disp ver < 12 (Ville)
    - update to the patch subject

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250228093802.27091-4-vinod.govindapillai@intel.com
drivers/gpu/drm/i915/display/intel_atomic_plane.c
drivers/gpu/drm/i915/display/intel_display_types.h
drivers/gpu/drm/i915/display/skl_universal_plane.c