diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index e54cae9e56a2..357bbbe0e6f6 100644 --- a/pkgs/applications/misc/blender/default.nix +++ b/pkgs/applications/misc/blender/default.nix @@ -372,6 +372,16 @@ stdenv.mkDerivation (finalAttrs: { --render-frame 1 done ''; + + cudaAvailable = runCommand + "blender-cuda-available" + { + nativeBuildInputs = [ finalAttrs.finalPackage ]; + requiredSystemFeatures = [ "cuda" ]; + } + '' + blender --background -noaudio --python-exit-code 1 --python ${./test-cuda.py} && touch $out + ''; }; }; diff --git a/pkgs/applications/misc/blender/test-cuda.py b/pkgs/applications/misc/blender/test-cuda.py new file mode 100644 index 000000000000..8a3ec5734759 --- /dev/null +++ b/pkgs/applications/misc/blender/test-cuda.py @@ -0,0 +1,8 @@ +import bpy + +preferences = bpy.context.preferences.addons["cycles"].preferences +devices = preferences.get_devices_for_type("CUDA") +ids = [d.id for d in devices] + +assert any("CUDA" in i for i in ids), f"CUDA not present in {ids}" +print("CUDA is available")