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.
Admin message
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
Project 'drm/intel' was moved to 'drm/i915/kernel'. Please update any links and bookmarks that may still have the old path.
PSR2 Selective Fetch causes underruns on Tigerlake
Basically it seems that since PSR selective fetch was enabled for Tigerlake in 7f6002e58025 ("drm/i915/display: Enable PSR2 selective fetch by default"), I'm suddenly seeing screen flickering that looks like an underrun whenever I move my cursor around on the left side of the screen (I assume cursor watermarks updating), along with seeing some underrun warnings in dmesg. Disabling selective fetch seems to fix the issue.
The system in question here is an X1 Carbon 9th Generation running Fedora Linux 35, and the problems can be reproduced with a kernel built from the latest drm-tip as of writing this. I'm using the variant of the X1 Carbon 9th gen with a 1920x1080 display as well.
It only happens when cursor goes to x=0?
Odd as HW only sends full lines but could be something not being properly programmed with cursor...
Does it happens out of lock screen?
What happens if you leave a browser window playing video close or at x=0?
Just to run out the possibility that this is a cursor only issue.
Other odd thing is the stepping, looks a production stepping.
PS: https://github.com/zehortigoza/linux/tree/upstream-psr2-new-wa branch failed to compile with following error:
In file included from ./include/asm-generic/bug.h:5,
from ./arch/x86/include/asm/bug.h:83,
from ./include/linux/bug.h:5,
from drivers/net/ethernet/netronome/nfp/bpf/jit.c:6:
In function ‘ur_load_imm_any’,
inlined from ‘jeq_imm’ at drivers/net/ethernet/netronome/nfp/bpf/jit.c:3118:13:
./include/linux/compiler.h:345:45: error: call to ‘__compiletime_assert_646’ declared with attribute error: BUILD_BUG_ON failed: (((0x0ffULL) + (1ULL << (__builtin_ffsll(0x0ffULL) - 1))) & (((0x0ffULL) + (1ULL << (__builtin_ffsll(0x0ffULL) - 1))) - 1)) != 0
345 | _compiletime_assert(condition, msg, _compiletime_assert, LINE)
Does it help? the branch that I shared in github has one additional patch to print debug information, so I know if this WA was applied in this device or not.
Setting i915.enable_psr2_sel_fetch=0 also fixes the issue for you?
I can also reproduce this now. Switched to Fedora35 and it's rather easy to reproduce. I couldn't reproduce this with Ubuntu 20.04. I'm using Dell XPS laptop.
You probably couldn't reproduce this on Ubuntu 20.04 because that version of Ubuntu is still using the Xorg display server, as opposed to Wayland on Fedora 35.
On DELL XPS 13 9310 with a Tiger Laker CPU and running Arch Linux with Gnome on Wayland, I started encountering this bug somewhere between 5.15.13 and 5.16, bisecting that brought me to find the PSR2 enabling being the culprit and this thread. Disabling it indeed fixes the problem for me. Hopefully, we'll see a fix for this upstream soon.
@lyudess, @plumerlis, @cornul11 and @mharpau, I would really appreciate for any testing support with my patch. At least on Dell XPS I'm not able to see the issue with the patch. While without the patch it's reproducing easily in my environment.
@jhogande, I have just applied this patch on 5.16.10 and the flickering seems to have disappeared. I do not notice it anymore when moving the cursor around the upper or left sides of the screen.
@jani.saarinen I'm still checking internally for the patch correctness. Thus haven't yet sent it to intel-gfx mailing list. It is currently only in intel-gfx-trybot. Yes, looks promising...