Blender: Difference between revisions
→Blendfarm: Converted link to option template Tags: Mobile edit Mobile web edit Advanced mobile edit |
m →UI is dim on Vulkan backend and KDE Plasma: Updated known affected versions |
||
| (7 intermediate revisions by the same user not shown) | |||
| Line 11: | Line 11: | ||
If you want to install Blender with support for compute APIs, see: [[#Advanced Installation]] | If you want to install Blender with support for compute APIs, see: [[#Advanced Installation]] | ||
== Configuration == | |||
=== Installing With Additional Python Packages === | |||
To install additional Python modules into Blender, use the <code>withPackages</code> attribute. | |||
Example using a normal Blender package: | |||
<syntaxhighlight lang="nix"> | |||
environment.systemPackages = with pkgs; [ | |||
(blender.withPackages(ps: [ ps.pyserial ps.fs ]) | |||
]; | |||
</syntaxhighlight> | |||
Examples using abnormal Blender Packages: | |||
<syntaxhighlight lang="nix"> | |||
let | |||
blender-cuda = blender.override {config.cudaSupport=true;}; | |||
in { | |||
environment.systemPackages = with pkgs; [ | |||
(blender-cuda.withPackages(ps: [ ps.yq ]) | |||
# (pkgsRocm.blender.withPackages(ps: [ ps.pyserial ps.fs ]) | |||
]; | |||
} | |||
</syntaxhighlight> | |||
In these functions, <code>ps</code> is an alias for <code>python313Packages</code>. | |||
Installing with additional packages will result in a binary named <code>blender-wrapped</code> as it adds the python modules by wrapping Blender in a custom Python environment. When using a binary or unofficial Blender nix package, support for this feature will vary depending on if and how the packager implemented it. | |||
A workaround if using a package that doesn't support <code>withPackages</code> is to install the python packages globally. | |||
<syntaxhighlight lang="nix"> | |||
environment.systemPackages = with pkgs; [ | |||
python313Packages.yq | |||
python313Packages.pyserial | |||
]; | |||
</syntaxhighlight> | |||
Or if it fits your use case better, you can install them in a nix-shell and run Blender from within that shell. | |||
{{file|shell.nix|nix| | |||
<nowiki> | |||
let | |||
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-25.11"; | |||
pkgs = import nixpkgs { config = {}; overlays = []; }; | |||
in | |||
pkgs.mkShellNoCC { | |||
packages = with pkgs; [ | |||
python313Packages.yq | |||
python313Packages.fs | |||
# Optionally you can declare the Blender package you want to use in the shell, so you can run the shell in --pure. | |||
# Can be useful if you're trying to make a reproducible development shell or similar. | |||
pkgsRocm.blender | |||
]; | |||
} | |||
</nowiki> | |||
}} | |||
== Tips & Tricks == | == Tips & Tricks == | ||
| Line 76: | Line 136: | ||
==== The cudaSupport Flag ==== | ==== The cudaSupport Flag ==== | ||
Whether a compatible package is built with CUDA support is managed by the <code>cudaSupport</code> flag enabled. | Whether a compatible package is built with CUDA support is managed by the <code>cudaSupport</code> flag enabled. | ||
The following example shows how to override specifically the Blender package for CUDA support, for general information on the topic see: [[CUDA#Enabling CUDA In Packages|Enabling CUDA In Packages]]. | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
environment.systemPackages = with pkgs; [ | environment.systemPackages = with pkgs; [ | ||
(blender.override {config.cudaSupport=true;}) | (blender.override {config.cudaSupport=true;}) | ||
/* (blender.override { | |||
config.cudaSupport=true; | |||
config.rocmSupport=true;}) # to compile blender with both HIP and CUDA/OptiX support */ | |||
]; | ]; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
If installing Blender with <code>cudaSupport</code>, it is highly recommended you set up the [[CUDA#Setting up CUDA Binary Cache|CUDA Binary Cache]]. If you do not have it set up, and install Blender with <code>cudaSupport</code>, your machine will be compiling Blender from source. | |||
Compiling Blender is very resource-intensive, so if you are unable to use the CUDA Cache, please see the associated warning and information in [[CUDA#Enabling CUDA In Packages]]. | |||
==== Community Flakes ==== | ==== Community Flakes ==== | ||
| Line 95: | Line 158: | ||
=== HIP === | === HIP === | ||
With the deprecation of the <code>blender-hip</code> package,<ref name="deprecate-hip"> {{pull|463064}}</ref> the easiest way to add Blender with HIP support is now with the <code>pkgsRocm.blender</code> package. Other methods are to use the <code>rocmSupport</code> | With the deprecation of the <code>blender-hip</code> package,<ref name="deprecate-hip"> {{pull|463064}}</ref> the easiest way to add Blender with HIP support is now with the <code>pkgsRocm.blender</code> package. Other methods are to use the <code>rocmSupport</code> config variable, or to use a [[#Binary Packages|#Binary Package]]. | ||
The below example is Blender-specific. For more general information on enabling ROCm/HIP in your configuration, see: [[AMD GPU#Enabling ROCm & HIP For Packages]]. | |||
<syntaxhighlight lang="nix"> | |||
environment.systemPackages = with pkgs; [ | |||
pkgsRocm.blender | |||
/* (blender.override { | |||
config.rocmSupport=true; | |||
config.cudaSupport=false;}) # (equivalent to `pkgsRocm.blender`) */ | |||
/* (blender.override { | |||
config.cudaSupport=true; | |||
config.rocmSupport=true;}) # to compile blender with both HIP and CUDA/OptiX support */ | |||
]; | ]; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== oneAPI === | === oneAPI === | ||
Currently, Nixpkgs has extremely limited oneAPI support | Currently, Nixpkgs has extremely limited oneAPI support (see: {{issue|367722|<nowiki>[Tracking] OneAPI Packages</nowiki>}}), which is explicitly blocking {{issue|447245|Blender oneAPI Support}}. As such, the current only way to have oneAPI support on NixOS is through one of the [[#Binary Packages|#Binary Packages]]. | ||
=== Last Resorts === | === Last Resorts === | ||
| Line 123: | Line 187: | ||
=== UI is dim on Vulkan backend and KDE Plasma === | === UI is dim on Vulkan backend and KDE Plasma === | ||
This is a cross-distro issue on current KDE Plasma ( | This is a cross-distro issue on current KDE Plasma with NVIDIA, (confirmed issue on KDE Version 6.6.2-6.6.4 Wayland Session with NVIDIA drivers Versions 595.XX, though may affect others too). A workaround option that doesn't require downgrading is to force XWayland by running Blender with the following command. See more information at the related {{issue|link=https://projects.blender.org/blender/blender/issues/155467||issue}} on Blender's repo. | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
WAYLAND_DISPLAY=0 blender | WAYLAND_DISPLAY=0 blender | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== References == | == References == | ||
<references /> | <references /> | ||