From: Louis Chauvet <louis.chauvet@bootlin.com>
To: Alex Hung <alex.hung@amd.com>,
dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org
Cc: wayland-devel@lists.freedesktop.org, harry.wentland@amd.com,
Arthur Grillo <arthurgrillo@riseup.net>
Subject: Re: [V7 03/45] drm/vkms: Add kunit tests for VKMS LUT handling
Date: Tue, 25 Feb 2025 10:51:38 +0100 [thread overview]
Message-ID: <e8651c30-e602-4dd4-bb2c-0e6bca61e53b@bootlin.com> (raw)
In-Reply-To: <20241220043410.416867-4-alex.hung@amd.com>
Le 20/12/2024 à 05:33, Alex Hung a écrit :
> From: Harry Wentland <harry.wentland@amd.com>
>
> Debugging LUT math is much easier when we can unit test
> it. Add kunit functionality to VKMS and add tests for
> - get_lut_index
> - lerp_u16
>
> Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
> Signed-off-by: Alex Hung <alex.hung@amd.com>
> Signed-off-by: Harry Wentland <harry.wentland@amd.com>
> Cc: Arthur Grillo <arthurgrillo@riseup.net>
Hi,
I would like to take this patch too. Can I take it with the
modifications below:
> ---
> v7:
> - Fix checkpatch warnings and errors (Louis Chauvet)
> - Change SPDX-License-Identifier: GPL-2.0+ from /* */ to //
> - Fix checkpatch errors and warnings (new line at EOF, redundant spaces, and long lines)
> - Add static to const struct vkms_color_lut test_linear_lut
> - Add "MODULE_DESCRIPTION" (Jeff Johnson)
>
> v6:
> - Eliminate need to include test as .c file (Louis Chauvet)
>
> v5:
> - Bring back static for lerp_u16 and get_lut_index (Arthur)
>
> v4:
> - Test the critical points of the lerp function (Pekka)
>
> v3:
> - Use include way of testing static functions (Arthur)
>
> drivers/gpu/drm/vkms/Kconfig | 15 ++
> drivers/gpu/drm/vkms/Makefile | 1 +
> drivers/gpu/drm/vkms/tests/.kunitconfig | 4 +
> drivers/gpu/drm/vkms/tests/Makefile | 3 +
> drivers/gpu/drm/vkms/tests/vkms_color_test.c | 172 +++++++++++++++++++
> drivers/gpu/drm/vkms/vkms_composer.c | 8 +-
> drivers/gpu/drm/vkms/vkms_composer.h | 13 ++
> 7 files changed, 214 insertions(+), 2 deletions(-)
> create mode 100644 drivers/gpu/drm/vkms/tests/.kunitconfig
> create mode 100644 drivers/gpu/drm/vkms/tests/Makefile
> create mode 100644 drivers/gpu/drm/vkms/tests/vkms_color_test.c
> create mode 100644 drivers/gpu/drm/vkms/vkms_composer.h
>
> diff --git a/drivers/gpu/drm/vkms/Kconfig b/drivers/gpu/drm/vkms/Kconfig
> index b9ecdebecb0b..59c4a32adb9d 100644
> --- a/drivers/gpu/drm/vkms/Kconfig
> +++ b/drivers/gpu/drm/vkms/Kconfig
> @@ -13,3 +13,18 @@ config DRM_VKMS
> a VKMS.
>
> If M is selected the module will be called vkms.
> +
> +config DRM_VKMS_KUNIT_TESTS
Can I change to:
config DRM_VKMS_KUNIT_TEST
> + tristate "KUnit tests for VKMS." if !KUNIT_ALL_TESTS
Can I change to:
tristate "KUnit tests for VKMS" if !KUNIT_ALL_TESTS
> + depends on DRM_VKMS=y && KUNIT
Can I change to:
depends on DRM_VKMS && KUNIT
> + default KUNIT_ALL_TESTS
> + help
> + This builds unit tests for VKMS. This option is not useful for
> + distributions or general kernels, but only for kernel
> + developers working on VKMS.
> +
> + For more information on KUnit and unit tests in general,
> + please refer to the KUnit documentation in
> + Documentation/dev-tools/kunit/.
> +
> + If in doubt, say "N".
> diff --git a/drivers/gpu/drm/vkms/Makefile b/drivers/gpu/drm/vkms/Makefile
> index 1b28a6a32948..8d3e46dde635 100644
> --- a/drivers/gpu/drm/vkms/Makefile
> +++ b/drivers/gpu/drm/vkms/Makefile
> @@ -9,3 +9,4 @@ vkms-y := \
> vkms_writeback.o
>
> obj-$(CONFIG_DRM_VKMS) += vkms.o
> +obj-$(CONFIG_DRM_VKMS_KUNIT_TESTS) += tests/
> diff --git a/drivers/gpu/drm/vkms/tests/.kunitconfig b/drivers/gpu/drm/vkms/tests/.kunitconfig
> new file mode 100644
> index 000000000000..70e378228cbd
> --- /dev/null
> +++ b/drivers/gpu/drm/vkms/tests/.kunitconfig
> @@ -0,0 +1,4 @@
> +CONFIG_KUNIT=y
> +CONFIG_DRM=y
> +CONFIG_DRM_VKMS=y
> +CONFIG_DRM_VKMS_KUNIT_TESTS=y
> diff --git a/drivers/gpu/drm/vkms/tests/Makefile b/drivers/gpu/drm/vkms/tests/Makefile
> new file mode 100644
> index 000000000000..7876ca7a3c42
> --- /dev/null
> +++ b/drivers/gpu/drm/vkms/tests/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +obj-$(CONFIG_DRM_VKMS_KUNIT_TESTS) += vkms_color_test.o
> \ No newline at end of file
> diff --git a/drivers/gpu/drm/vkms/tests/vkms_color_test.c b/drivers/gpu/drm/vkms/tests/vkms_color_test.c
> new file mode 100644
> index 000000000000..b53beaac2703
> --- /dev/null
> +++ b/drivers/gpu/drm/vkms/tests/vkms_color_test.c
> @@ -0,0 +1,172 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +
> +#include <kunit/test.h>
> +
> +#include <drm/drm_fixed.h>
> +#include <drm/drm_mode.h>
> +#include "../vkms_drv.h"
> +#include "../vkms_composer.h"
> +
> +#define TEST_LUT_SIZE 16
> +
> +MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING);
Needs to be changed to: (Can I do it?)
MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");
Thanks,
Louis Chauvet
> +
> +static struct drm_color_lut test_linear_array[TEST_LUT_SIZE] = {
> + { 0x0, 0x0, 0x0, 0 },
> + { 0x1111, 0x1111, 0x1111, 0 },
> + { 0x2222, 0x2222, 0x2222, 0 },
> + { 0x3333, 0x3333, 0x3333, 0 },
> + { 0x4444, 0x4444, 0x4444, 0 },
> + { 0x5555, 0x5555, 0x5555, 0 },
> + { 0x6666, 0x6666, 0x6666, 0 },
> + { 0x7777, 0x7777, 0x7777, 0 },
> + { 0x8888, 0x8888, 0x8888, 0 },
> + { 0x9999, 0x9999, 0x9999, 0 },
> + { 0xaaaa, 0xaaaa, 0xaaaa, 0 },
> + { 0xbbbb, 0xbbbb, 0xbbbb, 0 },
> + { 0xcccc, 0xcccc, 0xcccc, 0 },
> + { 0xdddd, 0xdddd, 0xdddd, 0 },
> + { 0xeeee, 0xeeee, 0xeeee, 0 },
> + { 0xffff, 0xffff, 0xffff, 0 },
> +};
> +
> +static const struct vkms_color_lut test_linear_lut = {
> + .base = test_linear_array,
> + .lut_length = TEST_LUT_SIZE,
> + .channel_value2index_ratio = 0xf000fll
> +};
> +
> +
> +static void vkms_color_test_get_lut_index(struct kunit *test)
> +{
> + s64 lut_index;
> + int i;
> +
> + lut_index = get_lut_index(&test_linear_lut, test_linear_array[0].red);
> + KUNIT_EXPECT_EQ(test, drm_fixp2int(lut_index), 0);
> +
> + for (i = 0; i < TEST_LUT_SIZE; i++) {
> + lut_index = get_lut_index(&test_linear_lut, test_linear_array[i].red);
> + KUNIT_EXPECT_EQ(test, drm_fixp2int_ceil(lut_index), i);
> + }
> +}
> +
> +static void vkms_color_test_lerp(struct kunit *test)
> +{
> + /*** half-way round down ***/
> + s64 t = 0x80000000 - 1;
> +
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x10, t), 0x8);
> +
> + /* odd a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0x10, t), 0x8);
> +
> + /* odd b */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0xf, t), 0x8);
> +
> + /* b = a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x10, t), 0x10);
> +
> + /* b = a + 1 */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x11, t), 0x10);
> +
> + /*** half-way round up ***/
> + t = 0x80000000;
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x10, t), 0x8);
> +
> + /* odd a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0x10, t), 0x9);
> +
> + /* odd b */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0xf, t), 0x8);
> +
> + /* b = a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x10, t), 0x10);
> +
> + /* b = a + 1 */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x11, t), 0x11);
> +
> + /*** t = 0.0 ***/
> + t = 0x0;
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x10, t), 0x0);
> +
> + /* odd a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0x10, t), 0x1);
> +
> + /* odd b */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0xf, t), 0x1);
> +
> + /* b = a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x10, t), 0x10);
> +
> + /* b = a + 1 */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x11, t), 0x10);
> +
> + /*** t = 1.0 ***/
> + t = 0x100000000;
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x10, t), 0x10);
> +
> + /* odd a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0x10, t), 0x10);
> +
> + /* odd b */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0xf, t), 0xf);
> +
> + /* b = a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x10, t), 0x10);
> +
> + /* b = a + 1 */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x11, t), 0x11);
> +
> + /*** t = 0.0 + 1 ***/
> + t = 0x0 + 1;
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x10, t), 0x0);
> +
> + /* odd a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0x10, t), 0x1);
> +
> + /* odd b */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0xf, t), 0x1);
> +
> + /* b = a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x10, t), 0x10);
> +
> + /* b = a + 1 */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x11, t), 0x10);
> +
> + /*** t = 1.0 - 1 ***/
> + t = 0x100000000 - 1;
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x10, t), 0x10);
> +
> + /* odd a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0x10, t), 0x10);
> +
> + /* odd b */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x1, 0xf, t), 0xf);
> +
> + /* b = a */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x10, t), 0x10);
> +
> + /* b = a + 1 */
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x10, 0x11, t), 0x11);
> +
> + /*** t chosen to verify the flipping point of result a (or b) to a+1 (or b-1) ***/
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x1, 0x80000000 - 1), 0x0);
> + KUNIT_EXPECT_EQ(test, lerp_u16(0x0, 0x1, 0x80000000), 0x1);
> +}
> +
> +static struct kunit_case vkms_color_test_cases[] = {
> + KUNIT_CASE(vkms_color_test_get_lut_index),
> + KUNIT_CASE(vkms_color_test_lerp),
> + {}
> +};
> +
> +static struct kunit_suite vkms_color_test_suite = {
> + .name = "vkms-color",
> + .test_cases = vkms_color_test_cases,
> +};
> +
> +kunit_test_suite(vkms_color_test_suite);
> +
> +MODULE_DESCRIPTION("Kunit test for VKMS LUT handling");
> +MODULE_LICENSE("GPL");
> diff --git a/drivers/gpu/drm/vkms/vkms_composer.c b/drivers/gpu/drm/vkms/vkms_composer.c
> index 3d6785d081f2..d15ceac6c56f 100644
> --- a/drivers/gpu/drm/vkms/vkms_composer.c
> +++ b/drivers/gpu/drm/vkms/vkms_composer.c
> @@ -12,6 +12,8 @@
> #include <linux/minmax.h>
>
> #include "vkms_drv.h"
> +#include <kunit/visibility.h>
> +#include "vkms_composer.h"
>
> static u16 pre_mul_blend_channel(u16 src, u16 dst, u16 alpha)
> {
> @@ -91,7 +93,7 @@ static void fill_background(const struct pixel_argb_u16 *background_color,
> }
>
> // lerp(a, b, t) = a + (b - a) * t
> -static u16 lerp_u16(u16 a, u16 b, s64 t)
> +VISIBLE_IF_KUNIT u16 lerp_u16(u16 a, u16 b, s64 t)
> {
> s64 a_fp = drm_int2fixp(a);
> s64 b_fp = drm_int2fixp(b);
> @@ -100,13 +102,15 @@ static u16 lerp_u16(u16 a, u16 b, s64 t)
>
> return drm_fixp2int_round(a_fp + delta);
> }
> +EXPORT_SYMBOL_IF_KUNIT(lerp_u16);
>
> -static s64 get_lut_index(const struct vkms_color_lut *lut, u16 channel_value)
> +VISIBLE_IF_KUNIT s64 get_lut_index(const struct vkms_color_lut *lut, u16 channel_value)
> {
> s64 color_channel_fp = drm_int2fixp(channel_value);
>
> return drm_fixp_mul(color_channel_fp, lut->channel_value2index_ratio);
> }
> +EXPORT_SYMBOL_IF_KUNIT(get_lut_index);
>
> /*
> * This enum is related to the positions of the variables inside
> diff --git a/drivers/gpu/drm/vkms/vkms_composer.h b/drivers/gpu/drm/vkms/vkms_composer.h
> new file mode 100644
> index 000000000000..9316a053e7d7
> --- /dev/null
> +++ b/drivers/gpu/drm/vkms/vkms_composer.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#ifndef _VKMS_COMPOSER_H_
> +#define _VKMS_COMPOSER_H_
> +
> +#include <kunit/visibility.h>
> +
> +#if IS_ENABLED(CONFIG_KUNIT)
> +u16 lerp_u16(u16 a, u16 b, s64 t);
> +s64 get_lut_index(const struct vkms_color_lut *lut, u16 channel_value);
> +#endif
> +
> +#endif /* _VKMS_COMPOSER_H_ */
--
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2025-02-25 9:51 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-20 4:33 [V7 00/45] Color Pipeline API w/ VKMS Alex Hung
2024-12-20 4:33 ` [V7 01/45] drm: Add helper for conversion from signed-magnitude Alex Hung
2025-02-24 16:07 ` Louis Chauvet
2025-02-24 18:50 ` Alex Hung
2025-02-25 9:35 ` Louis Chauvet
2024-12-20 4:33 ` [V7 02/45] drm/vkms: Round fixp2int conversion in lerp_u16 Alex Hung
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 9:37 ` Louis Chauvet
2025-02-25 11:28 ` Simon Ser
2025-02-25 14:05 ` Louis Chauvet
2025-02-25 14:43 ` Harry Wentland
2025-02-25 14:45 ` Simon Ser
2025-02-25 16:00 ` Louis Chauvet
2024-12-20 4:33 ` [V7 03/45] drm/vkms: Add kunit tests for VKMS LUT handling Alex Hung
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 9:51 ` Louis Chauvet [this message]
2025-02-25 14:45 ` Harry Wentland
2024-12-20 4:33 ` [V7 04/45] drm/doc/rfc: Describe why prescriptive color pipeline is needed Alex Hung
2024-12-20 4:33 ` [V7 05/45] drm/colorop: Introduce new drm_colorop mode object Alex Hung
2025-01-13 8:04 ` Simon Ser
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 10:05 ` Louis Chauvet
2025-02-28 15:55 ` Harry Wentland
2024-12-20 4:33 ` [V7 06/45] drm/colorop: Add TYPE property Alex Hung
2025-01-13 8:05 ` Simon Ser
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 10:07 ` Louis Chauvet
2024-12-20 4:33 ` [V7 07/45] drm/colorop: Add 1D Curve subtype Alex Hung
2025-01-13 8:07 ` Simon Ser
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 10:13 ` Louis Chauvet
2025-02-28 1:07 ` Alex Hung
2025-02-28 9:24 ` Louis Chauvet
2024-12-20 4:33 ` [V7 08/45] Documentation/gpu: document drm_colorop Alex Hung
2025-01-13 8:18 ` Simon Ser
2025-02-10 22:03 ` Harry Wentland
2025-02-15 14:40 ` Simon Ser
2025-02-21 16:18 ` Harry Wentland
2025-02-21 16:42 ` Simon Ser
2025-02-21 18:41 ` Harry Wentland
2025-02-21 18:48 ` Simon Ser
2024-12-20 4:33 ` [V7 09/45] drm/colorop: Add BYPASS property Alex Hung
2025-01-13 17:49 ` Simon Ser
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 10:15 ` Louis Chauvet
2024-12-20 4:33 ` [V7 10/45] drm/colorop: Add NEXT property Alex Hung
2025-01-13 17:54 ` Simon Ser
2025-02-24 16:07 ` Louis Chauvet
2025-02-25 10:21 ` Louis Chauvet
2024-12-20 4:33 ` [V7 11/45] drm/colorop: Add atomic state print for drm_colorop Alex Hung
2025-01-13 17:55 ` Simon Ser
2024-12-20 4:33 ` [V7 12/45] drm/plane: Add COLOR PIPELINE property Alex Hung
2025-01-13 18:08 ` Simon Ser
2024-12-20 4:33 ` [V7 13/45] drm/colorop: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE Alex Hung
2025-01-13 18:23 ` Simon Ser
2025-01-22 19:48 ` Harry Wentland
2025-01-22 20:05 ` Simon Ser
2024-12-20 4:33 ` [V7 14/45] drm/vkms: Add enumerated 1D curve colorop Alex Hung
2025-02-25 11:18 ` Louis Chauvet
2025-03-10 19:43 ` Harry Wentland
2024-12-20 4:33 ` [V7 15/45] drm/vkms: Add kunit tests for linear and sRGB LUTs Alex Hung
2025-02-25 11:19 ` Louis Chauvet
2025-03-10 15:09 ` Harry Wentland
2024-12-20 4:33 ` [V7 16/45] drm/colorop: Add 3x4 CTM type Alex Hung
2025-01-13 18:19 ` Simon Ser
2025-02-25 11:20 ` Louis Chauvet
2024-12-20 4:33 ` [V7 17/45] drm/vkms: Use s32 for internal color pipeline precision Alex Hung
2024-12-20 4:33 ` [V7 18/45] drm/vkms: add 3x4 matrix in color pipeline Alex Hung
2025-02-25 11:21 ` Louis Chauvet
2024-12-20 4:33 ` [V7 19/45] drm/tests: Add a few tests around drm_fixed.h Alex Hung
2024-12-20 4:33 ` [V7 20/45] drm/vkms: Add tests for CTM handling Alex Hung
2024-12-20 4:33 ` [V7 21/45] drm/colorop: pass plane_color_pipeline client cap to atomic check Alex Hung
2024-12-20 4:33 ` [V7 22/45] drm/colorop: define a new macro for_each_new_colorop_in_state Alex Hung
2025-01-15 7:48 ` Simon Ser
2024-12-20 4:33 ` [V7 23/45] drm/amd/display: Ignore deprecated props when plane_color_pipeline set Alex Hung
2025-01-15 7:56 ` Simon Ser
2025-01-22 21:05 ` Harry Wentland
2025-01-23 20:29 ` Simon Ser
2024-12-20 4:33 ` [V7 24/45] drm/amd/display: Add bypass COLOR PIPELINE Alex Hung
2024-12-20 4:33 ` [V7 25/45] drm/amd/display: Skip color pipeline initialization for cursor plane Alex Hung
2024-12-20 4:33 ` [V7 26/45] drm/amd/display: Add support for sRGB EOTF in DEGAM block Alex Hung
2025-02-13 15:35 ` Leo Li
2024-12-20 4:33 ` [V7 27/45] drm/amd/display: Add support for sRGB Inverse EOTF in SHAPER block Alex Hung
2024-12-20 4:33 ` [V7 28/45] drm/amd/display: Add support for sRGB EOTF in BLND block Alex Hung
2024-12-20 4:33 ` [V7 29/45] drm/colorop: Add PQ 125 EOTF and its inverse Alex Hung
2025-01-15 8:00 ` Simon Ser
2025-01-23 20:06 ` Harry Wentland
2025-01-23 20:33 ` Simon Ser
2025-01-17 9:04 ` Pekka Paalanen
2025-01-23 20:09 ` Harry Wentland
2024-12-20 4:33 ` [V7 30/45] drm/amd/display: Enable support for PQ 125 EOTF and Inverse Alex Hung
2024-12-20 4:33 ` [V7 31/45] drm/colorop: add BT2020/BT709 OETF and Inverse OETF Alex Hung
2025-01-15 8:04 ` Simon Ser
2025-01-23 20:13 ` Harry Wentland
2025-01-16 8:56 ` Pekka Paalanen
2025-01-17 9:06 ` Pekka Paalanen
2025-01-23 20:16 ` Harry Wentland
2025-01-27 12:05 ` Pekka Paalanen
2024-12-20 4:33 ` [V7 32/45] drm/amd/display: Add support for BT.709 and BT.2020 TFs Alex Hung
2025-02-12 23:03 ` Leo Li
2024-12-20 4:33 ` [V7 33/45] drm/colorop: Add 1D Curve Custom LUT type Alex Hung
2025-01-15 8:14 ` Simon Ser
2025-01-16 23:33 ` Alex Hung
2025-01-18 13:54 ` Simon Ser
2025-01-15 15:48 ` Simon Ser
2024-12-20 4:33 ` [V7 34/45] drm/amd/display: add shaper and blend colorops for 1D Curve Custom LUT Alex Hung
2025-02-12 23:44 ` Leo Li
2025-02-21 16:28 ` Harry Wentland
2024-12-20 4:33 ` [V7 35/45] drm/amd/display: add 3x4 matrix colorop Alex Hung
2025-02-13 17:16 ` Leo Li
2024-12-20 4:33 ` [V7 36/45] drm/colorop: Add mutliplier type Alex Hung
2025-01-15 15:54 ` Simon Ser
2024-12-20 4:33 ` [V7 37/45] drm/amd/display: add multiplier colorop Alex Hung
2024-12-20 4:33 ` [V7 38/45] drm/amd/display: Swap matrix and multiplier Alex Hung
2024-12-20 4:33 ` [V7 39/45] drm/colorop: Define LUT_1D interpolation Alex Hung
2025-01-20 7:48 ` Simon Ser
2024-12-20 4:33 ` [V7 40/45] drm/colorop: allow non-bypass colorops Alex Hung
2024-12-20 4:33 ` [V7 41/45] drm/colorop: Add 3D LUT supports to color pipeline Alex Hung
2025-01-20 21:16 ` Simon Ser
2024-12-20 4:33 ` [V7 42/45] drm/amd/display: add 3D LUT colorop Alex Hung
2025-02-13 18:21 ` Leo Li
2025-02-21 21:05 ` Harry Wentland
2024-12-20 4:33 ` [V7 43/45] drm/amd/display: Add AMD color pipeline doc Alex Hung
2025-01-17 9:19 ` Pekka Paalanen
2025-01-23 20:52 ` Harry Wentland
2024-12-20 4:33 ` [V7 44/45] drm/colorop: Add kernel doc for data blob Alex Hung
2024-12-20 4:33 ` [V7 45/45] drm/colorop: Add destroy functions for color pipeline Alex Hung
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=e8651c30-e602-4dd4-bb2c-0e6bca61e53b@bootlin.com \
--to=louis.chauvet@bootlin.com \
--cc=alex.hung@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=arthurgrillo@riseup.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=harry.wentland@amd.com \
--cc=wayland-devel@lists.freedesktop.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.