Display Scaling#
NVIDIA DriveOS supports a variety of downscaling configurations; it is possible to issue flip requests that contain surfaces larger than the display region they occupy. For example, in a 1920x1080 60Hz mode, a flip can be issued with a 1920x1080 surface and 2x horizontal and vertical downscaling. This results in a 960x540 rendition of the surface being displayed.
The downscaling is specified implicitly by the sizeIn and sizeOut members of the NvKmsFlipCommonParams struct. The ratio between sizeIn and sizeOut in each direction indicates the downscaling factor in each direction. The downscaling in each direction should not exceed 4x. Additionally, only FULL windows support scaling; LITE windows do not support scaling, so the sizeIn and sizeOut values should match for LITE windows.
Determining Scaling Configuration Possibilities#
To check if a scaling configuration is possible:
Prepare a
.jsonfile and use the"input"and"output"fields of each window to implicitly specify the scaling. For details about configuring the.jsonfile, see Static IMP.Attempt to generate the DT files with the
laptsa-imptool, for example:$ laptsa-imp t264 impdt:linux display-config.json
If this fails, the input scaling configuration is not possible. For details about using the
laptsa-imptool, see Static IMP.Check that the
hub-clock-khzanddisp-clock-khzvalues do not exceed the maximum values as specified by the relevant power profile in Hub and Disp Clock Frequencies Table. If either value exceeds the maximum, the input scaling configuration is not possible.
The output of the laptsa-imp tool should be used as the static IMP, but the default static IMP should be able to support any possible scaling configuration.
Display Scaling Reference#
Platform |
Power Profile |
Maximum Hub Clock Frequency (KHz) |
Maximum Disp Clock Frequency (KHz) |
|---|---|---|---|
Thor |
ES |
N/A |
540000 |
Thor |
1080 |
N/A |
540000 |
Thor |
1090 |
N/A |
540000 |
Input |
Output |
Mode |
|---|---|---|
1 1920x1080 window |
1 960x540 window |
1920x1080 @60Hz |
1 1920x1080 window |
1 480x270 window |
1920x1080 @60Hz |
1 3840x2160 window |
1 1920x1080 window |
1920x1080 @60Hz |
1 3848x2168 window |
1 1920x1080 window |
1920x1080 @30Hz |
1 3840x4320 window |
1 1920x2160 window |
3840x2160 @30Hz |
4 1920x1080 windows |
4 960x540 windows |
1920x1080 @30Hz |
4 1920x1080 windows |
4 960x540 windows |
1920x1080 @60Hz |
4 3840x2160 windows |
4 1920x1080 windows |
3840x2160 @30Hz |