From c7d13c681ca967e710a1f9d569d5e2080f9583d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=A9clairevoyant?= <848000+eclairevoyant@users.noreply.github.com> Date: Tue, 14 Jul 2026 14:45:21 -0400 Subject: [PATCH 1/2] blender-oneapi: init at 5.2.1 Co-authored-by: Sittymin --- pkgs/by-name/bl/blender-oneapi/package.nix | 3 +++ pkgs/by-name/bl/blender/package.nix | 30 +++++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 pkgs/by-name/bl/blender-oneapi/package.nix diff --git a/pkgs/by-name/bl/blender-oneapi/package.nix b/pkgs/by-name/bl/blender-oneapi/package.nix new file mode 100644 index 000000000000..a6c9d1612def --- /dev/null +++ b/pkgs/by-name/bl/blender-oneapi/package.nix @@ -0,0 +1,3 @@ +{ blender }: + +blender.override { oneapiSupport = true; } diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index a89b95864abd..e4f885f60f5f 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -86,6 +86,11 @@ waylandSupport ? stdenv.hostPlatform.isLinux, zlib, zstd, + level-zero, + intel-compute-runtime, + intel-llvm, + intel-graphics-compiler, + oneapiSupport ? false, }: let @@ -158,6 +163,10 @@ stdenv'.mkDerivation (finalAttrs: { + (lib.optionalString rocmSupport '' substituteInPlace extern/hipew/src/hipew.c --replace-fail '"/opt/rocm/hip/lib/libamdhip64.so.${lib.versions.major rocmPackages.clr.version}"' '"${rocmPackages.clr}/lib/libamdhip64.so"' substituteInPlace extern/hipew/src/hipew.c --replace-fail '"opt/rocm/hip/bin"' '"${rocmPackages.clr}/bin"' + '') + + (lib.optionalString oneapiSupport '' + substituteInPlace intern/cycles/kernel/device/oneapi/CMakeLists.txt \ + --replace-fail ''\'''${cycles_kernel_runtime_lib_target_path}' '"''${CMAKE_INSTALL_LIBDIR}"' ''); env.NIX_CFLAGS_COMPILE = "-I${python3}/include/${python3.libPrefix}"; @@ -177,7 +186,8 @@ stdenv'.mkDerivation (finalAttrs: { (lib.cmakeBool "WITH_CPU_CHECK" false) (lib.cmakeBool "WITH_CYCLES_CUDA_BINARIES" cudaSupport) (lib.cmakeBool "WITH_CYCLES_DEVICE_HIP" rocmSupport) - (lib.cmakeBool "WITH_CYCLES_DEVICE_ONEAPI" false) + (lib.cmakeBool "WITH_CYCLES_DEVICE_ONEAPI" oneapiSupport) + (lib.cmakeBool "WITH_CYCLES_ONEAPI_BINARIES" oneapiSupport) (lib.cmakeBool "WITH_CYCLES_DEVICE_OPTIX" cudaSupport) (lib.cmakeBool "WITH_CYCLES_EMBREE" embreeSupport) (lib.cmakeBool "WITH_CYCLES_OSL" true) @@ -205,6 +215,13 @@ stdenv'.mkDerivation (finalAttrs: { (lib.cmakeFeature "OPTIX_ROOT_DIR" "${optix}") (lib.cmakeBool "WITH_CYCLES_CUDA_BINARIES" true) ] + ++ lib.optionals oneapiSupport [ + (lib.cmakeFeature "SYCL_ROOT_DIR" "${intel-llvm}") + (lib.cmakeFeature "LEVEL_ZERO_ROOT_DIR" "${level-zero}") + (lib.cmakeFeature "OCLOC_INSTALL_DIR" "${intel-compute-runtime}") + (lib.cmakeFeature "IGC_INSTALL_DIR" "${intel-graphics-compiler}") + (lib.cmakeFeature "SYCL_CPP_FLAGS" "--verbose") + ] ++ lib.optionals rocmSupport [ (lib.cmakeBool "WITH_CYCLES_DEVICE_HIPRT" false) (lib.cmakeBool "WITH_CYCLES_HIP_BINARIES" true) @@ -236,10 +253,11 @@ stdenv'.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake - llvmPackages.llvm.dev makeWrapper python3Packages.wrapPython ] + ++ lib.optional oneapiSupport addDriverRunpath + ++ lib.optional (!oneapiSupport) llvmPackages.llvm.dev ++ lib.optionals cudaSupport [ addDriverRunpath cudaPackages.cuda_nvcc @@ -290,6 +308,10 @@ stdenv'.mkDerivation (finalAttrs: { zlib zstd ] + ++ lib.optionals oneapiSupport [ + intel-compute-runtime + intel-llvm + ] ++ lib.optional embreeSupport embree ++ lib.optional rocmSupport rocmPackages.clr ++ lib.optional openImageDenoiseSupport (openimagedenoise.override { inherit cudaSupport; }) @@ -370,10 +392,10 @@ stdenv'.mkDerivation (finalAttrs: { --add-flags '--python-use-system-env' ''; - # Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be + # Set RUNPATH so that libs in /run/opengl-driver(-32)/lib can be # found. See the explanation in libglvnd. postFixup = - lib.optionalString cudaSupport '' + lib.optionalString (cudaSupport || oneapiSupport) '' for program in $out/bin/blender $out/bin/.blender-wrapped; do addDriverRunpath "$program" done From 5a4b81602a8980e51d58f93700fd472ba7e71b5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=A9clairevoyant?= <848000+eclairevoyant@users.noreply.github.com> Date: Sat, 12 Sep 2026 19:09:05 -0400 Subject: [PATCH 2/2] blender: enable strictDeps, __structuredAttrs --- pkgs/by-name/bl/blender/package.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index e4f885f60f5f..947e4c2f5106 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -91,6 +91,7 @@ intel-llvm, intel-graphics-compiler, oneapiSupport ? false, + opencl-headers, }: let @@ -126,6 +127,9 @@ stdenv'.mkDerivation (finalAttrs: { pname = "blender"; version = "5.2.1"; + strictDeps = true; + __structuredAttrs = true; + src = fetchzip { name = "source"; url = "https://download.blender.org/source/blender-${finalAttrs.version}.tar.xz"; @@ -254,17 +258,14 @@ stdenv'.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake makeWrapper + pkg-config python3Packages.wrapPython + python3 ] ++ lib.optional oneapiSupport addDriverRunpath - ++ lib.optional (!oneapiSupport) llvmPackages.llvm.dev ++ lib.optionals cudaSupport [ addDriverRunpath cudaPackages.cuda_nvcc - ] - ++ lib.optionals waylandSupport [ - pkg-config - wayland-scanner ]; buildInputs = [ @@ -301,7 +302,6 @@ stdenv'.mkDerivation (finalAttrs: { openxr-loader potrace pugixml - python3 python3Packages.materialx python3Packages.openshadinglanguage rubberband @@ -311,7 +311,9 @@ stdenv'.mkDerivation (finalAttrs: { ++ lib.optionals oneapiSupport [ intel-compute-runtime intel-llvm + opencl-headers ] + ++ lib.optional (!oneapiSupport) llvmPackages.llvm ++ lib.optional embreeSupport embree ++ lib.optional rocmSupport rocmPackages.clr ++ lib.optional openImageDenoiseSupport (openimagedenoise.override { inherit cudaSupport; }) @@ -347,6 +349,7 @@ stdenv'.mkDerivation (finalAttrs: { libxkbcommon wayland wayland-protocols + wayland-scanner ] ++ lib.optional jackaudioSupport libjack2 ++ lib.optional spaceNavSupport libspnav