neatvnc: Disable the CPU acceleration by default

For Nixpkgs it seems best to disable the usage of CPU extensions by
default as older CPUs don't support them which will result in a crash at
runtime (SIGILL: Illegal instruction) [0].
The performance on my old test system was more than enough anyway
(usually ~10% CPU usage due to wayvnc).

[0]: https://github.com/any1/neatvnc/issues/21
This commit is contained in:
Michael Weiss 2020-02-29 15:26:17 +01:00
parent f58a7349f9
commit c1e77269cf
No known key found for this signature in database
GPG Key ID: 5BE487C4D4771D83
2 changed files with 20 additions and 0 deletions

View File

@ -1,6 +1,7 @@
{ stdenv, fetchFromGitHub, meson, pkg-config, ninja { stdenv, fetchFromGitHub, meson, pkg-config, ninja
, pixman, libuv, gnutls, libdrm , pixman, libuv, gnutls, libdrm
# libjpeg_turbo: Optional, for tight encoding (disabled because experimental) # libjpeg_turbo: Optional, for tight encoding (disabled because experimental)
, enableCpuAcceleration ? false # Whether to use CPU extensions (e.g. AVX)
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -17,6 +18,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ meson pkg-config ninja ]; nativeBuildInputs = [ meson pkg-config ninja ];
buildInputs = [ pixman libuv gnutls libdrm ]; buildInputs = [ pixman libuv gnutls libdrm ];
patches = stdenv.lib.optional (!enableCpuAcceleration) ./disable-cpu-acceleration.patch;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A VNC server library"; description = "A VNC server library";
longDescription = '' longDescription = ''

View File

@ -0,0 +1,17 @@
diff --git a/meson.build b/meson.build
index 31dd8b8..8761087 100644
--- a/meson.build
+++ b/meson.build
@@ -21,12 +21,6 @@ endif
cpu = host_machine.cpu_family()
-if cpu == 'x86_64'
- c_args += '-mavx'
-elif cpu == 'arm'
- c_args += '-mfpu=neon'
-endif
-
add_project_arguments(c_args, language: 'c')
cc = meson.get_compiler('c')