post about PSR
This commit is contained in:
parent
ab9fc93782
commit
c4c7c1570d
1 changed files with 47 additions and 0 deletions
47
content/posts/7-arc-flicker.md
Normal file
47
content/posts/7-arc-flicker.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
---
|
||||
title: "How I stopped my laptop from giving me a seizure"
|
||||
date: 2024-08-17T12:50:38+02:00
|
||||
---
|
||||
|
||||
Recently I treated myself to a _Dell XPS 13 9340_. The Thinkpad X220 I'd been
|
||||
rocking since university is a really nice machine, but it's low specs really
|
||||
started to interfere with my daily tasks...
|
||||
|
||||
The Dell had been running great. It runs the latest Fedora Silverblue without
|
||||
any driver issues. Then, one day, the screen suddenly started to glitch
|
||||
immediately after boot. Essentially, whenever an area of the screen was
|
||||
updated, there was a chance that it just gave up and drew a colorful horizontal
|
||||
line instead. This behaviour looked liked a failed monitor at first. It also
|
||||
appeared directly after boot in the graphical LUKS passphrase prompt.
|
||||
|
||||
But suspiciously, the behaviour didn't appear in the system setup outside of
|
||||
Linux. So I was either facing a failed GPU (which would suck) or a faulty
|
||||
driver (which would've sucked a lot less).
|
||||
|
||||
A lot of searching brought up a third option however. Like all modern chipsets,
|
||||
the laptop supports [Panel Self Refresh (PSR)](https://www.anandtech.com/show/7208/understanding-panel-self-refresh). PSR helps to save power, because it allows the display driver to simply
|
||||
not update the display if nothing on the display has changed. While cool, it can cause
|
||||
issues with [Screen Flickering](https://wiki.archlinux.org/title/Intel_graphics#Screen_flickering).
|
||||
|
||||
So I tried disabling that to see if anything changes. On _Fedora Silverblue_
|
||||
kernel parameters are modified via `rpm-ostree kargs`. So, to disable PSR:
|
||||
|
||||
```sh
|
||||
rpm-ostree kargs --append=i915.enable_psr=0
|
||||
```
|
||||
|
||||
This appends `i915.enable_psr=0` to the kernel parameters, which in turn
|
||||
disables PSR in the Intel Video driver (i915).
|
||||
|
||||
And... it worked! The display was no longer going haywire.
|
||||
|
||||
Then I wanted to take a picture of this bug for this blogpost. So:
|
||||
|
||||
```sh
|
||||
rpm-ostree kargs --delete=i915.enable_psr=0
|
||||
```
|
||||
|
||||
And... Nothing. PSR was enabled again and... No flickering.
|
||||
|
||||
I've chosen to accept this for now. If the flickering returns, I have this post
|
||||
to copy-and-paste the kernel parameter from :)
|
Loading…
Reference in a new issue