From 0b3130d0641c9eceb3f75049548eec569e7bc050 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 6 Sep 2024 09:37:37 -0400 Subject: [PATCH 1/3] blender: fix runtime crash by adding missing wayland-scanner Without this, it crashes on launch or render when using (at least) Nvidia GPUs. Blender build needs this, but currently only warns during build. See also: https://github.com/NixOS/nixpkgs/pull/214906 https://github.com/NixOS/nixpkgs/issues/340080 --- pkgs/applications/misc/blender/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index 25e9388307b6..53833059106b 100644 --- a/pkgs/applications/misc/blender/default.nix +++ b/pkgs/applications/misc/blender/default.nix @@ -77,6 +77,7 @@ tbb, wayland, wayland-protocols, + wayland-scanner, waylandSupport ? stdenv.isLinux, zlib, zstd, @@ -223,7 +224,10 @@ stdenv.mkDerivation (finalAttrs: { addDriverRunpath cudaPackages.cuda_nvcc ] - ++ lib.optionals waylandSupport [ pkg-config ]; + ++ lib.optionals waylandSupport [ + pkg-config + wayland-scanner + ]; buildInputs = [ From 1b93140f681d9ac3aa0021e562132b22b6a2e51f Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 6 Sep 2024 09:53:23 -0400 Subject: [PATCH 2/3] blender: formatting --- pkgs/applications/misc/blender/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index 53833059106b..7a5a2eefc96a 100644 --- a/pkgs/applications/misc/blender/default.nix +++ b/pkgs/applications/misc/blender/default.nix @@ -150,6 +150,7 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ + "-DMaterialX_DIR=${python3Packages.materialx}/lib/cmake/MaterialX" "-DPYTHON_INCLUDE_DIR=${python3}/include/${python3.libPrefix}" "-DPYTHON_LIBPATH=${python3}/lib" "-DPYTHON_LIBRARY=${python3.libPrefix}" @@ -162,7 +163,6 @@ stdenv.mkDerivation (finalAttrs: { "-DWITH_FFTW3=ON" "-DWITH_IMAGE_OPENJPEG=ON" "-DWITH_INSTALL_PORTABLE=OFF" - "-DMaterialX_DIR=${python3Packages.materialx}/lib/cmake/MaterialX" "-DWITH_MOD_OCEANSIM=ON" "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}" "-DWITH_OPENCOLORIO=ON" From 6faf3cb673a94547992441a3dde9a8f5ab3547c0 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 6 Sep 2024 09:57:05 -0400 Subject: [PATCH 3/3] blender: build with strict options to prevent unexpected missing libs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Blender build will, by default, warn for most missing libs and silently disable the feature. This can cause unexpected behavior, so instead flip its option to turn those warnings into errors. This, for example, would have caught at build time (rather than runtime) the previously-missing wayland-scanner dependency that caused crashes. As a result, adjust existing build config to reflect reality and fix the “new” errors. --- pkgs/applications/misc/blender/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index 7a5a2eefc96a..09762d8eddac 100644 --- a/pkgs/applications/misc/blender/default.nix +++ b/pkgs/applications/misc/blender/default.nix @@ -158,20 +158,28 @@ stdenv.mkDerivation (finalAttrs: { "-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python3.sitePackages}" "-DPYTHON_VERSION=${python3.pythonVersion}" "-DWITH_ALEMBIC=ON" + "-DWITH_BUILDINFO=OFF" "-DWITH_CODEC_FFMPEG=ON" "-DWITH_CODEC_SNDFILE=ON" + "-DWITH_CPU_CHECK=OFF" + "-DWITH_CYCLES_DEVICE_OPTIX=${if cudaSupport then "ON" else "OFF"}" + "-DWITH_CYCLES_OSL=OFF" "-DWITH_FFTW3=ON" "-DWITH_IMAGE_OPENJPEG=ON" "-DWITH_INSTALL_PORTABLE=OFF" + "-DWITH_JACK=${if jackaudioSupport then "ON" else "OFF"}" + "-DWITH_LIBS_PRECOMPILED=OFF" "-DWITH_MOD_OCEANSIM=ON" "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}" "-DWITH_OPENCOLORIO=ON" "-DWITH_OPENSUBDIV=ON" "-DWITH_OPENVDB=ON" + "-DWITH_PULSEAUDIO=OFF" "-DWITH_PYTHON_INSTALL=OFF" "-DWITH_PYTHON_INSTALL_NUMPY=OFF" "-DWITH_PYTHON_INSTALL_REQUESTS=OFF" "-DWITH_SDL=OFF" + "-DWITH_STRICT_BUILD_OPTIONS=ON" "-DWITH_TBB=ON" "-DWITH_USD=ON" @@ -190,16 +198,13 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals stdenv.isDarwin [ "-DLIBDIR=/does-not-exist" - "-DWITH_CYCLES_OSL=OFF" # causes segfault on aarch64-darwin "-DSSE2NEON_INCLUDE_DIR=${sse2neon}/lib" "-DWITH_USD=OFF" # currently fails on darwin ] ++ lib.optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS=" # Clang doesn't support "-export-dynamic" - ++ lib.optional jackaudioSupport "-DWITH_JACK=ON" ++ lib.optionals cudaSupport [ "-DOPTIX_ROOT_DIR=${optix}" "-DWITH_CYCLES_CUDA_BINARIES=ON" - "-DWITH_CYCLES_DEVICE_OPTIX=ON" ]; preConfigure = ''