Commit Graph

4004 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
Campbell Barton
e50420f918 Cleanup: resolve mypy warning 2025-03-06 11:13:09 +11:00
Sebastian Parborg
277add8fc9 Add ability to create a test data archive with make_source_archive
This makes it so that we ship the test data for every major release
in its own separate archive. (In case someone wants to easily run the
tests for a specific older release without using git)

Pull Request: https://projects.blender.org/blender/blender/pulls/135293
2025-03-04 13:55:23 +01:00
Sebastian Parborg
7913237d33 Change make_source_archive to include all submodule files
It will not include submodules that are not checked out by default.
It now also has an explicit variable for folders to skip.

Pull Request: https://projects.blender.org/blender/blender/pulls/135293
2025-03-04 13:55:12 +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
Anthony Roberts
d29ef95c3c Windows: Rework clang scripts, and enable by default on Windows ARM64
This switches clang to be the default compiler on Windows ARM64, allowing for an override to MSVC.

Turns out MSVC builds have been broken for months, but nobody checked, so I'm just switching them off for now and setting clang as the default.

These updated scripts allow for the msbuild generator to use an external (ie, non-MSVC) clang installation properly, otherwise they failed.

They also allow for users to specify their own desired clang compiler via an environment variable.

An update to the docs will come seperately.

Pull Request: https://projects.blender.org/blender/blender/pulls/134566
2025-02-20 11:23:01 +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
Anthony Roberts
088262dfee Windows ARM64: Check and cache VSCMD version
This uses the same technique as the one earlier in the file, that checks the `VCToolsRedistDir` env var

Pull Request: https://projects.blender.org/blender/blender/pulls/134522
2025-02-13 19:59:31 +01:00
Anthony Roberts
ace957a124 Windows: Guard VsDevCmd env var check to ARM64 only
This is a "quick fix" guard check to unbreak things - I'll put a proper checking mechanism in later that checks if it's undefined etc

Pull Request: https://projects.blender.org/blender/blender/pulls/134512
2025-02-13 17:42:49 +01:00
Anthony Roberts
bf53ee96e5 Windows ARM64: 4.4 Library Updates
Updates the prebuilt libs to the versions used in 4.4

Also adds a check to ensure users are using at least the version of VS2022, that was used to compile the libraries

Pull Request: https://projects.blender.org/blender/blender/pulls/134405
2025-02-13 16:51:19 +01:00
Nikita Sirgienko
2bab4ae370 Cycles: oneAPI: Optimize texture access by using GPU HW sampler
The current usage of software-based texture operations in
the oneAPI implementation puts additional register pressure on
the GPU compiler during register allocation. And it also creates
code that requires maintenance. This commit is intended to address
this situation by utilizing a recently productized SYCL bindless
texture API to enable HW-based texture operations using
Intel GPUs' hardware sampler.

This currently translates to 1-11% rendering speedups (scene-specific)
on my Arc A770 and Arc B580. At the moment, there are small
performance regressions with NanoVDB texture operations on Arc B580
and small performance regressions in shade surface MNEE and Raytrace
kernels on Arc A770, but they look recoverable and will be handled
in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/133457
2025-02-12 21:47:34 +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
Patrick Mours
5810c94f95 Cycles: Add Blackwell to Cycles CUDA binaries architectures
Enables building of a Cubin for GPUs based on Blackwell architecture
if CUDA toolkit version 12.8 or higher is installed.
Only added sm_120 to the default set, since it is the one relevant for
consumer GPUs (RTX 5090 etc.) that are generally used with Blender.

Pull Request: https://projects.blender.org/blender/blender/pulls/134170
2025-02-10 14:55:28 +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
Ray Molenkamp
227750926d CMake: Windows add opencolorio to PLATFORM_ENV_BUILD_DIRS
required to run oiiotool during the tests.
2025-02-09 10:33:20 -07:00
Brecht Van Lommel
f9c4ad1477 Build: Auto clear CMake cache variables for 4.4 library update
And remove some old checks that are no longer relevant.

Pull Request: https://projects.blender.org/blender/blender/pulls/134244
2025-02-07 21:23:58 +01: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
Brecht Van Lommel
d568867c80 Fix: SYCL library not found after recent library update
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
Thomas Dinges
d66b10bac0 Cleanup: Remove transform parameter now that asset folder was updated. 2025-02-04 16:43:54 +01:00
Thomas Dinges
21873221f8 Fix make_source_archive using outdated path to assets. 2025-02-04 16:19:54 +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
59732c95d8 Cleanup: strip trailing space for TOML,HTML & XML 2025-02-02 13:58:34 +11:00
Campbell Barton
4cd827870d Cleanup: quiet check_spelling_* targets
Also correct outdated references to `ghash`.
2025-02-02 13:58:34 +11:00
Campbell Barton
9d4b48b107 Cleanup: spelling in build-files & docs 2025-01-31 15:22:50 +11:00
Ankit Meel
301e298040 Build: Remove macOS mold and lld linkers support
The mold linker doesn't support macOS anymore. The sold linker
gets no new releases since the Xcode 15+ linker is at par with sold.

https://github.com/bluewhalesystems/sold/issues/50#issuecomment-2076249631
https://github.com/rui314/mold/issues/189#issuecomment-1495288926

Pull Request: https://projects.blender.org/blender/blender/pulls/133634
2025-01-30 18:21:38 +01:00
Aras Pranckevicius
73f8e4c3c6 Build: echo currently compiled file names when using clang-cl on Windows
MSVC does this by default, and is a good way to see build progress
indication, when using msbuild. clang-cl also got that option back
in 2018, but it is off by default.

Pull Request: https://projects.blender.org/blender/blender/pulls/133810
2025-01-30 13:43:29 +01:00
Lukas Stockner
c997e61414 Cycles: Bump minimum OSL version to 1.13.4
That version has a bunch of API changes, so by dropping support for older
versions we can remove old compatibility code.
Also, that version is required for OptiX support, so building a fully-featured
Cycles wasn't possible with older OSL anyways.

Pull Request: https://projects.blender.org/blender/blender/pulls/133746
2025-01-29 21:17:21 +01:00