# 4k@60 FPS on HDMI

**URL:** <https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257>\
**Category:** Jetson AGX Xavier\
**Tags:** hdmi\
**Created:** [March 26, 2020, 3:48pm UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257 "2020-03-26T15:48:13Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![coriolan](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@coriolan](https://forums.developer.nvidia.com/u/coriolan)\
**Post date:** [March 26, 2020, 3:48pm UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/1 "2020-03-26T15:48:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [March 27, 2020, 5:12am UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/3 "2020-03-27T05:12:03Z")

</div>

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](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.

---

<div class="post-metadata">

**Author:** ![coriolan](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@coriolan](https://forums.developer.nvidia.com/u/coriolan)\
**Post date:** [March 30, 2020, 5:25pm UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/4 "2020-03-30T17:25:02Z")

</div>

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](https://forums.developer.nvidia.com/uploads/short-url/4AMqY1g8KruvfDzFohewhOnGFqO.log) (248.8 KB)

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [March 31, 2020, 3:49am UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/5 "2020-03-31T03:49:15Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![coriolan](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@coriolan](https://forums.developer.nvidia.com/u/coriolan)\
**Post date:** [March 31, 2020, 10:12am UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/6 "2020-03-31T10:12:36Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![snarky](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/snarky/32/10446_2.png) [@snarky](https://forums.developer.nvidia.com/u/snarky)\
**Post date:** [March 31, 2020, 9:29pm UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/7 "2020-03-31T21:29:07Z")

</div>

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: [Jetson TX2/r28 Display debug - eLinux.org](https://elinux.org/Jetson_TX2/r28_Display_debug)

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [April 1, 2020, 2:58am UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/8 "2020-04-01T02:58:18Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![TomNVIDIA](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/tomnvidia/32/14181_2.png) [@TomNVIDIA](https://forums.developer.nvidia.com/u/TomNVIDIA)\
**Post date:** [October 18, 2021, 6:22pm UTC](https://forums.developer.nvidia.com/t/4k-60-fps-on-hdmi/117257/10 "2021-10-18T18:22:56Z")

</div>


