class PipeScalerControlSkylake
Defined at line 39 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
PS_CTRL (Pipe Scaler Control) for Skylake / Kaby Lake
A Pipe Scaler can be used to scale the output of a display pipe or a display
plane. It can scale up / down the resolution and / or scale up the
downsampled chroma pixels or subplanes (for YUV images).
Pipe A and B has two scalers, and Pipe C has one scaler. Each scaler can
operate on the output of the entire pipe, or on the output of any of its
universal planes (but not the cursor plane).
This register is double buffered. See PipeScalerWindowSize for arming and
dis-arming double-buffer updates.
This register has bits that are reserved but not MBZ (must be zero). So, it
can only be safely updated via read-modify-write operations.
Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 2 Pages 647-650
Skylake: IHD-OS-SKL-Vol 2c-05.16 Part 2, Pages 640-643
Public Members
field_is_enabled_48
field_mode_65
field_scaled_plane_index_81
field_filter_selection_107
static const uint32_t kBaseAddr
static const uint32_t kMinSrcSizePx
static const uint32_t kMaxSrcWidthPx
static const uint32_t kPipeABScalersAvailable
static const uint32_t kPipeCScalersAvailable
static const float k7x5MaxRatio
static const float kDynamicMaxRatio
static const float kDynamicMaxVerticalRatio2049
Public Methods
template <, >
typename SelfType::ValueType is_enabled ()
Enables the scaler.
Before enabling the scaler, software should make sure that the scaler
configuration fulfills all constraints as specified in PS_CTRL register
documentation.
Defined at line 48 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
SelfType & set_is_enabled (typename SelfType::ValueType val)
Enables the scaler.
Before enabling the scaler, software should make sure that the scaler
configuration fulfills all constraints as specified in PS_CTRL register
documentation.
Defined at line 48 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
ScalerMode mode ()
Defined at line 65 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
SelfType & set_mode (ScalerMode val)
Defined at line 65 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
typename SelfType::ValueType scaled_plane_index ()
Selects the index of the plane where the output is scaled. An index of 0
indicates that the output of the whole pipe is scaled.
The value of `scaled_plane_index` must not exceed the number of
planes (excluding cursor plane) supported by the pipe. On Kaby Lake and
Skylake, each pipe has 3 non-cursor planes.
The caller must guarantee that the plane / pipe fulfills all the
constraints below:
- The input size of the pipe / plane must be at least 8 scanlines.
- IF (Interlaced fetch) mode must be disabled.
- Keying can only be enabled if the scaling factor is 1.
- The pixel format must not be 8-bit indexed or XR_BIAS.
- Floating point source pixel values must be within the [0.0, 1.0] range.
Defined at line 81 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
SelfType & set_scaled_plane_index (typename SelfType::ValueType val)
Selects the index of the plane where the output is scaled. An index of 0
indicates that the output of the whole pipe is scaled.
The value of `scaled_plane_index` must not exceed the number of
planes (excluding cursor plane) supported by the pipe. On Kaby Lake and
Skylake, each pipe has 3 non-cursor planes.
The caller must guarantee that the plane / pipe fulfills all the
constraints below:
- The input size of the pipe / plane must be at least 8 scanlines.
- IF (Interlaced fetch) mode must be disabled.
- Keying can only be enabled if the scaling factor is 1.
- The pixel format must not be 8-bit indexed or XR_BIAS.
- Floating point source pixel values must be within the [0.0, 1.0] range.
Defined at line 81 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
FilterSelection filter_selection ()
Defined at line 107 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
template <, >
SelfType & set_filter_selection (FilterSelection val)
Defined at line 107 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
Enumerations
enum ScalerMode
| Name | Value |
|---|---|
| kDynamic | 0b00 |
| k7x5 | 0b01 |
| kNv12 | 0b10 |
Defined at line 50 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
enum FilterSelection
| Name | Value |
|---|---|
| kMedium | 0b00 |
| kMedium2 | 0b01 |
| kEdgeEnhance | 0b10 |
| kBilinear | 0b11 |
Defined at line 83 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h