4k@60 FPS on HDMI

Hello,
We have a Xavier AGX dev kit and we’ve been trying to run it on a HDMI 4K screen at 60fps, but only 4k@30 fps is shown. I’ve tried on 2 different monitors and using different cables.
xrandr only shows 30 fps at a 4K resolution.
Do you know what could be causing this?
Thanks

Hi coriolan,

Actually we have modes filter in our driver to remove some unsupported modes.
Please refer to this wiki page.

https://elinux.org/Jetson_TX2/r28_Display_debug
-> * Error log from X11

Enable more verbose log in Xorg.0.log and check if 4k@60 mode is listed in the log or not.

Hi Wayne,
I’m uploading the log here, here’s an extract of the first few lines, it looks like the 4k@60 is invalid:

[ 13.534] (WW) NVIDIA(GPU-0): Validating Mode “3840x2160_60”:
[ 13.534] (WW) NVIDIA(GPU-0): Mode Source: X Server
[ 13.534] (WW) NVIDIA(GPU-0): 3840 x 2160 @ 60 Hz
[ 13.534] (WW) NVIDIA(GPU-0): Pixel Clock : 533.00 MHz
[ 13.534] (WW) NVIDIA(GPU-0): HRes, HSyncStart : 3840, 3888
[ 13.534] (WW) NVIDIA(GPU-0): HSyncEnd, HTotal : 3920, 4000
[ 13.534] (WW) NVIDIA(GPU-0): VRes, VSyncStart : 2160, 2163
[ 13.534] (WW) NVIDIA(GPU-0): VSyncEnd, VTotal : 2168, 2222
[ 13.534] (WW) NVIDIA(GPU-0): H/V Polarity : +/-
[ 13.534] (WW) NVIDIA(GPU-0): Mode is rejected: Only modes from the NVIDIA X driver’s
[ 13.534] (WW) NVIDIA(GPU-0): predefined list and modes from the EDID are allowed
[ 13.535] (WW) NVIDIA(GPU-0): Mode “3840x2160_60” is invalid.
[ 13.535] (WW) NVIDIA(GPU-0): Validating Mode “3840x2160_60”:
[ 13.535] (WW) NVIDIA(GPU-0): Mode Source: X Server
[ 13.535] (WW) NVIDIA(GPU-0): 3840 x 2160 @ 60 Hz
[ 13.535] (WW) NVIDIA(GPU-0): Pixel Clock : 712.75 MHz
[ 13.535] (WW) NVIDIA(GPU-0): HRes, HSyncStart : 3840, 4160
[ 13.535] (WW) NVIDIA(GPU-0): HSyncEnd, HTotal : 4576, 5312
[ 13.535] (WW) NVIDIA(GPU-0): VRes, VSyncStart : 2160, 2163
[ 13.535] (WW) NVIDIA(GPU-0): VSyncEnd, VTotal : 2168, 2237
[ 13.535] (WW) NVIDIA(GPU-0): H/V Polarity : -/+
[ 13.535] (WW) NVIDIA(GPU-0): Mode is rejected: Only modes from the NVIDIA X driver’s
[ 13.535] (WW) NVIDIA(GPU-0): predefined list and modes from the EDID are allowed
[ 13.535] (WW) NVIDIA(GPU-0): Mode “3840x2160_60” is invalid.

Xorg.0.log (248.8 KB)

No, that mode has nothing to do with your monitor. The correct mode should have be from EDID.

Mode Source: EDID

Since your first mode from EDID is 4k@30, I think the kernel driver filtered out your 4k@60 mode in the beginning.

Hi Wayne,
That’s weird, how do I get the kernel to not filter it?
Thanks

The monitor is telling the Jetson, in hardware, that this is the best mode it supports.
You should make your monitor report the modes that it supports in its EDID information. Some monitors may be able to update their firmare through USB. Many other monitors can’t actually be updated.
“xrandr” may often be able to override the monitor’s ROM information EDID on desktop Linux systems, but the NVIDIA Jetson graphics driver does not allow this overriding capacity.
There is a special flag you can set and recompile the kernel to change the driver to allow an override, though: https://elinux.org/Jetson_TX2/r28_Display_debug

Unfortunately, when something get filtered by kernel, it means the hardware limitation rejects your monitor mode.

You could still check the mode filtered function in below kernel code.

kernel/nvidia/drivers/video/tegra/dc/hdmi2.0.c -> static bool tegra_hdmi_fb_mode_filter

You could add a printk function in the last if (!check_fb_videomode_timings(dc, mode))

This function would be called to check every timing your monitor has.