Godot version:
4.0 efc4d217d
OS/device including version:
Ubuntu 20.10 in docker
Issue description:
When I tried to run Godot in docker with Lavapipe compiled from source, then Godot crash with this message
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 20 (X_GetProperty)
Atom id in failed request: 0x0
Serial number of failed request: 53
Current serial number in output stream: 53
I'm not sure if this is Godot or Lavapipe bug, but it will be good to know when it will be fixed, because this will allow to run Godot 4.0 in CI.
Steps to reproduce:
docker run -it ubuntu:rolling /bin/bash
Sadly PPA doesn't provide for now LavaPipe implementation, so lines with adding it may be omitted.
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
apt update
apt upgrade -y
apt install -y software-properties-common xorg xvfb wget unzip -y
add-apt-repository ppa:oibaf/graphics-drivers -y
apt update
apt upgrade -y
wget https://archive.hugo.pro/builds/godot/master/editor/godot-linux-nightly-x86_64.zip
unzip godot-linux-nightly-x86_64.zip
xvfb-run ./godot -q
sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
apt update
apt build-dep -y mesa
apt install -y git meson ninja-build llvm libxcb-shm0-dev
git clone https://gitlab.freedesktop.org/mesa/mesa.git
cd mesa
meson build/
ninja -C build/ install
cd ..
xvfb-run ./godot -q
It would be worth reporting this to Mesa developers if this hasn't been done already.
It might need changes similar to SwiftShader Vulkan software implementation (disable tessellation checks and bump some limits, see https://bruvzg.github.io/using-godot-with-swiftshader-software-vulkan-emulation.html). ~I have not tested with the latest master, but it was working OK few weeks ago.~ Checked with the latest master - 2D / UI works fine (tested in the VirtualBox VM).
Click to expand

X Error of failed request: BadAtom (invalid Atom parameter)
Or it's an issue with missing X11 extensions.
Mesa issue - https://gitlab.freedesktop.org/mesa/mesa/-/issues/3772
Also PPA issue - https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/opengl-vulkan-mesa-gallium3d/24959-updated-and-optimized-ubuntu-free-graphics-drivers/page190#post1218535 for https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers because compilation entire Mesa(even with cache) on every commit is a little too much
On Xvfb Godot with SwiftShader crashes with the same error, probably something wrong with Xvfb (config, missing or incomplete extensions?) not with the Vulkan implementation.
Yeah it's not a LavaPipe issue, the same happens on a normal Linux desktop using both Intel and Radeon Vulkan drivers:
$ xvfb-run godot-git
Godot Engine v4.0.dev.custom_build.dca6bac62 - https://godotengine.org
INTEL-MESA: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0
X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 20 (X_GetProperty)
Atom id in failed request: 0x0
Serial number of failed request: 53
Current serial number in output stream: 53
Should be fixed by #43477 - tested to run using xvfb-run and SwiftShader ICD.
Runs fine with a few warnings (XIM related) on start :
WARNING: XOpenIM failed
at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:3723)
WARNING: XCreateIC couldn't create wd.xic
at: _create_window (platform/linuxbsd/display_server_x11.cpp:3550)
Most helpful comment
It might need changes similar to SwiftShader Vulkan software implementation (disable tessellation checks and bump some limits, see https://bruvzg.github.io/using-godot-with-swiftshader-software-vulkan-emulation.html). ~I have not tested with the latest master, but it was working OK few weeks ago.~ Checked with the latest master - 2D / UI works fine (tested in the VirtualBox VM).
Click to expand