I am using a Nvidia Jetson Xavier NX Developer Kit with Jetpack 4.5.1.
I want to code some data on the RGB values, so I need to be able to set specific color values and receive them from the Jetson’s output exactly as I set.
After I tried to do some testing I found color values that are drifted by 1, for example:
When I set a full screen with the following color:
R = 12, G = 12, B = 12
I receive:
R = 11, G = 11, B = 11
For receiving the output, I am using a frame grabber, which I tested with PC output with the same values and received them as expected.
I configured the output to be a full color range for RGB in xorg.conf file:
echo 0 | sudo tee /sys/class/graphics/fb0/device/cmu_enable
echo 1 | sudo tee /sys/kernel/debug/tegradc.common/tegra_win.0/degamma/force_user_degamma
And it fixed the issue at the HDMI output.
But I need to use Display Port output and these commands don’t do anything at the DP output:
meaning the value of cmu_enable and force_user_degamma changed, but there isn’t any influence on the color values.
I tried to find in Xavier TRM another registers for DP, but no luck.
So i have 2 questions:
You’re right, the DP is on fb1. So i tried to change the command to fb1, aka:
echo 0 | sudo tee /sys/class/graphics/fb1/device/cmu_enable
echo 1 | sudo tee /sys/kernel/debug/tegradc.common/tegra_win.0/degamma/force_user_degamma
After the first command (writing “0” to cmu_enable of fb1) the screen became darker, exactly like it was with HDMI after the first command (writing “0” to cmu_enable of fb0).
But after the second command nothing changed, the screen stays darker than usual and the value of the pixels is still different from the expected.
And i returned to the regular xorg.conf file without full range coding (and in DP output i see full range colors as you wrote) and repeat the process below and got the same results.
The nvdisplay is using win-mask to assign the 6 windows to each display controller.
Each window is labeled as A~F. On NX devkit, with the default device tree setting, window ABC are assigned to head1 while DEF are assigned to head 2 because there are only 2 heads on NX devkit.
Thus, for DP, you can start to change tegra_win_3. Or you can just configure all of them at once to make sure the right one is really gets changed by you.