[v9,00/13] Add HDR Metadata Parsing and handling in DRM layer
mbox series

Message ID 1557340733-9629-1-git-send-email-uma.shankar@intel.com
Headers show
Series
  • Add HDR Metadata Parsing and handling in DRM layer
Related show

Message

Shankar, Uma May 8, 2019, 6:38 p.m. UTC
This patch series enables HDR support in drm. It basically defines
HDR metadata structures, property to pass content (after blending)
metadata from user space compositors to driver.

Dynamic Range and Mastering infoframe creation and sending.

ToDo:
1. We need to get the color framework in place for all planes
   which support HDR content in hardware. This is already in progres
   and patches are out for review in mailing list.
2. UserSpace/Compositors: Blending policies and metadata blob
   creation and passing to driver. Work is already in progress
   by Intel's middleware teams on wayland and the patches for
   the same are in review.

A POC has already been developed by Ville based on wayland. Please refer
below link to see the component interactions and usage:
https://lists.freedesktop.org/archives/wayland-devel/2017-December/036403.html

v2: Updated Ville's POC changes to the patch series.Incorporated cleanups
and fixes from Ville. Rebase on latest drm-tip.

v3: Fixed a warning causing builds to break on CI. No major change.

v4: Addressed Shashank's review comments.

v5: Rebase on top of Ville's infoframe refactoring changes. Fixed non modeset
case for HDR metadata update. Dropped a redundant patch.

v6: Addressed Shashank's review comments and added RB's received.

v7: Squashed 2 patches, dropped 1 change and addressed Brian Starkey's and
Shashank's review comments.

v8: Addressed Jonas Karlman review comments. Added Shashank's RB to the series,
fixed a WARN_ON on BYT/CHT.

v9: Addressed Ville and Jonas Karlman's review comments. Added the infoframe
state readout and metadata reference count.

Note: This is already tested with Kodi and a confirmation from team kodi has been
received. Branch details for the same as below:
https://github.com/xbmc/xbmc/tree/feature_drmprime-vaapi

Jonas Karlman (1):
  drm: Add reference counting on HDR metadata blob

Uma Shankar (10):
  drm: Add HDR source metadata property
  drm: Parse HDR metadata info from EDID
  drm: Enable HDR infoframe support
  drm/i915: Attach HDR metadata property to connector
  drm/i915: Write HDR infoframe and send to panel
  drm/i915:Enabled Modeset when HDR Infoframe changes
  drm/i915: Set Infoframe for non modeset case for HDR
  drm/i915: Added DRM Infoframe handling for BYT/CHT
  video/hdmi: Add Unpack function for DRM infoframe
  drm/i915: Add state readout for DRM infoframe

Ville Syrjälä (2):
  drm: Add HLG EOTF
  drm/i915: Enable infoframes on GLK+ for HDR

 drivers/gpu/drm/drm_atomic.c              |   2 +
 drivers/gpu/drm/drm_atomic_state_helper.c |   6 +
 drivers/gpu/drm/drm_atomic_uapi.c         |  13 ++
 drivers/gpu/drm/drm_connector.c           |   6 +
 drivers/gpu/drm/drm_edid.c                | 101 +++++++++++++
 drivers/gpu/drm/i915/i915_reg.h           |   4 +
 drivers/gpu/drm/i915/intel_atomic.c       |  14 +-
 drivers/gpu/drm/i915/intel_ddi.c          |  17 +++
 drivers/gpu/drm/i915/intel_display.c      |   1 +
 drivers/gpu/drm/i915/intel_drv.h          |   1 +
 drivers/gpu/drm/i915/intel_hdmi.c         | 100 ++++++++++++-
 drivers/video/hdmi.c                      | 240 ++++++++++++++++++++++++++++++
 include/drm/drm_connector.h               |  11 ++
 include/drm/drm_edid.h                    |   5 +
 include/drm/drm_mode_config.h             |   6 +
 include/linux/hdmi.h                      |  55 +++++++
 include/uapi/drm/drm_mode.h               |  23 +++
 17 files changed, 598 insertions(+), 7 deletions(-)

Comments

Jonas Karlman May 12, 2019, 8:12 p.m. UTC | #1
On 2019-05-08 20:38, Uma Shankar wrote:
> This patch series enables HDR support in drm. It basically defines
> HDR metadata structures, property to pass content (after blending)
> metadata from user space compositors to driver.
>
> Dynamic Range and Mastering infoframe creation and sending.
>
> ToDo:
> 1. We need to get the color framework in place for all planes
>    which support HDR content in hardware. This is already in progres
>    and patches are out for review in mailing list.
> 2. UserSpace/Compositors: Blending policies and metadata blob
>    creation and passing to driver. Work is already in progress
>    by Intel's middleware teams on wayland and the patches for
>    the same are in review.
>
> A POC has already been developed by Ville based on wayland. Please refer
> below link to see the component interactions and usage:
> https://lists.freedesktop.org/archives/wayland-devel/2017-December/036403.html
>
> v2: Updated Ville's POC changes to the patch series.Incorporated cleanups
> and fixes from Ville. Rebase on latest drm-tip.
>
> v3: Fixed a warning causing builds to break on CI. No major change.
>
> v4: Addressed Shashank's review comments.
>
> v5: Rebase on top of Ville's infoframe refactoring changes. Fixed non modeset
> case for HDR metadata update. Dropped a redundant patch.
>
> v6: Addressed Shashank's review comments and added RB's received.
>
> v7: Squashed 2 patches, dropped 1 change and addressed Brian Starkey's and
> Shashank's review comments.
>
> v8: Addressed Jonas Karlman review comments. Added Shashank's RB to the series,
> fixed a WARN_ON on BYT/CHT.
>
> v9: Addressed Ville and Jonas Karlman's review comments. Added the infoframe
> state readout and metadata reference count.
>
> Note: This is already tested with Kodi and a confirmation from team kodi has been
> received. Branch details for the same as below:
> https://github.com/xbmc/xbmc/tree/feature_drmprime-vaapi

I have now re-tested this v9 series (non i915 parts) on Rockchip RK3328/RK3399 using Kodi HDR PR [1] and dw-hdmi patch [2].
Kodi sets the HDR output metadata property with metadata retrieved from FFmpeg, my LG OLED B7 correctly activates/deactivates HDR/HLG mode depending on video file played.

[1] https://github.com/xbmc/xbmc/pull/16103
[2] https://github.com/Kwiboo/linux-rockchip/commit/a9ccea6d3d51001f6b4ab9a1fb600a38e517b9ce

There is still a few minor nits, comment param name do not match function/field and ugly logging,
please see [3] for fixups, please feel free to squash/fixup.

[3] https://github.com/Kwiboo/linux-rockchip/compare/a9ccea6d3d51001f6b4ab9a1fb600a38e517b9ce...rockchip-5.1-libreelec-hdr-v5.1

For non-i915 drm patches:

Tested-by: Jonas Karlman <jonas@kwiboo.se>

Regards,
Jonas

>
> Jonas Karlman (1):
>   drm: Add reference counting on HDR metadata blob
>
> Uma Shankar (10):
>   drm: Add HDR source metadata property
>   drm: Parse HDR metadata info from EDID
>   drm: Enable HDR infoframe support
>   drm/i915: Attach HDR metadata property to connector
>   drm/i915: Write HDR infoframe and send to panel
>   drm/i915:Enabled Modeset when HDR Infoframe changes
>   drm/i915: Set Infoframe for non modeset case for HDR
>   drm/i915: Added DRM Infoframe handling for BYT/CHT
>   video/hdmi: Add Unpack function for DRM infoframe
>   drm/i915: Add state readout for DRM infoframe
>
> Ville Syrjälä (2):
>   drm: Add HLG EOTF
>   drm/i915: Enable infoframes on GLK+ for HDR
>
>  drivers/gpu/drm/drm_atomic.c              |   2 +
>  drivers/gpu/drm/drm_atomic_state_helper.c |   6 +
>  drivers/gpu/drm/drm_atomic_uapi.c         |  13 ++
>  drivers/gpu/drm/drm_connector.c           |   6 +
>  drivers/gpu/drm/drm_edid.c                | 101 +++++++++++++
>  drivers/gpu/drm/i915/i915_reg.h           |   4 +
>  drivers/gpu/drm/i915/intel_atomic.c       |  14 +-
>  drivers/gpu/drm/i915/intel_ddi.c          |  17 +++
>  drivers/gpu/drm/i915/intel_display.c      |   1 +
>  drivers/gpu/drm/i915/intel_drv.h          |   1 +
>  drivers/gpu/drm/i915/intel_hdmi.c         | 100 ++++++++++++-
>  drivers/video/hdmi.c                      | 240 ++++++++++++++++++++++++++++++
>  include/drm/drm_connector.h               |  11 ++
>  include/drm/drm_edid.h                    |   5 +
>  include/drm/drm_mode_config.h             |   6 +
>  include/linux/hdmi.h                      |  55 +++++++
>  include/uapi/drm/drm_mode.h               |  23 +++
>  17 files changed, 598 insertions(+), 7 deletions(-)
>
Shankar, Uma May 13, 2019, 3:48 p.m. UTC | #2
>-----Original Message-----
>From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of Jonas
>Karlman
>Sent: Monday, May 13, 2019 1:42 AM
>To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org; dri-
>devel@lists.freedesktop.org
>Cc: dcastagna@chromium.org; emil.l.velikov@gmail.com; seanpaul@chromium.org;
>Syrjala, Ville <ville.syrjala@intel.com>; Lankhorst, Maarten
><maarten.lankhorst@intel.com>
>Subject: Re: [v9 00/13] Add HDR Metadata Parsing and handling in DRM layer
>
>On 2019-05-08 20:38, Uma Shankar wrote:
>> This patch series enables HDR support in drm. It basically defines HDR
>> metadata structures, property to pass content (after blending)
>> metadata from user space compositors to driver.
>>
>> Dynamic Range and Mastering infoframe creation and sending.
>>
>> ToDo:
>> 1. We need to get the color framework in place for all planes
>>    which support HDR content in hardware. This is already in progres
>>    and patches are out for review in mailing list.
>> 2. UserSpace/Compositors: Blending policies and metadata blob
>>    creation and passing to driver. Work is already in progress
>>    by Intel's middleware teams on wayland and the patches for
>>    the same are in review.
>>
>> A POC has already been developed by Ville based on wayland. Please
>> refer below link to see the component interactions and usage:
>> https://lists.freedesktop.org/archives/wayland-devel/2017-December/036
>> 403.html
>>
>> v2: Updated Ville's POC changes to the patch series.Incorporated
>> cleanups and fixes from Ville. Rebase on latest drm-tip.
>>
>> v3: Fixed a warning causing builds to break on CI. No major change.
>>
>> v4: Addressed Shashank's review comments.
>>
>> v5: Rebase on top of Ville's infoframe refactoring changes. Fixed non
>> modeset case for HDR metadata update. Dropped a redundant patch.
>>
>> v6: Addressed Shashank's review comments and added RB's received.
>>
>> v7: Squashed 2 patches, dropped 1 change and addressed Brian Starkey's
>> and Shashank's review comments.
>>
>> v8: Addressed Jonas Karlman review comments. Added Shashank's RB to
>> the series, fixed a WARN_ON on BYT/CHT.
>>
>> v9: Addressed Ville and Jonas Karlman's review comments. Added the
>> infoframe state readout and metadata reference count.
>>
>> Note: This is already tested with Kodi and a confirmation from team
>> kodi has been received. Branch details for the same as below:
>> https://github.com/xbmc/xbmc/tree/feature_drmprime-vaapi
>
>I have now re-tested this v9 series (non i915 parts) on Rockchip RK3328/RK3399 using
>Kodi HDR PR [1] and dw-hdmi patch [2].
>Kodi sets the HDR output metadata property with metadata retrieved from FFmpeg,
>my LG OLED B7 correctly activates/deactivates HDR/HLG mode depending on video
>file played.
>
>[1] https://github.com/xbmc/xbmc/pull/16103
>[2] https://github.com/Kwiboo/linux-
>rockchip/commit/a9ccea6d3d51001f6b4ab9a1fb600a38e517b9ce
>
>There is still a few minor nits, comment param name do not match function/field and
>ugly logging, please see [3] for fixups, please feel free to squash/fixup.

Sure, will fix these up.

>
>[3] https://github.com/Kwiboo/linux-
>rockchip/compare/a9ccea6d3d51001f6b4ab9a1fb600a38e517b9ce...rockchip-5.1-
>libreelec-hdr-v5.1
>
>For non-i915 drm patches:
>
>Tested-by: Jonas Karlman <jonas@kwiboo.se>

Thanks Jonas for trying this out and giving your acknowledgement. 

Regards,
Uma Shankar

>Regards,
>Jonas
>
>>
>> Jonas Karlman (1):
>>   drm: Add reference counting on HDR metadata blob
>>
>> Uma Shankar (10):
>>   drm: Add HDR source metadata property
>>   drm: Parse HDR metadata info from EDID
>>   drm: Enable HDR infoframe support
>>   drm/i915: Attach HDR metadata property to connector
>>   drm/i915: Write HDR infoframe and send to panel
>>   drm/i915:Enabled Modeset when HDR Infoframe changes
>>   drm/i915: Set Infoframe for non modeset case for HDR
>>   drm/i915: Added DRM Infoframe handling for BYT/CHT
>>   video/hdmi: Add Unpack function for DRM infoframe
>>   drm/i915: Add state readout for DRM infoframe
>>
>> Ville Syrjälä (2):
>>   drm: Add HLG EOTF
>>   drm/i915: Enable infoframes on GLK+ for HDR
>>
>>  drivers/gpu/drm/drm_atomic.c              |   2 +
>>  drivers/gpu/drm/drm_atomic_state_helper.c |   6 +
>>  drivers/gpu/drm/drm_atomic_uapi.c         |  13 ++
>>  drivers/gpu/drm/drm_connector.c           |   6 +
>>  drivers/gpu/drm/drm_edid.c                | 101 +++++++++++++
>>  drivers/gpu/drm/i915/i915_reg.h           |   4 +
>>  drivers/gpu/drm/i915/intel_atomic.c       |  14 +-
>>  drivers/gpu/drm/i915/intel_ddi.c          |  17 +++
>>  drivers/gpu/drm/i915/intel_display.c      |   1 +
>>  drivers/gpu/drm/i915/intel_drv.h          |   1 +
>>  drivers/gpu/drm/i915/intel_hdmi.c         | 100 ++++++++++++-
>>  drivers/video/hdmi.c                      | 240 ++++++++++++++++++++++++++++++
>>  include/drm/drm_connector.h               |  11 ++
>>  include/drm/drm_edid.h                    |   5 +
>>  include/drm/drm_mode_config.h             |   6 +
>>  include/linux/hdmi.h                      |  55 +++++++
>>  include/uapi/drm/drm_mode.h               |  23 +++
>>  17 files changed, 598 insertions(+), 7 deletions(-)
>>
>
>_______________________________________________
>dri-devel mailing list
>dri-devel@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/dri-devel