mbox series

[00/15] drm/i915/gen11: Implement planar format support.

Message ID 20180919135644.14182-1-maarten.lankhorst@linux.intel.com (mailing list archive)
Headers show
Series drm/i915/gen11: Implement planar format support. | expand

Message

Maarten Lankhorst Sept. 19, 2018, 1:56 p.m. UTC
Gen11 has to program 2 planes to enable planar formats. One scans out
the Y plane, the other the UV plane.

The UV plane is the plane that matters for Z-order and performs color
correction etc. The Y plane is always sprite 4 or 5, and only feeds Y
pixels directly to the chroma upsampler on the UV plane, which will
convert it to YUV444 that will be processed further without scaler.
If there's no chroma upsampler on a plane, it will be done by a scaler,
which needs to know the Y plane to take pixels from.

Maarten Lankhorst (15):
  drm/i915: Clean up casts to crtc_state in intel_atomic_commit_tail()
  drm/i915: Handle cursor updating active_planes correctly.
  drm/i915: Make intel_crtc_disable_planes() use active planes mask.
  drm/i915: Replace call to commit_planes_on_crtc with internal update,
    v2.
  drm/i915: Clean up scaler setup.
  drm/i915: Force NV12 coordinates to be a multiple of 2
  drm/i915: Unconditionally clear plane_state->visible flag
  drm/i915/gen11: Enable 6 sprites on gen11
  drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v2.
  drm/i915/gen11: Handle watermarks correctly for separate Y/UV planes.
  drm/i915: Move programming plane scaler to its own function.
  drm/i915/gen11: Program the scalers correctly for planar formats.
  drm/i915/gen11: Program the chroma upsampler for HDR planes.
  drm/i915/gen11: Program the Y and UV plane for planar mode correctly.
  drm/i915/gen11: Expose planar format support on gen11.

 drivers/gpu/drm/i915/i915_reg.h           |  32 +++-
 drivers/gpu/drm/i915/intel_atomic.c       | 112 +++++++-----
 drivers/gpu/drm/i915/intel_atomic_plane.c | 155 ++++++++++++-----
 drivers/gpu/drm/i915/intel_device_info.c  |   5 +-
 drivers/gpu/drm/i915/intel_display.c      | 200 ++++++++++++++++------
 drivers/gpu/drm/i915/intel_display.h      |   3 +
 drivers/gpu/drm/i915/intel_drv.h          |  65 +++++++
 drivers/gpu/drm/i915/intel_pm.c           | 134 +++++++++------
 drivers/gpu/drm/i915/intel_sprite.c       | 161 +++++++++++------
 9 files changed, 618 insertions(+), 249 deletions(-)