Commit Graph

1326 Commits

Author SHA1 Message Date
Anthony Roberts
2c4628c474 Windows ARM64: Workaround #134676
PR as discussed on the thread for #134676.

Works by disabling dependent load flag in OIDN, and also switching off OpenMP.

The OIDN bit is just a workaround until they can resolve this properly on their side by fixing the manifest.

The OpenMP bit requires more investigation regarding delayed loading.

Pull Request: https://projects.blender.org/blender/blender/pulls/135319
2025-03-10 15:41:38 +01:00
Sergey Sharybin
5cd758368a Fix #134992: HIP-RT fails building BVH if Blender path contains space
Quite obscure issue, seemingly caused by the fact that HIP-RT is
passing a large (about 20 MB) global array to a different library
(HIP driver, via hipModuleLoadData). Having global variables of
such size seems to be always problematic as they can not be stored
on stack and, possibly, extra mapping is involved here. It is not
clear whether it is a quirk of the HIP driver, or Linux, or, maybe,
something completely different.

It is possible to work-around the problem by making a temporary
copy of data on heap memory and pass it to the hipModuleLoadData().
This is how other areas are dealing with modules in Blender.

This change contains patch against HIP-RT and the new HIP-RT
library compiled with the patch. It seems to fix the problem
reported in the report.

This change does not resolve OIDN on HIP GPU which seems to have
the same issue. However, it is not a recent regression and the
bug with OIDN GPU denoising can be reproduced using Blender 4.3.

Pull Request: https://projects.blender.org/blender/blender/pulls/135403
2025-03-04 09:35:54 +01:00
Thomas Dinges
dfb416b4c4 Build: Patch OpenEXR 3.3.2 for dwa bug
Upstream commit: df162955c6

Ref #134802

Pull Request: https://projects.blender.org/blender/blender/pulls/135037
2025-02-25 14:17:19 +01:00
Sahar A. Kashi
6363181af9 Cycles: HIP-RT 2.5 integration and gfx12 support
This change brings the following improvements on the user level
- Support of GPUs with gfx12 architecture
- New HIP-RT library which in addition to the gfx12 support brings
  various bug-fixes.

The known limitation of gfx12 is that OpenImageDenoiser does not yet
support this GPU architecture. This means that while Cycles will use the
full advantage of the gfx12 (including hardware accelerated ray-tracing),
denoising will only be possible on CPU, or secondary gfx11 or below GPU.
This is something that requires a change in OIDN and it is to late to do
it for Blender 4.4, but it is something to look forward for Blender 4.5.

The gfx12 changes for the pre-compiled kernels is rather trivial,
so it comes together (in the same PR) as the bigger HIP-RT change.

On the development side this change brings the following improvements:
- One step compile and link (much simpler CMake rules)
- Embedding BVH binaries in hiprt dll (which makes it easier to package
  and load, without relying on special path configuration)

Co-authored-by: Sahar Kashi <sahar.kashi@amd.com>
Co-authored-by: Sergey Sharybin <sergey@blender.org>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>

Pull Request: https://projects.blender.org/blender/blender/pulls/133129
2025-02-20 17:34:14 +01:00
Campbell Barton
96179be206 Cleanup: cmake indentation 2025-02-16 17:14:12 +11:00
Anthony Roberts
d277d43831 Libs: Fix OCIO patch command for non-Windows ARM64 platforms
Pull Request: https://projects.blender.org/blender/blender/pulls/134576
2025-02-14 15:44:08 +01:00
Anthony Roberts
cbfe542f61 Windows ARM64: Enable SIMD in OpenColorIO
Pull in a patch from December 2024 that didn't make it into a versioned release yet

This gives a speed-up of ~50% in some video rendering scenarios

Pull Request: https://projects.blender.org/blender/blender/pulls/134568
2025-02-14 14:12:39 +01:00
Sebastian Parborg
8a251ffa8d install_linux_packages: Bump the remaining 4.4 lib versions
See #128577 for details
2025-02-12 14:23:48 +01:00
Sebastian Parborg
48009f5c05 Build: Fix intel-graphics-compiler archive filename.
Before it was simply just the version number, so it was hard to tell
which package it was from.
2025-02-12 13:45:39 +01:00
Jonas Holzman
567669d3ff Build: Remove unused PCRE dependency
OpenCollada used to rely on PCRE (a Perl Regexp library). Since
switching to Aras' OpenCollada fork (#122270), the library is no
longer needed, but is still required as a dependency.

This patch cleans this up by completely removing it from our build
system and linux system package installation script. This also lets
us remove it from our pre-compiled library platform repos, making the
process of recompiling our libraries from scratch easier as it wasn't
compiled by our dependency builder anymore.

Pull Request: https://projects.blender.org/blender/blender/pulls/134310
2025-02-10 01:22:56 +01:00
Ray Molenkamp
768b71b3c9 Deps: Move OIIO Patch to the right folder.
Made a mistake while copying over the fix from my buildbox
2025-02-09 11:18:40 -07:00
Ray Molenkamp
675bf068fe Deps: Include OIIO PR 4630
OIIO triggered some asserts in the debug configuration on windows
during file save, upstream PR 4630 is required to resolve these.
2025-02-09 10:40:15 -07:00
Brecht Van Lommel
fcc770390d Fix: Disable zlib in dpcpp to avoid linking to system library
Matching build options for regular LLVM.

Pull Request: https://projects.blender.org/blender/blender/pulls/134244
2025-02-07 21:23:58 +01:00
Patrick Mours
3b0742ea7c Build: Add Blackwell to OIDN GPU architectures
Pretty straight forward modification to OIDN to increase the max
SM version check and include binaries for the Blackwell GPU
architecture.

Requires CUDA toolkit 12.8+.

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Ray Molenkamp <github@lazydodo.com>

Pull Request: https://projects.blender.org/blender/blender/pulls/134115
2025-02-06 15:04:18 +01:00
Ray Molenkamp
1540817576 For VFX platform 2025 and more.
Boost (removed!)
Cython 3.0.11
Expat 2.6.4
GMP 6.3.0
MaterialX 1.39.2
Nanobind 2.1.0 (new, for OpenVDB)
NumPy 1.26.4
OpenColorIO 2.4.1
OpenEXR 3.3.2
OpenImageIO 3.0.3.1
OpenVDB 12.0.0
OSL 1.14.3-beta
Python 3.11.11
Robinmap 1.3.0
TBB 2021.13.0
TIFF 4.7.0
USD 25.02
libxml2 2.13.5
zlib 1.3.1

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Jonas Holzman <jonas@holzman.fr>
Co-authored-by: Sebastian Parborg <sebastian@blender.org>

Ref #128577

Pull Request: https://projects.blender.org/blender/blender/pulls/134178
2025-02-06 14:57:02 +01:00
Nikita Sirgienko
bee534eea5 Build: Upgrade Intel Graphics Compiler to 2.1.14 on Linux
This corresponds the latest rolling 2448.13 release:
https://dgpu-docs.intel.com/releases/packages.html?release=Rolling+2448.13&os=Ubuntu+24.04

Graphics compiler upgrades require increasing the minimum required
driver (compute-runtime) version to the corresponding one to guarantee
compatibility, which is XX.XX.31740.15 in this release, so we bump this
requirement accordingly.

Co-authored-by: Xavier Hallade <me@ph0b.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/134051
2025-02-05 15:00:04 +01:00
Thomas Dinges
8a6e3a0bd7 Release: Bump branch to 4.4 Beta.
Splash screen by Flow.
2025-02-05 11:24:33 +01:00
Brecht Van Lommel
7b976eb810 Build: Add OpenSubdiv patch to silence ASAN warnings
Until upstream PR #1343 is merged.
2025-02-04 18:02:34 +01:00
Brecht Van Lommel
f29e0546e3 Build: Enable custom USD namespace for Blender again
This was removed to make building USD plugins easier, without the need to
compile them for Blender specifically. However it also causes errors when
using the bpy module together with the usd-core pip package.

In practice there are not many USD plugins, and often need to be compiled
for Blender specifically anyway due to the monolithic library and DCCs being
on different USD versions.

Additionally, this adds a patch to avoid conflicts when loading the
same USD library version through Blender and usd-core on Windows and macOS.

Fix #127132: Crash using bpy and usd-core pip package together.

Co-authored-by: Ray Molenkamp <github@lazydodo.com>

Pull Request: https://projects.blender.org/blender/blender/pulls/133083
2025-02-04 18:02:34 +01:00
Bastien Montagne
e5bf3a28aa install_linux_packages: updated USD and materialX versions.
USD: 24.11
MaterialX: 1.38.10

See also #128577.
2025-02-04 17:29:56 +01:00
Bastien Montagne
5ea5cb9b13 install_linux_package: update OpenEXR, OCIO, OpenVDB versions.
OpenEXR: 3.3.2
OpenColorIO: 2.4.1
OpenVDB: 12.0.0

Also sync up exact FFMPEG version with reference (6.1.1, from
`versions.cmake`), and accept 7.x versions since Blender should also be
compatible with this major release.

See also #128577.
2025-02-04 17:29:56 +01:00
Bastien Montagne
f871815663 install_linux_packages: Updated Boost and OneTBB versions.
Boost: 1.85.0
OneTBB: 2021.13.0 (min is now 2021.0.0).

See also #128577.
2025-02-04 17:29:56 +01:00
Bastien Montagne
92d2544aa1 install_linux_package: Update python-related packages versions.
Python3: 3.11.11
CPython: 3.0.10
NumPY: 1.26.4

See also #128577
2025-02-04 17:29:56 +01:00
Bastien Montagne
66aa535faf install_linux_packages: Fix debian package query invalid results.
Turns out, `apt-cache` will not use exact package names match, leading
to invalid successful results in case a given package does not exist,
but a extended-name one does (e.g. looking for `python3.11` will return
results for packages like `libpython3.11-stdlib`...).

So add a first check using `apt show`, to ensure the requested package
name does exist first!

Also add a `__repr__` callback to the `PackageInstaller` class.
2025-02-04 17:29:56 +01:00
Bastien Montagne
06558d639e install_linux_package: Update/add OneAPI level-zero package.
Add package for Debian and Suse distros. Upgrade version to 1.19.2.

See also #128577.
2025-02-04 12:54:12 +01:00
Bastien Montagne
646d94be58 install_linux_package: Update Embree and OIDenoiser.
Embree: 4.3.3
OpenImageDenoiser version: 2.3.2

See also #128577
2025-02-04 12:54:12 +01:00
Bastien Montagne
88149918f1 install_linux_package: add harfbuzz library.
Although not currently used by `main` Blender, this library has been
tracked by platform maintainers for some times now, so time to also add
it to this script.

See aslo #128577.
2025-02-04 12:54:12 +01:00
Xavier Hallade
886cd0244f Build: Work around VS2019 compiler error when compiling DPC++
Pull Request: https://projects.blender.org/blender/blender/pulls/132763
2025-02-03 20:58:00 +01:00
Xavier Hallade
bdb093f58d Build: upgrade DPC++/Level-Zero to 6.0.0-rc1/1.19.2 releases
including a backport of device image compression:
https://github.com/intel/llvm/pull/15124 that can be enabled by adding
`--offload-compress` compiler option.
2025-02-03 20:58:00 +01:00
Xavier Hallade
7fb480095e Build: Embree: upgrade from 4.3.2-blender to 4.3.3 2025-02-03 20:58:00 +01:00
Campbell Barton
9d4b48b107 Cleanup: spelling in build-files & docs 2025-01-31 15:22:50 +11:00
Ray Molenkamp
78cf27df32 Deps: Update GLU/Mesa upstream URIs
Looks like their ftp server isn't responding, switched
over to https.
2025-01-28 09:30:32 -07:00
Patrick Mours
bedf7ff0c1 Fix #132036: Minimum CUDA architecture in generated OSL PTX code
Cycles supports OptiX on Maxwell and up architectures, but the
default in OSL is to generate PTX targeting Pascal and up. Adjust the
OSL target architecture to Maxwell to fix this.

Pull Request: https://projects.blender.org/blender/blender/pulls/133011
2025-01-23 10:38:05 +01:00
Nikita Sirgienko
84bc5741cc Build: Upgrade OIDN to 2.3.2
This upgrades OIDN to the 2.3.2 release
and bring minor improvements.

Ref #128577

Pull Request: https://projects.blender.org/blender/blender/pulls/133321
2025-01-20 16:51:04 +01:00
Ray Molenkamp
716fda7df1 Deps: Windows: Add back nuke convenience script
To easily force a rebuild of a dependency the nuke script will remove all build
artifacts for a specific dependency from the dependency build folder. This includes

- The Debug and Release build folder of the dependency
- The Debug and Release staging output folder of the dependency
- The harvest output folder of the dependency

For dependencies that have a long dependency chain like embree, shaderc and
python extra convenience scripts are added that nuke the additional deps that
need to be removed to obtain a fully clean build.
2025-01-14 18:12:02 -07:00
Ray Molenkamp
9d69327418 Deps: Windows: x64: Update dependency build scripts
These scripts have not been updated in years, and locally i had better
versions of them. This commit updates them to the latest i had locally
this should hopefully lower the barrier to building the dependencies by
other developers as all that is needed is a fresh VM with a clean
windows install.

Removed:

buildall.cmd - not useful, we no longer build for 2 vs versions
and 2 architectures , removed

nuke.cmd - same, may come back in the future in some form

New:

vmprep.cmd.txt - This preps a clean windows vm with the correct
versions of visual studio/cuda/git/hip/meson to build all dependencies.

this should only and ever be run on a clean install of windows, do not
under any circumstances run this on a developer workstation.

to prevent people from doing this anyhow this script has a .txt
extension so it cannot be accidentally executed, instructions on how to
run this script are this file.

vmbuild.cmd.txt - Helper build script, vmprep will provision the build
machine with this script.

vsconfig_2019 - installer script for visual studio 2019 to select the
workloads we require.
2025-01-14 10:52:44 -07:00
Jonas Holzman
b2737510ee Deps: Update Boost library download URL
The current Boost download source we use (boostorg.jfrog.io) was
shut down, this PR replaces it with the new CDN (archives.boost.io)
the official boost.org website has switched to.

Refs:
https://github.com/boostorg/website/pull/900
https://github.com/boostorg/boost/issues/845#issuecomment-2541753013
https://github.com/boostorg/boost/issues/842

Pull Request: https://projects.blender.org/blender/blender/pulls/132774
2025-01-08 10:16:51 +01:00
Campbell Barton
4f1817cc18 Cleanup: declare __all__ for Python scripts
Declare all to make public public API's explicit and
help detect unused code.
2025-01-06 16:45:36 +11:00
Campbell Barton
c27bf6bef8 Cleanup: CMake indentation 2025-01-06 12:48:51 +11:00
Campbell Barton
33e38c605f Cleanup: correct indentation for CMake files, strip trailing space 2025-01-03 13:23:38 +11:00
Ray Molenkamp
5783950ac5 Revert: 0dc484f9cc bf_rna modernisation
This caused build errors on the docs builder, I can't seem to reproduce
locally, so revert for now and have another look at some point in the
future.

Sadly as these changes usually go, this took 5c515e26bb and
2f0fc7fc9f with it as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/132559
2025-01-02 19:56:24 +01:00
Campbell Barton
5c515e26bb Cleanup: remove trailing space, ensure a newline at EOF 2025-01-02 15:11:18 +11:00
Campbell Barton
dfef060ea4 Cleanup: spelling in comments (make check_spelling_*)
Also use doxy-code blocks for inlined TEX to avoid
them being interpreted as English.
2025-01-02 15:11:17 +11:00
Campbell Barton
d64bd41ee9 Cleanup: wrap long lines 2025-01-02 15:11:14 +11:00
Brecht Van Lommel
d3d19724d8 CLeanup: Guard against import set_rpath.py as a module
Avoids errors with the system python test.
2024-12-31 00:20:49 +01:00
Brecht Van Lommel
00a51b18b7 Fix: System python test failure after #132432
The text keyword is an alias of universal_newlines, and was introduced
in newer Python versions.
2024-12-31 00:20:32 +01:00
Hans Goudey
fbc5710ddd Cleanup: Formatting 2024-12-30 14:56:50 -05:00
feelamee
5920b157f6 install_linux_packages: fallback to doas if sudo is not found
Just convenience change to increase UX for little part of linux users, who love `doas`)

P.S.: doas is...
> Like sudo, doas is used to assume the identity of another user on the system.

from https://wiki.archlinux.org/title/Doas

Pull Request: https://projects.blender.org/blender/blender/pulls/132432
2024-12-30 20:22:31 +01:00
Ray Molenkamp
5eba4313aa Deps_Builder: Win: Use blender mirror of msys2 for bootstrapping
This (optionally) uses the blender mirror for bootstrapping the msys2
environment, this is needed since some upstream providers remove older
packages frequently which makes it difficult to build older libs from
scratch.

Pull Request: https://projects.blender.org/blender/blender/pulls/131617
2024-12-19 14:41:24 +01:00
salipourto
4e5a9c5dfb Cycles: Handling SDK/ROCm 6+ lack of backward compatibility with pre ROCm 6
This commit introduces proper handling of ROCm 5 and ROCm 6 runtimes on
Linux, based on the version of the ROCm compiler used at build time.
Previously, HIPEW (the HIP equivalent of Cuda Wrangler) defaulted to
loading the ROCm 5 runtime. If ROCm 5 was unavailable, it would attempt
to load ROCm 6. However, ROCm 6 introduces changes in certain
structures and functions that are not backward compatible, leading to
potential issues when kernels compiled with the ROCm 6 compiler are
executed on the ROCm 5 runtime.

### Summary of Changes:

**Separation of Structures and Functions:**
Structures and functions are now separated into hipew5 and hipew6 to
accommodate the differences between ROCm versions.

**Build-Time Version Detection:**
The ROCm version is determined during build time, and the corresponding
hipew5 or hipew6 is included accordingly.

**Runtime Default to ROCm 6:**
By default, HIPEW now loads the ROCm 6 runtime and
includes hipew6 (Linux only).

**JIT Compilation Behavior:**
Since ROCm 6 is the default version, JIT compilation is supported only
when the ROCm 6 compiler is detected at runtime.

**HIP-RT Update:**
HIP-RT has been updated to load the ROCm 6 runtime by default.

These changes ensure compatibility and stability when switching
between ROCm versions, avoiding issues caused by runtime
and compiler mismatches.

Co-authored-by: Alaska <alaskayou01@gmail.com>
Co-authored-by: Sergey Sharybin <sergey@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/130153
2024-12-17 16:19:36 +01:00