STRUCT DPP_COLOR_CAPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so this is struct dpp_color_caps(9) from the Kernel API Manual β€” literally the color pipeline capabilities for display pipe and plane blocks ✨ like, it's the receipts for what color magic each display pipe/plane block can actually do πŸŽ€


🌸 SYNOPSIS 🌸

no cap, here's the whole struct, exactly as it lives:

struct dpp_color_caps {
    uint16_t dcn_arch : 1;
    uint16_t input_lut_shared : 1;
    uint16_t icsc : 1;
    uint16_t dgam_ram : 1;
    uint16_t post_csc : 1;
    uint16_t gamma_corr : 1;
    uint16_t hw_3d_lut : 1;
    uint16_t ogam_ram : 1;
    uint16_t ocsc : 1;
    uint16_t dgam_rom_for_yuv : 1;
    uint16_t upsp_pre_scaler : 1;
    struct rom_curve_caps dgam_rom_caps;
    struct rom_curve_caps ogam_rom_caps;
 };

like, look at all those lil : 1 bitfields β€” one bit each, main character energy fr fr πŸ‘‘


πŸ¦‹ Members πŸ¦‹

every single member, bestie, in order, no skips:

  • dcn_arch β€” all DCE generations treated the same πŸ’«
  • input_lut_shared β€” shared with DGAM. the Input LUT is different than most LUTs β€” it's just a plain 256-entry lookup πŸ‘€
  • icsc β€” input color space conversion 🌈
  • dgam_ram β€” programmable degamma LUT πŸ’œ
  • post_csc β€” post color space conversion, before gamut remap ✨
  • gamma_corr β€” degamma correction πŸŽ€
  • hw_3d_lut β€” 3D LUT support. it implies a shaper LUT before it. it may be shared with MPC by setting the mpc:shared_3d_lut flag πŸ”₯
  • ogam_ram β€” programmable out/blend gamma LUT 🌸
  • ocsc β€” output color space conversion πŸ¦‹
  • dgam_rom_for_yuv β€” pre-defined degamma LUT for YUV planes πŸ“
  • upsp_pre_scaler β€” the ability to upsample 420/422 before scaling ⭐
  • dgam_rom_caps β€” pre-defined curve caps for degamma 1D LUT 🧚
  • ogam_rom_caps β€” pre-defined curve caps for regamma 1D LUT πŸ’–

πŸ“ Note πŸ“

lowkey important: hdr_mult and gamut remap (CTM) are always available in DPP β€” and yeah, in that order πŸ’…

πŸ‘€ SEE ALSO πŸ‘€

these all live in the kernel file ./drivers/gpu/drm/amd/display/dc/dc.h β€” go read them, iykyk:


okay that's the whole vibe check πŸ’– this page came from ./drivers/gpu/drm/amd/display/dc and it's dated October 2026 β€” periodt, go slay some color pipelines 🫢✨

πŸ“¦ where this page comes from