class PlaneColorControl

Defined at line 155 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

PLANE_COLOR_CTL (Plane Color Control)

This register is not documented on Kaby Lake or Skylake. On that hardware,

some of the fields here are located in the PLANE_CTL register.

All reserved bits are MBZ (must be zero), so this register can be written

safely without reading it first.

Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev2.0 Part 2 pages 627-735

Public Members

 field_RsvdZ_159
 field_pipe_gamma_enabled_deprecated_165
 field_yuv_offset_preserved_173
 field_yuv_range_correction_disabled_183
 field_RsvdZ_185
 field_pipe_csc_enabled_deprecated_193
 field_csc_enabled_198
 field_plane_input_csc_enabled_203
 field_csc_mode_220
 field_RsvdZ_222
 field_post_csc_gamma_multi_segment_enabled_227
 field_pre_csc_gamma_enabled_230
 field_post_csc_gamma_disabled_233
 field_gamma_mode_254
 field_gamma_multiplier_format_266
 field_RsvdZ_268
 field_alpha_mode_273
 field_RsvdZ_275
static const uint32_t kBaseAddr

Public Methods

template <, >
typename SelfType::ValueType pipe_gamma_enabled_deprecated ()

If true, pipe-level gamma correction is enabled for the plane's pixel data.

This field is documented as deprecated in favor of the "Post CSC Gamma

Enable" field in the Pipe-specific GAMMA_MODE register.

Defined at line 165 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_pipe_gamma_enabled_deprecated (typename SelfType::ValueType val)

If true, pipe-level gamma correction is enabled for the plane's pixel data.

This field is documented as deprecated in favor of the "Post CSC Gamma

Enable" field in the Pipe-specific GAMMA_MODE register.

Defined at line 165 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_yuv_offset_preserved (typename SelfType::ValueType val)

If false, the plane removes UV offsets for YUV formats without YUV/RGB CSC.

This field is used when the plane's source pixel format is a YUV format,

and plane-level YUV to RGB CSC (Color Space Conversion) is disabled. If

the field is true, 1/2 offsets on the U and V components are preserved.

If the field is false, 1/2 offsets are removed.

Defined at line 173 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType yuv_offset_preserved ()

If false, the plane removes UV offsets for YUV formats without YUV/RGB CSC.

This field is used when the plane's source pixel format is a YUV format,

and plane-level YUV to RGB CSC (Color Space Conversion) is disabled. If

the field is true, 1/2 offsets on the U and V components are preserved.

If the field is false, 1/2 offsets are removed.

Defined at line 173 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_yuv_range_correction_disabled (typename SelfType::ValueType val)

If true, plane-level YUV range correction logic is disabled.

Range correction expands YUV components from compressed ranges to the full

range of values. The 8-bit compressed ranges are +16 to +235 for the Y

component, and -112 to +112 for the U and V components.

This field is only effective when the plane has a YUV source pixel format.

RGB pixel formats always bypass range correction.

Defined at line 183 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType yuv_range_correction_disabled ()

If true, plane-level YUV range correction logic is disabled.

Range correction expands YUV components from compressed ranges to the full

range of values. The 8-bit compressed ranges are +16 to +235 for the Y

component, and -112 to +112 for the U and V components.

This field is only effective when the plane has a YUV source pixel format.

RGB pixel formats always bypass range correction.

Defined at line 183 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType pipe_csc_enabled_deprecated ()

If true, pipe-level CSC (Color Space Conversion) and pre-CSC gamma

correction are enabled for the plane's pixel data.

This field is documented as deprecated in favor of the "Pre CSC Gamma

Enable" field in the Pipe-specific GAMMA_MODE register, and the "Pipe CSC

Enable" field in the CSC_MODE register.

Defined at line 193 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_pipe_csc_enabled_deprecated (typename SelfType::ValueType val)

If true, pipe-level CSC (Color Space Conversion) and pre-CSC gamma

correction are enabled for the plane's pixel data.

This field is documented as deprecated in favor of the "Pre CSC Gamma

Enable" field in the Pipe-specific GAMMA_MODE register, and the "Pipe CSC

Enable" field in the CSC_MODE register.

Defined at line 193 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType csc_enabled ()

If true, planel-level CSC (Color Space Conversion) logic is enabled.

This field is only effective on planes 1-3.

Defined at line 198 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_csc_enabled (typename SelfType::ValueType val)

If true, planel-level CSC (Color Space Conversion) logic is enabled.

This field is only effective on planes 1-3.

Defined at line 198 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType plane_input_csc_enabled ()

If true, planel-level input CSC (Color Space Conversion) logic is enabled.

This field is only effective on planes 1-3.

Defined at line 203 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_plane_input_csc_enabled (typename SelfType::ValueType val)

If true, planel-level input CSC (Color Space Conversion) logic is enabled.

This field is only effective on planes 1-3.

Defined at line 203 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
ColorSpaceConversion csc_mode ()

Specifies the plane-level CSC (Color Space Conversion) mode.

This field is only effective on planes 4-7. The CSC logic in planes 1-3 is

configured by PLANE_CSC_* registers.

Defined at line 220 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_csc_mode (ColorSpaceConversion val)

Specifies the plane-level CSC (Color Space Conversion) mode.

This field is only effective on planes 4-7. The CSC logic in planes 1-3 is

configured by PLANE_CSC_* registers.

Defined at line 220 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType post_csc_gamma_multi_segment_enabled ()

If true, plane-level post-CSC gamma multi-segment processing is enabled.

This logic is intended to support HDR tone mapping.

Defined at line 227 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_post_csc_gamma_multi_segment_enabled (typename SelfType::ValueType val)

If true, plane-level post-CSC gamma multi-segment processing is enabled.

This logic is intended to support HDR tone mapping.

Defined at line 227 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType pre_csc_gamma_enabled ()

If true, plane-level pre-CSC gamma correction is enabled.

Defined at line 230 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_pre_csc_gamma_enabled (typename SelfType::ValueType val)

If true, plane-level pre-CSC gamma correction is enabled.

Defined at line 230 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
typename SelfType::ValueType post_csc_gamma_disabled ()

If true, plane-level post-CSC gamma correction is disabled.

Defined at line 233 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_post_csc_gamma_disabled (typename SelfType::ValueType val)

If true, plane-level post-CSC gamma correction is disabled.

Defined at line 233 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
GammaMode gamma_mode ()

The mode of operation of the plane's gamma correction logic.

This field is ignored if plane-level gamma correction is disabled.

Defined at line 254 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_gamma_mode (GammaMode val)

The mode of operation of the plane's gamma correction logic.

This field is ignored if plane-level gamma correction is disabled.

Defined at line 254 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
GammaMultiplierFormat gamma_multiplier_format ()

Specifies how the gamma table entries are turned into multipliers.

This field is ignored if plane-level gamma correction is not operating in

multiplication mode.

Defined at line 266 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_gamma_multiplier_format (GammaMultiplierFormat val)

Specifies how the gamma table entries are turned into multipliers.

This field is ignored if plane-level gamma correction is not operating in

multiplication mode.

Defined at line 266 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
PlaneControlAlphaMode alpha_mode ()

Selects the plane's alpha blending mode.

The registers PLANE_KEYMSK and PLANE_KEYMAX specify constant plane alpha.

Defined at line 273 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

template <, >
SelfType & set_alpha_mode (PlaneControlAlphaMode val)

Selects the plane's alpha blending mode.

The registers PLANE_KEYMSK and PLANE_KEYMAX specify constant plane alpha.

Defined at line 273 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

Enumerations

enum class ColorSpaceConversion
Name Value
kBypass 0
kYuvToRgbBt601 1
kYuvToRgbBt709 2
kYuvtoRgbBt2020 3
kRgbBt709toBt2020 4

Documented values for the `csc_mode` field.

Defined at line 206 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

enum class GammaMode
Name Value Comments
kDirect 0

The table lookup is based on pixel R, G, B component values. The output
is an interpolation of the values in the two nearest table entries.

kMultiply 1

The table lookup is based on a pseudo-luminance (L) for the pixel. An
adjustment factor (F) is computed by interpolating the entries in the two
nearest table entries. Each output component is the input component
multiplied by the adjustment factor F.
L = 0.25 * R + 0.625 * G + 0.125 * B.

This mode is intended to support HDR tone mapping.

Possible values for the `gamma_mode` field.

Defined at line 236 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

enum class GammaMultiplierFormat
Name Value
kU0_24 0
kU8_16 1

Possible values for the `gamma_multiplier_format` field.

Defined at line 257 of file ../../src/graphics/display/drivers/intel-display/registers-pipe.h

Records