[PATCH v7 00/14] Display Global Histogram
Arun R Murthy
arun.r.murthy at intel.com
Thu Jan 9 19:45:28 UTC 2025
EDITME: Imported from f20241218-dpst-v7-0-81bfe7d08c2d at intel.com
Please review before sending.
Display histogram is a hardware functionality where a statistics for 'n'
number of frames is generated to form a histogram data. This is notified
to the user via histogram event. Compositor will then upon sensing the
histogram event will read the histogram data from KMD via crtc property.
User can use this histogram and apply various equilization techniques to
enhance the image or use this histogram for shaders.
Display ImageEnhancemenT is a hardware that interpolates the LUT value
to generate the enhanced output image. 1DLUT value is to be provided by
the user via crtc property.
One such library Global Histogram Enhancement(GHE) will take the histogram
as input and apply the algorithm to enhance the density and then
return the enhanced LUT factor. This library can be located @
https://github.com/intel/ghe
The corresponding mutter changes to enable/disable histogram, read the
histogram data, communicate with the library and write the enhanced data
back to the KMD is also pushed for review at https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3873
and https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3873/diffs?commit_id=270808ca7c8be48513553d95b4a47541f5d40206
The IGT changes for validating the histogram event and reading the
histogram is also pushed for review at https://patchwork.freedesktop.org/series/135789/
NOTE: i915 driver changes for histogram and IET LUT is not fully tested
and the series is pushed to get the inital feel of the histogram/IET LUT
usage as well as to get started with the review.
Test-with: 20240705091333.328322-1-mohammed.thasleem at intel.com
Arun R Murthy (10):
drm/crtc: Add histogram properties
drm/crtc: Expose API to create drm crtc property for histogram
drm/i915/histogram: Define registers for histogram
drm/i915/histogram: Add support for histogram
drm/xe: Add histogram support to Xe builds
drm/i915/histogram: histogram interrupt handling
drm/i915/display: handle drm-crtc histogram property updates
drm/i915/histogram: histogram delay counter doesnt reset
drm/i915/histogram: Histogram changes for Display 20+
drm/i915/histogram: Enable pipe dithering
drivers/gpu/drm/drm_atomic_state_helper.c | 6 +
drivers/gpu/drm/drm_atomic_uapi.c | 17 +
drivers/gpu/drm/drm_crtc.c | 30 ++
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/intel_atomic.c | 1 +
drivers/gpu/drm/i915/display/intel_crtc.c | 7 +
drivers/gpu/drm/i915/display/intel_display.c | 17 +
.../gpu/drm/i915/display/intel_display_irq.c | 6 +-
.../drm/i915/display/intel_display_types.h | 4 +
.../gpu/drm/i915/display/intel_histogram.c | 380 ++++++++++++++++++
.../gpu/drm/i915/display/intel_histogram.h | 40 ++
.../drm/i915/display/intel_histogram_regs.h | 75 ++++
drivers/gpu/drm/i915/i915_reg.h | 5 +-
drivers/gpu/drm/xe/Makefile | 1 +
include/drm/drm_crtc.h | 49 +++
include/uapi/drm/drm_mode.h | 11 +
16 files changed, 647 insertions(+), 3 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_histogram.c
create mode 100644 drivers/gpu/drm/i915/display/intel_histogram.h
create mode 100644 drivers/gpu/drm/i915/display/intel_histogram_regs.h
--
2.25.1
---
Arun R Murthy (4):
drm: Define histogram structures exposed to user
drm: Define ImageEnhancemenT LUT structures exposed to user
drm/crtc: Expose API to create drm crtc property for histogram
drm/crtc: Expose API to create drm crtc property for IET LUT
drivers/gpu/drm/drm_atomic_state_helper.c | 23 +++++++
drivers/gpu/drm/drm_atomic_uapi.c | 28 ++++++++
drivers/gpu/drm/drm_crtc.c | 97 +++++++++++++++++++++++++++
include/drm/drm_crtc.h | 77 ++++++++++++++++++++++
include/uapi/drm/drm_mode.h | 105 ++++++++++++++++++++++++++++++
5 files changed, 330 insertions(+)
---
base-commit: 78526dfb8799485890dae3877fea308e9501879c
change-id: 20241218-dpst-c8ecf18062bb
Best regards,
--
Arun R Murthy <arun.r.murthy at intel.com>
---
Arun R Murthy (14):
drm: Define histogram structures exposed to user
drm: Define ImageEnhancemenT LUT structures exposed to user
drm/crtc: Expose API to create drm crtc property for histogram
drm/crtc: Expose API to create drm crtc property for IET LUT
drm/i915/histogram: Define registers for histogram
drm/i915/histogram: Add support for histogram
drm/xe: Add histogram support to Xe builds
drm/i915/histogram: histogram interrupt handling
drm/i915/histogram: Hook i915 histogram with drm histogram
drm/i915/iet: Add support to writing the IET LUT data
drm/i915/crtc: Hook i915 IET LUT with the drm IET properties
drm/i915/histogram: histogram delay counter doesnt reset
drm/i915/histogram: Histogram changes for Display 20+
drm/i915/histogram: Enable pipe dithering
drivers/gpu/drm/drm_atomic_state_helper.c | 23 ++
drivers/gpu/drm/drm_atomic_uapi.c | 28 ++
drivers/gpu/drm/drm_crtc.c | 127 +++++++
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/intel_crtc.c | 10 +
drivers/gpu/drm/i915/display/intel_display.c | 14 +
drivers/gpu/drm/i915/display/intel_display_irq.c | 6 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 2 +
drivers/gpu/drm/i915/display/intel_histogram.c | 396 +++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_histogram.h | 55 +++
.../gpu/drm/i915/display/intel_histogram_regs.h | 75 ++++
drivers/gpu/drm/i915/i915_reg.h | 5 +-
drivers/gpu/drm/xe/Makefile | 1 +
include/drm/drm_crtc.h | 80 +++++
include/uapi/drm/drm_mode.h | 109 ++++++
15 files changed, 929 insertions(+), 3 deletions(-)
---
base-commit: 78526dfb8799485890dae3877fea308e9501879c
change-id: 20241218-dpst-c8ecf18062bb
Best regards,
--
Arun R Murthy <arun.r.murthy at intel.com>
More information about the dri-devel
mailing list