Fix flickering on the Linux photo screen when video plays next door

9 min read · Published November 6, 2026

The flicker comes from the PC's graphics driver, not the photo screen. When one output plays video and the other shows stills, the distribution's default open driver can disturb the quiet output; installing the GPU maker's own driver stopped it in a matching install. Rule out cables with two swap tests first, then change the driver.

The fix is to install the graphics driver from the GPU maker, in place of the open driver your Linux distribution ships by default, and reboot. That single change took a dual-output signage PC from 6 flicker events per 10 minutes of video playback to zero. When a Linux signage PC drives two screens and the one showing photos flickers while the other plays video, the fault sits in the PC's graphics driver. It is not in the photo screen, its cable or the player software.

In one install with exactly this fault, everything had already been replaced: the video files, the HDMI cables, the displays, the whole PC and the operating system. The flicker survived all of it. This page gives you the tests that isolate the cause in under an hour. It also gives the symptom list that separates driver faults from cable faults, and the fallbacks if the driver swap alone does not finish the job.

Why does the photo screen flicker while the other screen plays video?

Because the graphics driver is at fault, not the photo screen: one output decodes video, the driver disturbs the other output while it does, and the distribution's default open driver is the usual culprit on dual-output signage PCs.

Both screens hang off the same GPU and run on the same driver. One output is refreshing still images, say 1920 × 1080 at 60 Hz. The other is pulling a compressed file apart and painting frames up to 25 or 30 times a second. The driver owns both jobs. When it handles that mix badly, the damage shows on the quiet output. That is why the photo screen misbehaves while the video screen looks fine.

That is also why the hardware swaps failed in the matching install. New cables, new displays, a second PC of the same class and a different distribution each arrived with a default open driver from the same upstream family, so the fault came with them. The pattern to remember: flicker that tracks the video playing on the other screen is a software fault, and hardware replacement will not move it.

What should I rule out before touching drivers?

Swap the two HDMI cables, swap the two displays, and pause the video for ten minutes. If the flicker stays with the photo content and stops when the video stops, you have ruled out cable, panel and file before lunch.

Work through these checks in order and write down what each one does:

  1. Pause the video for 10 minutes and watch both screens. Flicker stops with the video: the fault is tied to playback. Flicker continues: the photo output itself is now the suspect.
  2. Swap the two HDMI cables between the screens. Flicker stays with the photo content: the cables are out of it. Flicker follows one cable: replace that cable and retest.
  3. Move the video to the photo screen and the photos to the video screen. Flicker follows the video: the driver and its decode path are confirmed as the place to work.
  4. Play a second file at a lower bitrate. Flicker unchanged: the file is not the trigger. Flicker reduced: decode load is part of the story, and the load test below tells you how far to push it.
  5. Check the mode both outputs report; 1920 × 1080 at 60 Hz is the sane setting, and a strange mode on one output is a fault of its own.

The matching install had already replaced files, cables, displays, the whole PC and the operating system before anyone looked at the driver. The flicker survived every swap. That is the cheapest signal you will get: when five hardware and file changes do nothing, the software they all shared is the cause.

What does the flicker pattern tell you?

Where and when the flicker appears names the cause. Flicker tied to video playback on the other output points at the graphics driver. Flicker on one screen at all times points at that cable or panel. A white flash between two videos points the same way, at the driver.

  • Flicker on the photo screen only while the other screen plays video. The driver's handling of two outputs, one of them decoding. Install the GPU maker's own driver; that swap ended this exact fault.
  • A white or bright flash exactly when one file ends and the next begins. The same driver family; on a different GPU generation, replacing the distribution-installed driver with the GPU maker's removed the flashes.
  • Flicker on one screen at all times, video or not. That output's cable, port or panel. Swap the cable, then the display; drivers come last for this pattern.
  • The second screen blinks when a window is maximized on it. A driver fault on the secondary output. Same fix: the maker's driver.
  • Flicker in bursts as scenes change. The GPU stepping between power states as the decode load changes; pin the power profile after the driver update.
  • The picture tears into horizontal strips during motion. The driver's vsync handling. Driver swap first, then the composition toggle in the display settings.

If your symptom is the video screen going dark instead of the photo screen flickering, that is a different fault; start with the black screen on video checks.

How do I check the video decode load on the player?

Watch the CPU load while the video plays. A 1920 × 1080 file at 25 frames per second leaves the busiest core of a mini-PC-class CPU well under 40 percent when the GPU is doing the decode work. If the CPU is doing that work instead, one core sits near 100 percent.

Linux reaches a GPU's fixed-function video decode blocks through a standard interface, VA-API. The player either uses it or falls back to decoding on the CPU. The load test above tells you which is happening without opening a settings page. Whether your player can use that path is answered in its documentation; some players expose it as a setting, some as a build option.

Two consequences. The driver fix matters either way, because both outputs are served by the same driver whether the frames are decoded on the GPU or the CPU. And if you are decoding on the CPU, playback load stacks on top of everything else the graphics stack does. A lower-bitrate test file is the quick way to see how much load contributes: video bitrate for a signage player. Stutter that shows on a 4K screen but not on 1080p grows from the same decode pressure: video stuttering on a 4K monitor.

How do I install the GPU maker's driver?

Get the driver from the GPU maker's own download page or software repository, matched to your distribution release and GPU generation. Install it with the package manager, reboot, and confirm the loaded driver changed before retesting.

  1. Write down the driver name and kernel version now shown in your graphics information dialog, so you can show the change and roll back.
  2. On the GPU maker's site, pick the driver for your GPU generation and your distribution release. A package built for a different kernel major version will refuse to load, so match the version exactly.
  3. Install it with your package manager and let it build against the running kernel.
  4. Reboot. A graphics driver binds at boot, not at login.
  5. Open the same dialog: the driver string should now be the maker's, and both screens should come up in their previous modes.
  6. Rerun the 10-minute playback test and record the count.

Rollback is cheap if you plan it. Keep the previous driver installed alongside where the packaging allows it. If the new one misbehaves, select the old driver from the recovery boot and you are back where you started.

One safety note, because a graphics driver is privileged code: take it only from the GPU maker's own page or your distribution's official repository. A copy from a mirror or a file-sharing site is an unverified binary running at the highest level of your player PC.

What does the fix look like in a real example?

Two 1920 × 1080 screens at 60 Hz on one mini PC, photos on the right and a looping 1080p 25 fps file at 8 Mb/s on the left; the photo screen flickered about six times per ten minutes of playback, and the driver swap took the count to zero.

Run the tests as a log, one change at a time, same duration every time:

Test Condition Flicker events
Video playing, original driver 10 minutes 6
Video paused, original driver 10 minutes 0
Cables swapped, video playing 10 minutes 6
GPU maker's driver, video playing 10 minutes 0
GPU maker's driver, video playing full 8-hour shift (480 minutes) 0

The arithmetic that finishes the diagnosis: 6 events in 10 minutes is 0.6 per minute, 36 in an hour, and about 288 across a 480-minute shift (0.6 × 480 = 288). After the driver swap, the same shift logged zero. The pause test is the one that convicts the driver: content stopped, flicker stopped, hardware untouched.

The counts in that log are an illustrative test sheet, not a rating; your numbers will differ. The method is the point: fixed duration, one change at a time, events written down.

What if the flicker survives the driver swap?

Three settings clear most of what is left: switch the display server, turn off variable refresh on the photo output, and stop the GPU stepping between power states. A newer kernel or driver release answers the rest.

  1. Switch the display server. Linux has two, X11 and Wayland, and they drive multi-output desktops differently. Pick the other one from the login screen; no reinstall needed.
  2. Turn off variable refresh on the photo output. When the display and the driver negotiate variable refresh, the clock changes that come with it can show as flicker. Disable it in the display settings and in the monitor's own menu.
  3. Pin the GPU's power profile. A GPU that drops to a low power state between scenes and re-clocks for video has been reported to flicker at exactly those transitions. Set the power profile to performance in the GPU maker's control panel while you test.

If all three change nothing, update to a newer kernel point release inside your distribution; fixes for onboard graphics land in the kernel, and a point release is a small step. Rerun the same 10-minute count after each change.

When should the photo screen move to its own player?

Move the photo screen to its own player when the PC has to keep the video and you want that output off the PC's driver: a standalone Android signage unit playing from its own microSD or USB card ends the interaction for good.

That splits the job cleanly. The PC keeps the video output, and the photo output moves to a screen that plays images and video from its own card with no subscription, so nothing the PC's driver does can reach it; the signage displays section covers those units. Two practical points save an afternoon. Our units are players with their own storage, so the PC's HDMI output has nowhere to go on them: the HDMI port on an Android signage unit is an output, and feeding a PC into one rarely works, as HDMI input on Android signage players explains. And if one box really must drive several screens, read one Android signage player driving multiple displays first, because that box then owns every screen's faults the way your mini PC does now.

Recommendation: If the flicker appears only while the other screen plays video, install the GPU maker's own graphics driver first; that single change fixed this fault in the install described here. If the flicker continues with the video paused, replace that screen's HDMI cable before you touch software. If both screens must stay on the PC and the fault returns after every driver change, move the photo screen to a standalone player and let the PC keep the video alone.

Questions

Can a bad HDMI cable make the other monitor flicker?

Almost never. A cable fault shows on the screen that cable feeds. It shows all the time, not only during video playback on the other output. If flicker appears only while the other screen plays video, the cable is not the cause. Replacing it will not help. Swap cables once to confirm, then move to the driver.

Is the flicker damaging the photo screen?

No. The panel is receiving a momentarily wrong signal from the PC. Nothing inside the display is being stressed. A display that flickered through this fault worked normally once the correct driver was installed. Fix the cause at the PC and keep the screen.

Do I need to change the signage player after swapping the driver?

No. The player talks to the same Linux decode and display interfaces either way. In the install that matched this fault, the player was left exactly as it was. Only the graphics driver changed, and the flicker stopped. Reboot, confirm the driver string, then rerun your playback test.

Would a faster PC fix it?

Not this symptom. The matching install already tried a second PC of the same class and kept the flicker. Both machines ran the distribution's default open driver. A faster CPU moves the numbers in the load test. It does not change which driver draws both screens. Spend the effort on the driver, not the box.

Does this fault affect Android signage players too?

No. An Android all-in-one running its own player is a different software stack. This fault belongs to a Linux PC drawing two desktop outputs with a distribution driver. That difference is one reason to move the photo screen to its own Android unit when the PC's driver keeps misbehaving.

Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.

Keep reading

Build your signAsk for a quote