Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Screen flicker on mixed refresh rate external monitor setup #7177

Closed
J0nnyMak0 opened this issue Sep 19, 2022 · 4 comments
Closed

Screen flicker on mixed refresh rate external monitor setup #7177

J0nnyMak0 opened this issue Sep 19, 2022 · 4 comments
Labels
bug Not working as intended

Comments

@J0nnyMak0
Copy link
Contributor

J0nnyMak0 commented Sep 19, 2022

I'm connected to 4 external monitors via DP 1.4. The dock only supports 3 monitors @60Hz resulting in the fourth display to be @30Hz. With this setup, I'm seeing the screens flicker (go black for a moment) randomly (not all together). If I force all four monitors to @30Hz then the flicker is gone. WLR_DRM_NO_MODIFIERS=1 doesn't make any difference. Setting adaptive_sync on doesn't help either. Strangely adaptive sync only gets enabled for the @30Hz monitor, even though all monitors have freesync enabled. It would be nice to get rid of the flicker without having to drop all monitors to @30Hz. Nothing in debug log/dmesg/journalctl. I'm using sway built with latest sources.

Edit: Just wanted to add all 4 external monitors are identical.

@J0nnyMak0 J0nnyMak0 added the bug Not working as intended label Sep 19, 2022
@zDEFz
Copy link

zDEFz commented Sep 23, 2022

I had flicker too. But for me what helped was to change the gpu mem clock to a higher default one on a AMD 6950xt

@J0nnyMak0
Copy link
Contributor Author

I had flicker too. But for me what helped was to change the gpu mem clock to a higher default one on a AMD 6950xt

Is there a kernel parameter to set for the amd driver, if I may ask?

@zDEFz
Copy link

zDEFz commented Sep 27, 2022

I had flicker too. But for me what helped was to change the gpu mem clock to a higher default one on a AMD 6950xt

Is there a kernel parameter to set for the amd driver, if I may ask?

No. Kernel parameters didn't allow me to change clocks. Instead I pin clocks so the lowest memclock is never used. Avoid using the lowest memclock with multiple monitors. You can check on AMD, with 'cat /sys/class/drm/card0/device/pp_dpm_mclk'

Here is how I pinned my GPU to never use the 97MHz clock (lowest)
https://github.com/zDEFz/os-base-configurations/blob/main/arch/config/scripts/functions/fixes

One important thing to remember is, you want to run the service the last ! So make sure it runs after your Display Manager. In my case that was emptty. Because otherwise the value is simply not applied, as there is some kind of race condition.

@J0nnyMak0
Copy link
Contributor Author

Thanks for the reply. In my case, the gpu seems to not be using the lowest clock anyway. Still there is flicker. I was only able to get rid of the flicker by connecting 3 monitors directly to the laptop and one to the dock.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Not working as intended
Development

No branches or pull requests

2 participants