Bug 1216216

Summary: Electron fails to render with “Skia shader compilation error” on Intel GPU
Product: [openSUSE] openSUSE Tumbleweed Reporter: Manfred Hollstein <manfred.h>
Component: X11 ApplicationsAssignee: Bruno Pitrus <brunopitrus>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <screening-team-bugs>
Severity: Major    
Priority: P5 - None CC: cookie170, manfred.h, opensuse_buildservice
Version: Current   
Target Milestone: Current   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Screenshot of a running signal-desktop application
Logs from running signal-desktop in a screen session
Output from running "electron chrome://gpu"
Autostart file to empty existing cache directories and replace them with links to some directory below /tmp
Shared xdg autostart file for Signal desktop to move cache directories to where they belong to

Description Manfred Hollstein 2023-10-13 10:46:15 UTC
Created attachment 870152 [details]
Screenshot of a running signal-desktop application

I get the following on openSUSE Tumbleweed since appr. snapshot 20231008 as seen in the attached screenshot. The same version from network:/im:/signal built for Leap 15.5 runs properly.

tumbleweed# rpm -qa | egrep 'signal|nodejs'
nodejs-electron-25.9.0-1.1.x86_64
signal-desktop-6.34.0-1.1.x86_64
signal-libringrtc-2.33.0-2.1.x86_64

leap-15.5# rpm -qa | egrep 'signal|nodejs'
nodejs-electron-25.9.1-lp155.1.1.x86_64
signal-desktop-6.34.0-lp155.1.1.x86_64
signal-libringrtc-2.33.0-lp155.2.1.x86_64

I'll attach another file containing the logs shown in a terminal soon.
Comment 1 Manfred Hollstein 2023-10-13 10:50:47 UTC
Created attachment 870153 [details]
Logs from running signal-desktop in a screen session
Comment 2 Bruno Pitrus 2023-10-13 11:33:41 UTC
What is your GPU? Do you have anything entered in `~/.config/electron-flags.conf`?
Comment 3 Bruno Pitrus 2023-10-13 11:40:02 UTC
Also if you can run `electron chrome://gpu` please click “copy record to clipboard” and paste it here.
Comment 4 Manfred Hollstein 2023-10-13 12:44:34 UTC
Created attachment 870158 [details]
Output from running "electron chrome://gpu"
Comment 5 Manfred Hollstein 2023-10-13 12:46:51 UTC
(In reply to dziobian from comment #2)
> What is your GPU? Do you have anything entered in
> `~/.config/electron-flags.conf`?

File ~/.config/electron-flags.conf does not even exist. Here is some info about my GPU:

$ inxi -G
Graphics:
  Device-1: Intel RocketLake-S GT1 [UHD Graphics 750] driver: i915 v: kernel
  Display: x11 server: X.Org v: 21.1.8 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: iris gpu: i915 resolution: 1920x1200~60Hz
  API: OpenGL v: 4.6 Mesa 23.2.1 renderer: Mesa Intel Graphics (RKL GT1)
Comment 6 Bruno Pitrus 2023-10-13 14:08:30 UTC
Please try
Comment 7 Bruno Pitrus 2023-10-13 14:13:31 UTC
Please try removing the directories
~/.config/Signal/DawnCache and ~/.config/Signal/GPUCache

If that fixes the problem, then this is an issue known by Chromium upstream:
https://bugs.chromium.org/p/chromium/issues/detail?id=1442633
Comment 8 Keks Dose 2023-10-13 16:26:14 UTC
(In reply to dziobian from comment #7)
> Please try removing the directories
> ~/.config/Signal/DawnCache and ~/.config/Signal/GPUCache
> 
> If that fixes the problem, then this is an issue known by Chromium upstream:
> https://bugs.chromium.org/p/chromium/issues/detail?id=1442633

Fixes is. Signal-desktop works again. Thank you!
Comment 9 Bruno Pitrus 2023-10-13 16:56:30 UTC
duplicate of chromium bug

*** This bug has been marked as a duplicate of bug 1214274 ***
Comment 10 Manfred Hollstein 2023-10-13 17:22:01 UTC
Created attachment 870175 [details]
Autostart file to empty existing cache directories and replace them with links to some directory below /tmp

Indeed, the problem is fixed by this. As I am multi-booting between Leap 15.5 and Tumbleweed I have created a .config/autostart file to remove the two directories when logging in, and then create two temporary directories in /tmp as a target for the two (now) symbolic links .config/Signal/{DawnCache,GPUCache}. See this attachment.
Comment 11 Manfred Hollstein 2023-10-14 04:01:20 UTC
Created attachment 870176 [details]
Shared xdg autostart file for Signal desktop to move cache directories to where they belong to

The more I think about this, I believe the two directories DawnCache and GPUCache don't belong into ~/.config/Signal but should be stored in ~/.cache/Signal.

I changed my former autostart file into this new one which can be stored at /etc/xdg/autostart to implement the proper change for every user.