Pretty bad screen flicker

I’ve put it into the Linux subcategory so that the Linux support team and other Linux users can have a look at it and see whether or not it is an OS issue. The thread can be recategorized later on if necessary.

1 Like

so it’s been two weeks. Is this a warranty issue? Did I buy a lemon?

I video showing the problem would help a lot. Does it also flicker while in the bios screens?

1 Like

I’ll upload a video… it’s intermidant… I’ve been watching a youtube video for about 30min, no problems. But typing, opening the screen, etc causes it.

it’s not letting me upload a video. Try this?

If you haven’t opened a ticket yet, I recommend that you do.

you thinking hardware problem?

Honestly, from the video that you attached, I can’t see any flickering. Maybe it’s due to how the video is recorded. But if you open a ticket, the Linux team can help you track down the what the cause of the issue is. If it’s software, then they’ll guide you on how to fix it. If it’s hardware, then stuff that needs to be replaced will be. If you see this flickering in the BIOS, then it’s likely hardware. If not, then it’s probably software.

Hi,
From the video, I see the flicker. The bottom 1/3 of the display flickers for a very short moment.
This is caused by either a loose display cable, or a faulty display.
I would tend to blame a faulty display panel.
Raise a support ticket with FW and if they think the same, you might get a replacement panel.

Try to also get it to flicker during the bios screens.
It might also be caused by software and reproducing it in bios would prove that aspect.

1 Like

It’s REALLY intermittent but also almost a constant. Normally if I’m not touching the laptop (watching youtube) it’s fine, but if I’m typing or alt-tabing it does that. It’s nigh impossible to catch on film because of course it is. It’s also super annoying and distracting.

1 Like

Found this thread. I am having the exact issue. I just took apart the monitor and reseated the connection both at the monitor and the motherboard and it is still happening. I guess I need to open a ticket.

Do you use Firefox perhaps? Try with Chrome and see if it still happens.

Ive had a handful of bugs with Firefox recently - and only really notice the glitches when using firefox.

Update to this - disabling “hardware acceleration” in firefox seems to have resolved this for me.

If you’re on Linux, it’s a known bug. You can work around it by booting with amdgpu.abmlevel=0 amdgpu.dcdebugmask=0x410 which greatly reduced the frequency and extent of the flickering.

@knipp30, yes! I basically am noticing these glitches on Firefox and Wezterm so far. But I can also play games on my Framework with no glitching.

Where can I find more info about this? I have been experiencing multicolored glitchy bars running horizontally across my screen since September. I had hoped upgrading to Fedora 41 would resolve the issue but it did not. I even tried a fresh install with no luck.

Can you include sources as to what these parameters do? What lead you to this fix? Linux users know not to trust random “just add this, trust me bro” :slight_smile:

From another FW thread, you state:

Trying to help draw some conclusions:
amdgpu.abmlevel=0 looks to disable adaptive backlight management

But some more info can be pulled from this Reddit thread:
https://www.reddit.com/r/framework/comments/1goh7hc/comment/lwk2vv4/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

Ideally I think the better option would be to file a bug… Maybe update this bug with the testing/findings you have done thus far:

It would be ideal to have the power savings that have been implemented and not have to disable them via kernel params.

Pretty much the same problem as in this forum post: Graphical Glitches

Sorry for the delay, I missed the notification (too many e-mails!) and only came across this reply now. In order:

amdgpu.dcdebugmask=0x410

Sets an AMD Display Core debug mask. You can find documentation about the Display Core architecture here. This has been my starting point and how I tested things to exclude other more common problems.

Next, I read the documentation on amdgpu module parameters. In this page you can find:

dcdebugmask (uint)

Override display features enabled. See enum DC_DEBUG_MASK in drivers/gpu/drm/amd/include/amd_shared.h.

So, I went to the stated file in the source code. You can see the enum at line 259. Looking at this code, it looks like the amdgpu module takes a kernel parameter that can enable one ore more options from here.

Through a combination of trial-end-error and various GitLab threads, I noticed that my artifacting issues started exactly since updating my system with a kernel version new enough to have the “Panel Replay” option, and I saw that other GitLab threads already linked further up this thread suggest disabling PSR (Panel Self-Refresh) as a solution. My attempt was to disable both PSR and Replay. It makes sense: PSR and PR are technologies to save power on the integrated eDP-1 panel, and I never got flickering on my external monitors ran through USB, so this seemed like the right track.

Do do this, we want DC_DISABLE_PSR = 0x10 and DC_DISABLE_REPLAY = 0x400. So, we get:

>>> result = 0x10 + 0x400
>>> print(hex(result))
0x410

We can further prove that both PSR and Panel Replay are off:

% sudo -s
Place your right index finger on the fingerprint reader
[root@theseus]/home/luca# grep '' /sys/kernel/debug/dri/0000*/eDP-1/*_capability
/sys/kernel/debug/dri/0000:c1:00.0/eDP-1/hdcp_sink_capability:eDP-1:93 HDCP version: None 
/sys/kernel/debug/dri/0000:c1:00.0/eDP-1/psr_capability:Sink support: yes [0x01]
/sys/kernel/debug/dri/0000:c1:00.0/eDP-1/psr_capability:Driver support: no [0xffffffff]
/sys/kernel/debug/dri/0000:c1:00.0/eDP-1/replay_capability:Sink support: yes
/sys/kernel/debug/dri/0000:c1:00.0/eDP-1/replay_capability:Driver support: no
/sys/kernel/debug/dri/0000:c1:00.0/eDP-1/replay_capability:Config support: no
amdgpu.abmlevel=0

This disables ABM, as you say. Several display flickers on the Framework 16 are caused by the ABM changing the contrast on the display. This operation can sometimes require the panel to reboot and flicker, so that removes a cause. To double-check this claim, I tried to boot Linux with no added kernel parameters and I am able to reproduce a flicker when I am on battery and I switch between the Performance and Balanced power-profile.

There is an interaction between PPD/TuneD and the amdgpu kernel module for setting these brightness levels, so a potentially less invasive option to explore would be to disable or tune this feature from the user-space rather than passing the kernel parameter. I admit that I did not look into this due to laziness.

I do agree that this needs a proper fix. This workaround is not free, it costs a lot of battery life. It looks like they are aware of all these bugs caused by Panel Replay, but still no solution.

Fun fact: Panel Replay also broke the adaptive brightness sensor.

EDIT 2: Oh, you are quoting my comment from the Reddit thread. Ideally, I should have copy pasted that to here in the first place. I apologize again for the confusion, I understand it’s not good practice to past kernel parameters without explaining what they do and why they work.

1 Like

Great write-up!

Sorry I wanted more details - I figured the cost to battery would be terrible - but wanted to make sure I knew what these flags did before I threw them in the kernel params.

I haven’t done it yet, only because its not “bad” on my external monitor.

I was using the laptop disconnected the other day and saw just how bad the flickering is… hopefully they figure out the bug soon - but if not - Ill likely use your steps.

Again, awesome find!

1 Like

Thanks! I can’t take all the credit though. This was a group effort in a group chat :wink: