Blender: Difference between revisions
→Installation: replaced period with comma Tags: Mobile edit Mobile web edit Advanced mobile edit |
m →UI is dim on Vulkan backend and KDE Plasma: Updated known affected versions |
||
| (10 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 == | ||
=== Blendfarm === | === Blendfarm === | ||
The Blendfarm | The Blendfarm network renderer for Blender is handled by {{nixos:option|services.blendfarm}}. A very simple example configuration is shown below. | ||
{{file|configuration.nix|nix| | {{file|configuration.nix|nix| | ||
| Line 38: | Line 98: | ||
These are alternative distribution methods that package the Blender binaries, meaning they have support for all APIs. | These are alternative distribution methods that package the Blender binaries, meaning they have support for all APIs. | ||
==== Steam ==== | ==== Steam ==== | ||
Installing [https://store.steampowered.com/app/365670/Blender/ Blender through Steam] will run Linux native Blender in the Steam Runtime environment, and it will receive automatic updates through Steam. Note that if you make Steam run the Windows version (through Proton) by selecting "Force the use of a specific Steam Play compatibility tool" under Properties > Compatibility, the APIs will fail as they will not have the relevant Windows drivers. | |||
==== The blender-bin Flake ==== | ==== The blender-bin Flake ==== | ||
| 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 ==== | ||
In addition to the [[#The blender-bin Flake|#blender-bin flake]], there is also [https://github.com/adithyagenie/blender-cuda-nixos blender-cuda-nixos], which compiles Blender with <code>cudaSupport</code> enabled and caches it on cachix so you don't need to build it yourself. For instructions on adding it to your configuration, see its [https://github.com/adithyagenie/blender-cuda-nixos/blob/master/README.md README]. | In addition to the [[#The blender-bin Flake|#blender-bin flake]], there is also [https://github.com/adithyagenie/blender-cuda-nixos blender-cuda-nixos], which compiles Blender with <code>cudaSupport</code> enabled and caches it on cachix so you don't need to build it yourself. For the most up-to-date instructions on adding it to your configuration, see its [https://github.com/adithyagenie/blender-cuda-nixos/blob/master/README.md README]. | ||
=== 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 /> | ||