Post Reply
AMD/ATI Pixel Clock Patcher
02-03-2025, 04:18 AM
Post: #1261
RE: AMD/ATI Pixel Clock Patcher
(02-03-2025 02:42 AM)zemetrix Wrote:  What do you mean it doesn't need it? Shouldn't it have to remove the 165 MHz pixel clock limit? RX 7600 user here and still can't go higher than 165MHz on default Sad
Please explain HuhConfused
165 MHz limit with what? The RX 7600 doesn't have DVI, and HDMI 1.4 already supports up to 340 MHz.
Find all posts by this user
Quote this message in a reply
04-20-2025, 03:28 PM (Last edited: 04-20-2025, 03:32 PM by katapaltes)
Post: #1262
RE: AMD/ATI Pixel Clock Patcher
(08-06-2024 04:00 PM)ToastyX Wrote:  This will probably be the last major update since my Polaris card is dying, and I had to dig up two old monitors to find all the limits again.

What's your secret? Mine won't die even when I try to kill it! Wink

I got a former mining Sapphire RX 470 from eBay that turned out to be DOA. In the end, I spent more fixing it just for fun than the card was worth, and I used atikmdag-patcher along the way. In the end, I modded the BIOS to report that it's an RX 580, so atikmdag-patcher is no longer *strictly* needed. However, it only has a DVI port, so 4k is out of reach without atikmdag-patcher. Smile Something funny, though.. I previously could only get 4k at *30Hz* with atikmdag-patcher (1.4.14?). Something changed with Windows, my TV's firmware, the HDMI cable... I don't know. But now I get 4k at *60Hz*. Your software truly is dark magic.

My humorous journey can be found by doing an Internet search for "rx 470 zombie edition" on techpowerup. Cheers!
Find all posts by this user
Quote this message in a reply
05-02-2025, 09:15 PM (Last edited: 05-02-2025, 09:33 PM by galkinvv)
Post: #1263
RE: AMD/ATI Pixel Clock Patcher
In short: for overlocking Dual-link DVI on linux+Polaris GPU - confirmed that appending amdgpu.dc=0 to the kernel command line helps.

Detailed:
(07-30-2022 11:38 PM)Mangix Wrote:  
(07-23-2022 11:29 PM)Mangix Wrote:  while this is a windows tool, have you looked into the open source amdgpu driver on linux? I'm currently overclocking by flashing the EDID. The highest I've gotten on my QX2710 monitor is 84.40Hz (pixel clock 339.999). I see there's code for > 340Mhz pixel clock but I can't really make sense of it.
For future reference: amdgpu with DC disabled has no pixel clock limit for dual link DVI. DC I believe limits it to 340MHz. Will test the latter somewhat soon.

I tried overclocking to 100Hz but the monitor errored with out of range error. No too sure why. The highest so far I've been able to do with my QX2710LED is
Code:
DTD 3:  2560x1440   99.736890 Hz  16:9    145.217 kHz    394.990000 MHz (640 mm x 360 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback    8 Vpol N
I don't know if the limit is the refresh rate (less than 100) or the pixel clock (less than 395MHz). Haven't looked at the DRM code enough.

I've performed some investigation & code diving on the linux kernel version 6.14 limits of the amdgpu driver with a Polaris card.

Confirming the stated above: the are different limits with the Display Core handling enabled (default) and disabled - via legacy only-pre-navi-code activated with extra kernel command line agrument amdgpu.dc=0
Those legacy code variant for TDMS (DVI&HDMI) limits is in the amdgpu_connector_dvi_mode_valid function - https://github.com/torvalds/linux/blob/v...rs.c#L1198

For example it does not impose any limit on dual-link DVI, and linkwise it succesfully output picture to my Dual-Link monitor connected to Polaris at 411 MHz pixelclock
Code:
DTD 5:  2560x1440  104.998723 Hz  16:9    152.248 kHz    411.070000 MHz (597 mm x 336 mm)
                 Hfront   48 Hsync  32 Hback   60 Hpol P
                 Vfront    3 Vsync   5 Vback    2 Vpol N

(physically the in-monitor chip seems to overheat since artifacts start appearing after a minute, regardless of the GPU, but thats not related to this discussion).

But by default (without specifying the amdgpu.dc=0) another code branch is executed even for Polaris - the function chain dce110_link_encoder_validate_output_with_stream dce110_link_encoder_validate_dvi_output in https://github.com/torvalds/linux/blob/v...der.c#L711

For same example case with dual-link monitor - it does impose the 330Mhz limit (as TMDS_MAX_PIXEL_CLOCK*2 = 165*2).

I'm not familiar if any non-DVI limits exists on Navi GPUs, but if they are present - they are encoded here in dcn10_link_encoder_validate_output_with_stream https://github.com/torvalds/linux/blob/v...der.c#L781
So, for default setting the limit calculation for Polaris and for Navi are done in different functions. And as far as I remember this /amd/display/dc subfolder resembles code that AMD shares between platforms. It should be ~corresponding to the windows driver code.
Find all posts by this user
Quote this message in a reply
 Post Reply


Forum Jump:


User(s) browsing this thread: 6 Guest(s)