Bug 101026

Summary: RX 550 HDMI 4k 60fps not working, DisplayPort is.
Product: DRI Reporter: Liam Murphy <liammurphy>
Component: DRM/AMDgpuAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: high CC: fdsfgs
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Liam Murphy 2017-05-13 00:08:32 UTC
Hello everyone,

Please let me know what logs/command outputs I can give, not sure what would help you all out.

I recently bought an AMD RX 550, first GPU with the Polaris architecture (so I assume growing pains here), and am experiencing a bug where HDMI at 4k 60 fps is not working, but DisplayPort does. 

HDMI 4k60fps is working for me under Windows, so to me it's safe to say this is a Mesa problem. 

This was happening on Mesa 17.0.5 and 17.2 git on OpenSUSE Tumbleweed, in addition to Mesa 17 on Ubuntu 17.04.
Comment 1 Harry Wentland 2017-05-15 13:40:49 UTC
Hi Liam,

I haven't tried it myself but I don't think this will work with the upstream amdgpu driver. You can try Alex's amd-staging-4.9 or amd-staging-4.11 trees and enable CONFIG_DRM_AMD_DC to get support for our new display driver which is not upstream yet. That should give you support for 4k60 over HDMI.

I don't think Mesa has anything to do with this.

Cheers,
Harry
Comment 2 dwagner 2017-08-22 20:18:29 UTC
I just wanted to mention here that I currently use an RX 460 GPU to drive an HDMI display at 3840x2160 60Hz, this became possible some time ago when DC code was merged into the open source amdgpu driver. (BTW: HDMI audio also works for me.)

I use a kernel compiled from https://cgit.freedesktop.org/~agd5f/linux/log/?h=amd-staging-drm-next as of "commit  94097b0f7f1bfa54b3b1f8b0d74bbd271a0564e4".

So I think this bug-report could be closed with "works with bleeding edge amdgpu version, now".
Comment 3 dwagner 2017-08-22 20:26:01 UTC
One more cosmetic note: Despite HDMI 2 modes with up to 600MHz working fine for me, now, log messages emitted still talk about "max TMDS clock 300MHz", but other messages and the display clearly indicate that in fact up to 600MHz are in use.
Comment 4 Harry Wentland 2017-08-23 18:32:59 UTC
Do you mind posting the logs? We might just need to cleanup the messages (i.e. not print them).
Comment 5 dwagner 2017-08-23 21:41:43 UTC
Sure can do: This I find in Xorg.0.log:

[    36.956] (--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
[    36.956] (II) AMDGPU(0): Printing probed modes for output HDMI-A-0
[    36.956] (II) AMDGPU(0): Modeline "3840x2160"x60.0  594.00  3840 4016 4104 4400  2160 2168 2178 2250 +hsync +vsync (135.0 kHz eP)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x60.0  594.00  4096 4184 4272 4400  2160 2168 2178 2250 +hsync +vsync (135.0 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x50.0  594.00  4096 5064 5152 5280  2160 2168 2178 2250 +hsync +vsync (112.5 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x59.9  593.41  4096 4184 4272 4400  2160 2168 2178 2250 +hsync +vsync (134.9 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x30.0  297.00  4096 4184 4272 4400  2160 2168 2178 2250 +hsync +vsync (67.5 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x25.0  297.00  4096 5064 5152 5280  2160 2168 2178 2250 +hsync +vsync (56.2 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x24.0  297.00  4096 5116 5204 5500  2160 2168 2178 2250 +hsync +vsync (54.0 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x30.0  296.70  4096 4184 4272 4400  2160 2168 2178 2250 +hsync +vsync (67.4 kHz e)
[    36.956] (II) AMDGPU(0): Modeline "4096x2160"x24.0  296.70  4096 5116 5204 5500  2160 2168 2178 2250 +hsync +vsync (53.9 kHz e)
[    36.956] (II) AMDGPU(0): Output HDMI-A-0 using initial mode 3840x2160 +0+0
... and also later...
[   133.973] (--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
...
[   152.286] (--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
... 
etc., seemingly as often as the EDID is re-read/re-considered.

From the first parameter of the Modelines one can already see that modes with 594.00 MHz clock are found, and indeed, the "3840x2160" mode at 60Hz is used, as both xrandr and the connected display report:

HDMI-A-0 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
   3840x2160     60.00*+  50.00    59.94    30.00    25.00    24.00    29.97    23.98
Comment 6 Alex Deucher 2017-08-24 02:23:16 UTC
(In reply to dwagner from comment #5)
> ... and also later...
> [   133.973] (--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
> ...
> [   152.286] (--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
> ... 
> etc., seemingly as often as the EDID is re-read/re-considered.
> 

The message is from the xserver, not the driver.  It's warning you because the clock for the mode exceeds the max TMDS clock as stated by the EDID.
Comment 7 dwagner 2017-08-24 20:54:42 UTC
(In reply to Alex Deucher from comment #6)
> (In reply to dwagner from comment #5)
> > [   133.973] (--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
> 
> The message is from the xserver, not the driver.  It's warning you because
> the clock for the mode exceeds the max TMDS clock as stated by the EDID.

Hmmm - when I "cat /usr/lib/firmware/edid/LG_EG9609_edid.bin | parse-edid", the output contains:

  # Maximum pixel clock is 600MHz

Does the xserver have its own, flawed EDID parser?
Comment 8 Alex Deucher 2017-08-24 21:42:38 UTC
(In reply to dwagner from comment #7)
> 
> Does the xserver have its own, flawed EDID parser?

Yes, the xserver has it's own edid parser.
Comment 9 dwagner 2017-08-24 22:20:50 UTC
Ok, then nothing left to fix for this report, it seems.
@Liam Murphy: Good to close this report then?
Comment 10 Martin Peres 2019-11-19 08:16:31 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/168.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.