diff options
author | Michael Weiss <dev.primeos@gmail.com> | 2021-11-01 11:40:34 +0100 |
---|---|---|
committer | Michael Weiss <dev.primeos@gmail.com> | 2021-11-01 12:19:28 +0100 |
commit | a188a7448661876eddbe63ac5a18998298afc385 (patch) | |
tree | be40ece2c894c680f8298aadb06e19b2821c81f1 /nixos/tests/chromium.nix | |
parent | e49cd51ebcbb916e2481555aad8d9548807e9d12 (diff) |
nixos/tests/chromium: Add a workaround to fix the test for M96+
Some upstream changes broke the automatic fallback to SwiftShader. Without this workaround the GPU initialization fails (apparently due to requiring Vulkan): machine # libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null) machine # [1001:1001:1101/104304.000625:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization machine # libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null) machine # [1052:1052:1101/104305.060496:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization machine # [1084:1084:1101/104305.165898:ERROR:angle_platform_impl.cc(44)] Display.cpp:894 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1048. machine # [1084:1084:1101/104305.171191:ERROR:gl_surface_egl.cc(782)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1048. machine # [1084:1084:1101/104305.178707:ERROR:gl_surface_egl.cc(1382)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED machine # [1084:1084:1101/104305.180111:ERROR:gl_ozone_egl.cc(20)] GLSurfaceEGL::InitializeOneOff failed. machine # [1084:1084:1101/104305.189760:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization machine # [1092:1092:1101/104305.233470:ERROR:gpu_init.cc(457)] Passthrough is not supported, GL is disabled, ANGLE is This workaround restores the previous result: machine # [1004:1004:1101/104551.131190:ERROR:gpu_init.cc(457)] Passthrough is not supported, GL is swiftshader, ANGLE is The workaround is only required for Chromium, not Google Chrome.
Diffstat (limited to 'nixos/tests/chromium.nix')
-rw-r--r-- | nixos/tests/chromium.nix | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix index ea9e19cefbc9f..d67acd075a13f 100644 --- a/nixos/tests/chromium.nix +++ b/nixos/tests/chromium.nix @@ -80,6 +80,10 @@ mapAttrs (channel: chromiumPkg: makeTest rec { binary = pname # Add optional CLI options: options = [] + major_version = "${versions.major (getVersion chromiumPkg.name)}" + if major_version > "95" and not pname.startswith("google-chrome"): + # Workaround to avoid a GPU crash: + options.append("--use-gl=swiftshader") # Launch the process: options.append("file://${startupHTML}") machine.succeed(ru(f'ulimit -c unlimited; {binary} {shlex.join(options)} & disown')) |