AMD 7700s dGPU DP issue with 4k@60-144hz (updated title)

I was playing a game (Borderlands 4) with an external 4k monitor. The game’s performance issues aside, I noticed something really weird. If I played the game with my monitor set to 4k, but the in-game render resolution set to 1080p, I would get about 30fps. If I set my monitor to 1080p and kept the game at 1080p, i.e., as far as the game is concerned nothing has changed, my frame rate goes to 60fps. In-game upscaling features disabled.

Anyone know why this might be happening?

System information:
Framework 16 w/ AMD 7700s dGPU

Fedora Linux, up-to-date

Compositor in-use: gamescope (up scaling disabled for the sake of this test)

Display plugged in via dGPU’s dedicated usb-c port.

What speed is the 4k monitor running at when you have it set to 4k? I suspect it’s 30Hz.

It’s set to 144hz (validated on OS settings and on monitor’s internal menu), but that was a good guess.

Edit: I’ve seen an issue on my steam deck where a dock will allow me to select 4k120hz but it actually only runs at 40hz despite steamos and the monitor thinking otherwise. Perhaps something similar is going on here with the FW DP adapter. I’ll try 4k@60 and see if that has the same performance killer.

This is very possible. I know that some adapters will still run at a slower rate if higher is not supported even if (for example) kde settings are selected at a higher rate. “kscreen-doctor -o” might show the correct speed, but I am really not sure about that. My monitors have a built-in hz display I can enable that will show the actual speed they are running at in the top right of the screen. Useful for when I am testing adaptive sync.

Also, there are websites out there that can show moving patterns and images for the purpose of testing refresh rates. Give those a test.

Ok, I did some more testing around this. It appears that I can only reproduce the issue when connecting the display via the dGPU’s direct connection, and it is present in both 4k@60hz and 4k@144hz modes. However, if I either connect the display port card to the motherboard/regular ports or use an external dock that uses one of the regular video out compatible usb-c ports, then the issue isn’t present. Interestingly, I also seem to have gained free-sync support once I switched off of the the dGPU’s usb-c adapter.

I actually prefer the non-dedicated ports personally, so I’ll just use those and avoid the dGPU direct one. I thought the mobo usb-c connections only went to 4k@60 for some reason, but it was working just fine so… I guess not? Granted, I was utilizing free-sync and getting sub 60 fps total.

To me, it sounds like you might not be using the correct GPU for rendering. Can you check utilization using something like nvtop over ssh?

That would certainly decrease the framerate, yeah. I used mangohud to validate that the 7700s was the rendering device, as well as Frameworks suggested DRI device filters for semi-forcing it to the 7700s.