`base: core20` snaps fail to compile shaders on Ubuntu 18.04 hosts with Nvidia
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
snapd |
Confirmed
|
Low
|
Zygmunt Krynicki |
Bug Description
Steps to reproduce:
- install Ubuntu 18.04 on a host with (only) Nvidia GPU
- apt-get install libgles2 nvidia-driver-440
- echo 'GRUB_CMDLINE_
- sudo update-grub
- sudo reboot
- snap install mir-test-tools --edge
- sudo env XDG_RUNTIME_
Some of the tests with fail with:
```
[2020-09-28 23:13:34.074407] <information> mir::examples: Starting test client: /snap/mir-
Can't eglInitialize
ERROR: Dynamic exception type: std::runtime_error
std::exception:
attribute vec3 position;
attribute vec2 texcoord;
uniform mat4 screen_
uniform mat4 display_transform;
uniform mat4 transform;
uniform vec2 centre;
varying vec2 v_texcoord;
void main() {
vec4 mid = vec4(centre, 0.0, 0.0);
vec4 transformed = (transform * (vec4(position, 1.0) - mid)) + mid;
gl_Position = display_transform * screen_to_gl_coords * transformed;
v_texcoord = texcoord;
}
sh: 1: /usr/share/
I: [FAILED] /snap/mir-
[timestamp] End : mir_demo_
[timestamp] End time : 2020-09-
```
This was working fine on both 18.04 and 20.04 hosts with a `base: core18` snap, so this suggests something in the new snap became incompatible with 18.04 hosts.
The lack of clear documentation on what is tested / expected to work, how to get there (what should be in the snap, what should not) does not help with debugging.
Confirmed and triaged as low, as we have no nvidia work on the roadmap. I will do my best to fix this given the following extra information:
- strace -f output
- ltrace related to dlopen*
- apparmor denials
I suspect it's either a CPU-feature- specific library being loaded in core20 (apparmor denial) or a missing/ incompatible library that is attempted to be loaded as a dependency of the nvidia libraries from the host.