Adding 3DLUT .cube into the pipeline

With the ongoing implementation of the Wayland and ICC profile support in Plasma 6, I would like to propose adding direct support for Adobe .cube format 3D LUTs (17x17x17, 33x33x33, 65x65x65) for display calibration.

Rationale:

  1. Industry Standardization: The .cube format is the de facto standard in broadcast, post-production, and color-critical workflows (Adobe, DaVinci Resolve, Calman, ColourSpace, LightSpace).

  2. Elimination of CMM/ICC Overhead & Degeneration: Encapsulating a high-resolution 3D LUT into an ICC profile (via 3D CLUT) is prone to interpolation errors, gamut clipping, and tone-curve misinterpretation by color management engines. It also introduces unwanted CMM round-trip conversions when the intended workflow is a strict 1:1 hardware or post-process calibration pass.

  3. Pipeline Efficiency: Native .cube ingestion allows KWin to load calibration data directly into the GPU’s hardware color pipeline (DRM/KMS 3D_LUT CRTC/plane property where supported by the driver/hardware) or apply it seamlessly as a post-tonemapping fragment shader pass prior to scanout, ensuring a zero-contamination calibration chain at the compositor level.

Providing an interface in System Settings > Display and Monitor to load a .cube file directly onto a display output would make Plasma the leading desktop environment for broadcast and color-grading professionals on Linux.

What kwin implements is mostly what Linux driver support expose.

So you are saying that the linux drivers doesn’t support using .cube?