[PATCH 00/11] drm/vkms: improve color curve LUTs precision
Leandro Ribeiro <[email protected]> Tue, 4 Aug 2026 17:33:40 -0300
| Newsgroups | gmane.linux.kernel,gmane.comp.video.dri.devel |
|---|---|
| Message-ID | <[email protected]> |
Currently VKMS only supports uniform LUTs. Besides the userspace provided LUTs, it also represents color curves with LUTs, as it can't simply implement the continuous curve formulas (floating-point would be required). This adds support to represent color curves with non-uniform LUTs, improving the precision significantly. It also provides a script that was used to create these LUTs. The optimized LUTs use more samples in regions where the interpolation and quantization errors are higher (usually in regions with a steeper slope). The LUT generator script compares different strategies and uses greedy subdivision, which outperformed the other methods, to generate the optimized LUTs for VKMS. Leandro Ribeiro (11): drm/vkms: rename VKMS_LUT_SIZE to VKMS_GAMMA_LUT_SIZE drm/vkms: allow color curve LUTs to have different sizes drm/vkms: remove TEST_LUT_SIZE drm/vkms: remove linear_eotf drm/vkms: improve the way in which we access LUT member drm/vkms: rename struct vkms_color_lut::base to y drm/vkms: rename get_lut_index() to get_uniform_lut_index() drm/vkms: add support to non-uniform LUT for internal color curves drm/vkms: test sRGB and inverse sRGB LUTs using more samples drm/vkms: add script to create optimized LUTs for color curves drm/vkms: replace uniform sRGB LUT and its inverse with optimal ones .../gpu/drm/vkms/scripts/color-curve-lut.py | 561 +++++++ drivers/gpu/drm/vkms/tests/vkms_color_test.c | 46 +- drivers/gpu/drm/vkms/vkms_composer.c | 127 +- drivers/gpu/drm/vkms/vkms_composer.h | 2 +- drivers/gpu/drm/vkms/vkms_crtc.c | 4 +- drivers/gpu/drm/vkms/vkms_drv.c | 2 +- drivers/gpu/drm/vkms/vkms_drv.h | 13 +- drivers/gpu/drm/vkms/vkms_luts.c | 1469 ++++++++--------- drivers/gpu/drm/vkms/vkms_luts.h | 3 - 9 files changed, 1383 insertions(+), 844 deletions(-) create mode 100644 drivers/gpu/drm/vkms/scripts/color-curve-lut.py -- 2.55.0