Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Issue occurs only on Wayland (as X11 does not even allow higher refresh rates on the internal screen)
Bug summary
Hi. I own a brand new Lenovo Yoga Pro 9 14IRP8.
External monitor: Connected via DP to a Thunderbolt-3 Dock to the notebook -> 3440x1440x144
Internal monitor: Allows up to 3072x1920x120 (but I'm running it at 1920x1200
Whenever I try to activate 120hz on the internal screen, there is extreme stuttering on it (like really 2-3 frames per second - see the attached video):
@qdrop, Can you please add "drm.debug=0x1e log_buf_len=2M" into your kernel parameters and provide dmesg here? Also would it be possible to try with latest drm-tip?
Thank you for the log. Yes, dmesg already helps me in understanding your problem. Can you please try setting i915.psr_safest_params=1 kernel parameter together with i915.enable_psr=1 to see if that helps on your issue?
Alright; I have set the parameters accordingly; the issue is fixed too this way. But I experience some flickering on the internal screen now. All couple of minutes. It's not very bad but I can notice it.
How can I continue supporting you in narrowing down the issue?
I have also uploaded fix candidate into trybot. Addition to my previous request if you have time you could also test that one:
https://patchwork.freedesktop.org/series/118018/
Thank You in advance.
-> This did not work without i915.enable_psr=0: The issue with the stuttering remained
Please note that I did not build the Nvidia-Driver (for these kernels) - it did fall back to nouveau. But as I'm only using the Intel iGPU for rendering my DE I don't think this has anything to do with our issue.
It seems to work; but I tried (by chance) to activate the mirroring mode for my two screens (internal & external) and the issue returned on the internal screen and after a couple of seconds the system froze entirely. I was not even able to switch to a TTY shell.
Yes, it does not matter whether the external screen is attached or not: The stuttering persists on the internal screen. The external screen works properly.
Ok, it seems the fast wake aux sync adjustment didn't fix your issue after all. Thank you for testing these again.
"Whenever I try to activate 120hz on the internal screen, there is extreme stuttering on it": Is there any difference if you try to use 120Hz from the boot already? I.e. set it to 120Hz and then reboot the machine.
No, I've been using the 120hz setting for all of my recent tests. Please note, however, that when I reboot my computer, GDM3 (login / display manager) renders at 60hz. The screen settings are only applied after logging in / starting the Wayland session.
@qdrop, thank you again for you support here. Can you please provide me PSR2_CTL and DDI_AUX_CTL register values from the setup where you can reproduce the issue (i.e. drm-tip with i915.enable_psr=1 and without i915_psr_safest_params=1)? You can obtain the values by install intel-gpu-tools and then use intel_reg tool from command line:
wow, I think I assumed something wrong (I know, assuming is dangerous ;-)): i915.enable_psr=1 and no parameter equals the same / the default value. But apparently I was wrong:
Setting i915.enable_psr=1 (without i915_psr_safest_params=1) leads to a working system.
Setting i915.enable_psr=0 (without i915_psr_safest_params=1) leads to a working system.
Not setting i915.enable_psr at all (without i915_psr_safest_params=1) leads to the issues.
Not setting i915.enable_psr at all and setting i915_psr_safest_params=1 leads to a working system.
I'm currently running 6.3.5-200.fc38.x86_64. Doing this in the default config (without setting i915.enable_psr at all) works properly.
[qdrop@qdrop-fedora-pro9i ~]$ sudo intel_reg read 0x64010 0x60900Warning: register spec not found in '/usr/share/igt-gpu-tools/registers'. Using builtin register spec. (0x00064010): 0x2c2002ff (0x00060900): 0x80004a26
@qdrop, thank you for your response. Based on AUX_CTL value you are not using latest drm-tip. Seems to be still using old value for fast wake sync pulse count (24 pulses). We should expect seeing "(0x00064010): 0xXXXXX23f"
Please try to boot latest drm-tip with i915.enable_psr=1 and without i915_psr_safest_params=1. Ensure you are seeing the issue and then take the register snapshots using following spell:
output will ensure you have booted the right kernel and your kernel parameters are as expected. Thank you in advance.
Setting i915.enable_psr=1 (without i915_psr_safest_params=1) leads to a working system.
Setting i915.enable_psr=0 (without i915_psr_safest_params=1) leads to a working system.
Not setting i915.enable_psr at all (without i915_psr_safest_params=1) leads to the issues.
Not setting i915.enable_psr at all and setting i915_psr_safest_params=1 leads to a working system.
These are somehow conflicting. Maybe you could recheck and on every boot ensure you environment is as assumed by checking used kernel and it's cmdline:
uname -r && cat /proc/cmdline
If Fedora have disabled PSR by default in their kernel by setting enable_psr default as 0 might do some tricks to us here...
@qdrop, thank you. This seems to have now "(0x00064010): 0xXXXXX23f". Can you please still provide me output of "uname -r && cat /proc/cmdline" with same setup except leave that i915.enable_psr=1 out. I.e. the problematic setup.
@qdrop , thank you again. Now it seems to be as expected. I.e. 0x64010 being 0xXXXXX23f. With this setup could you please take dmesg and attach it here. Please ensure you have again "drm.debug=0x1e log_buf_len=2M" in your kernel command line.
Alright, I downloaded the .patch-file, applied it to the same drm-tip sources, rebuild the kernel and modules, installed them, added the same arguments to the cmdline, rebooted and piped dmesg into this file:
@qdrop , Unfortunately debug traces I added are not visible in the attached dmesg. I'm expecting seeing "Calculated io wake lines = X", "Calculated fast wake lines = X" and "EDP_PSR2_CTL = 0xXXXXX" traces in the logs. I see build stamp is today, maybe something else went wrong?
@qdrop , thank you very much! Can you please apply https://patchwork.freedesktop.org/series/119436/ on top of previous patch. Then test if you can still see stuttering. Also please capture dmesg again and attach here. Keep kernel command line as it was with previous dmesg capture.
@qdrop, yes it is. Thank you very much for your help here. I will send the patch out. Do you mind adding your Tested-by tag there? What email address shall I use?