From: Arun R Murthy <arun.r.murthy@intel.com>
To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
intel-xe@lists.freedesktop.org
Cc: dmitry.baryshkov@linaro.org, suraj.kandpal@intel.com,
uma.shankar@intel.com,
"Imported from f20241218-dpst-v7-0-81bfe7d08c2d"@intel.com,
20240705091333.328322-1-mohammed.thasleem@intel.com,
Arun R Murthy <arun.r.murthy@intel.com>
Subject: [PATCH v7 02/14] drm: Define ImageEnhancemenT LUT structures exposed to user
Date: Fri, 10 Jan 2025 01:15:30 +0530 [thread overview]
Message-ID: <20250110-dpst-v7-2-605cb0271162@intel.com> (raw)
In-Reply-To: <20250110-dpst-v7-0-605cb0271162@intel.com>
ImageEnhancemenT(IET) hardware interpolates the LUT value to generate
the enhanced output image. LUT takes an input value, outputs a new
value based on the data within the LUT. 1D LUT can remap individual
input values to new output values based on the LUT sample. LUT can be
interpolated by the hardware by multiple modes Ex: Direct Lookup LUT,
Multiplicative LUT etc
The list of supported mode by hardware along with the format(exponent
mantissa) is exposed to user by the iet_lut_caps property. Maximum
format being 8.24 i.e 8 exponent and 24 mantissa.
For illustration a hardware supporting 1.9 format denotes this as
0x10001FF. In order to know the exponent do a bitwise AND with
0xF000000. The LUT value to be provided by user would be a 10bit value
with 1 bit integer and 9 bit fractional value.
Multiple formats can be supported, hence pointer is used over here.
User can then provide the LUT with any one of the supported modes in
any of the supported formats.
The entries in the LUT can vary depending on the hardware capability
with max being 255. This will also be exposed as iet_lut_caps so user
can generate a LUT with the specified entries.
Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
---
include/uapi/drm/drm_mode.h | 50 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 7a7039381142bb5dba269bdaec42c18be34e2d05..056c2efef1589848034afc0089f1838c2547bcf8 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -1367,6 +1367,17 @@ struct drm_mode_closefb {
*/
#define DRM_MODE_HISTOGRAM_HSV_MAX_RGB (1 << 0)
+/* LUT values are points on exponential graph with x axis and y-axis y=f(x) */
+#define DRM_MODE_IET_LOOKUP_LUT (1 << 0)
+/*
+ * LUT values, points on negative exponential graph with x-axis and y-axis
+ * y = y/x so upon multiplying x, y is obtained, hence multiplicative. The
+ * format of LUT can at max be 8.24(8integer 24 fractional) represented by
+ * u32. Depending on the hardware capability and exponent mantissa can be
+ * chosen.
+ */
+#define DRM_MODE_IET_MULTIPLICATIVE (1 << 1)
+
/**
* struct drm_histogram_caps
*
@@ -1414,6 +1425,45 @@ struct drm_histogram {
__u32 nr_elements;
};
+/**
+ * struct drm_iet_caps
+ *
+ * @iet_mode: pixel factor enhancement modes defined in the above macros
+ * @iet_sample_format: holds the address of an array of u32 LUT sample formats
+ * depending on the hardware capability. Max being 8.24
+ * Doing a bitwise AND will get the present sample.
+ * Ex: for 1 integer 9 fraction AND with 0x10001FF
+ * @nr_iet_sample_formats: number of iet_sample_formsts supported by the
+ * hardware
+ * @nr_iet_lut_entries: number of LUT entries
+ */
+struct drm_iet_caps {
+ __u8 iet_mode;
+ u64 iet_sample_format;
+ __u32 nr_iet_sample_formats;
+ __u32 nr_iet_lut_entries;
+};
+
+/**
+ * struct drm_iet_1dlut_sample
+ * @iet_mode: image enhancement mode, this will also convey the channel.
+ * @iet_format: LUT exponent and mantissa format, max being 8.24
+ * @data_ptr: pointer to the array of values which is of type u32.
+ * 1 channel: 10 bit corrected value and remaining bits are reserved.
+ * multi channel: pointer to struct drm_color_lut
+ * @nr_elements: number of entries pointed by the data @data_ptr
+ * @reserved: reserved for future use
+ * @reserved1: reserved for future use
+ */
+struct drm_iet_1dlut_sample {
+ __u8 iet_mode;
+ __u32 iet_format;
+ __u64 data_ptr;
+ __u32 nr_elements;
+ __u32 reserved;
+ __u32 reserved1;
+};
+
#if defined(__cplusplus)
}
#endif
--
2.25.1
next prev parent reply other threads:[~2025-01-09 20:00 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-09 19:45 [PATCH v7 00/14] Display Global Histogram Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 01/14] drm: Define histogram structures exposed to user Arun R Murthy
2025-01-15 19:44 ` Dmitry Baryshkov
2025-01-16 7:08 ` Murthy, Arun R
2025-01-16 7:42 ` Dmitry Baryshkov
2025-01-16 12:33 ` Murthy, Arun R
2025-01-16 13:12 ` Dmitry Baryshkov
2025-01-16 13:33 ` Murthy, Arun R
2025-01-16 13:39 ` Dmitry Baryshkov
2025-01-17 5:50 ` Murthy, Arun R
2025-01-21 6:37 ` Murthy, Arun R
2025-01-09 19:45 ` Arun R Murthy [this message]
2025-01-15 19:55 ` [PATCH v7 02/14] drm: Define ImageEnhancemenT LUT " Dmitry Baryshkov
2025-01-16 7:08 ` Murthy, Arun R
2025-01-16 7:26 ` Dmitry Baryshkov
2025-01-16 12:33 ` Murthy, Arun R
2025-01-16 13:12 ` Dmitry Baryshkov
2025-01-16 13:33 ` Murthy, Arun R
2025-01-09 19:45 ` [PATCH v7 03/14] drm/crtc: Expose API to create drm crtc property for histogram Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 04/14] drm/crtc: Expose API to create drm crtc property for IET LUT Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 05/14] drm/i915/histogram: Define registers for histogram Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 06/14] drm/i915/histogram: Add support " Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 07/14] drm/xe: Add histogram support to Xe builds Arun R Murthy
2025-01-16 1:37 ` Dmitry Baryshkov
2025-01-16 7:08 ` Murthy, Arun R
2025-01-16 7:14 ` Dmitry Baryshkov
2025-01-09 19:45 ` [PATCH v7 08/14] drm/i915/histogram: histogram interrupt handling Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 09/14] drm/i915/histogram: Hook i915 histogram with drm histogram Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 10/14] drm/i915/iet: Add support to writing the IET LUT data Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 11/14] drm/i915/crtc: Hook i915 IET LUT with the drm IET properties Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 12/14] drm/i915/histogram: histogram delay counter doesnt reset Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 13/14] drm/i915/histogram: Histogram changes for Display 20+ Arun R Murthy
2025-01-09 19:45 ` [PATCH v7 14/14] drm/i915/histogram: Enable pipe dithering Arun R Murthy
2025-01-10 5:58 ` Kandpal, Suraj
2025-01-09 22:33 ` ✗ CI.Patch_applied: failure for Display Global Histogram (rev8) Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250110-dpst-v7-2-605cb0271162@intel.com \
--to=arun.r.murthy@intel.com \
--cc="Imported from f20241218-dpst-v7-0-81bfe7d08c2d"@intel.com \
--cc=20240705091333.328322-1-mohammed.thasleem@intel.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=suraj.kandpal@intel.com \
--cc=uma.shankar@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox