Commit Graph

1373 Commits

Author SHA1 Message Date
Nikita Sirgienko
11921b505b Build: upgrade DPC++ to 6.1.0 release
This upgrade for DPC++ and its dependencies brings several
bug fixes and also eliminates some patches and backports
that are now obsolete with this new release.

Pull Request: https://projects.blender.org/blender/blender/pulls/138173
2025-05-23 08:08:00 +02:00
Campbell Barton
72f24fcbab Cleanup: resolve pylint warnings 2025-05-23 14:03:20 +10:00
Thomas Dinges
0379a40627 Build: Update OIIO and Manifold
* OpenImageIO to v3.0.6.1
* Manifold to v.3.1.0

Pull Request: https://projects.blender.org/blender/blender/pulls/138938
2025-05-22 16:46:12 +02:00
Nikita Sirgienko
980624cc91 Build: Introduce new Device ID to OIDN 2.3.3
This ensures that OIDN 2.3.3 will support additional
Intel IP, which is important for the LTS version that
will be supported for two years into the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/139267
2025-05-22 12:04:10 +02:00
Campbell Barton
9819725666 Deps: update wayland dependencies
- wayland-protocols: 1.44
- wayland: 1.23.1
- weston: 14.0.2

Ref: !139127
2025-05-21 11:09:25 +10:00
Campbell Barton
7473124d0f Cleanup: remove trailing space 2025-05-20 11:52:08 +10:00
Ray Molenkamp
73c751afaf Deps_builder: Win: X64: Fix msys2 setup
on a freshly installed environment diff.exe requires newer runtime
dll's. For now only fix this on X64 as on windows on arm there's
issues with newer msys2 versions (but I do now know exactly what
they are anthony has brought it up in the past) this can however
not remain in a broken state, so fixing it for X64 only.

Also fix typo in download_package function

These two fixes together should bring a fresh vmprep install back
to working order.
2025-05-19 14:43:49 -06:00
Ray Molenkamp
aafd3a53bd deps: vmprep: update cmake to 3.31.7 needed for USD
Also fix typo in HIP version.
2025-05-19 13:58:35 -06:00
Ray Molenkamp
ee04d69edc deps: win: shaderc: do not harvest debug libs for shaderc
While shaderc is a c++ library, its api is a C based one so
we do not need a debug version of this library, the blender
side was already updated in f2b9dd3462 this cleans up the
builder side of things.
2025-05-19 13:50:03 -06:00
Nikita Sirgienko
cfb8aa24b2 Build: Upgrade OIDN to the release v2.3.3
This release brings several fixes that Blender no longer needs
to patch manually, as well as support for various new and
upcoming hardware.

Pull Request: https://projects.blender.org/blender/blender/pulls/138171
2025-05-19 17:39:41 +02:00
Nikita Sirgienko
2a4ca81af2 Build: Upgrade Embree library to release v4.4.0
This new version brings several fixes that Blender no
longer needs to patch manually. In addition, it includes
an internal change related to GPU memory management which,
together with the new API, could address several tickets
and issues currently reported in relation to Embree GPU execution.

Pull Request: https://projects.blender.org/blender/blender/pulls/138176
2025-05-19 11:34:19 +02:00
Lukas Stockner
6749695ccb Deps: Build OSL with LLVM bitcode
Split out from #138161.

I checked with a locally built OSL (on Linux), and all tests (incl. OptiX OSL)
still pass without the Cycles-side changes in that PR, so we can merge this and
update the libs separately.

The only file that needs to be updated in the deps is `liboslexec.so`,
and probably `llvm/lib/clang/17/include/__clang_cuda_device_functions.h`
(we don't use this when building Blender, but since it's changed,
it's probably cleaner to update it anyways).

Pull Request: https://projects.blender.org/blender/blender/pulls/138788
2025-05-18 14:53:13 +02:00
Ray Molenkamp
67ba636006 deps: Fix windows build.
Broken by PR#134221

- Couple of missing deps
- Windows is not happy with -J when building python deps
as multiple processes will try to write to the same .pdb
- Wrong .lib file name for the zstandard python module.
2025-05-15 09:19:29 -06:00
Campbell Barton
5e75a9c1e8 Cleanup: spelling in comments 2025-05-11 17:00:47 +10:00
Hans Goudey
1c21de6f77 Cleanup: Formatting 2025-05-09 10:14:44 -04:00
Sebastian Parborg
6d442ca4f1 Build: Make Linux Lib building reproducible
There are two parts for this PR. One is to change some of our build pipeline to make certain libs reproducible. For this part I want to clarify two things:

1. Why change python to use `--disable-optimizations`?
This is because `--enable-optimizations` turns on PGO (Profile Guided Optimization). PGO is sadly not deterministic and will create different binaries on every recompile. So to create reproducible build this needs to be turned off. This also seems to only have been turned on for Linux specifically(?) on our side. So on Windows and Mac our python build already doesn't have PGO.

2. Why split out cython and zstandard from site-packages?
Sadly pip does not seem to respect `SOURCE_DATE_EPOCH`. It also creates temporary folders with random hashes in them that is then recorded into the Cython libraries (I'll touch on this again later). I've looked at the discussions about this upstream and sadly the pip maintainers do not really want people to use pip as a reproducible build system pipeline and instead directs users to other solutions if they want reproducible builds.

The other part is about setting up our pipeline to not introduce any random hashes or build timestamps into our libraries. Here I do two things:

1. We need to set the `SOURCE_DATE_EPOCH` environmental variable to a specific date that will not change.
This is needed as the compile time date is recorded in certain libraries and files. (So hard coding it with this env var will make the end result reproducible)

2. We need to strip the created static and shared libraries. This is because the static libraries are not created in a deterministic way. For shared libraries some of our libraries includes debug symbols which contains paths to temporary files with random hashes. To solve this without stripping in post, we would need to either patch the linker on Rocky8 or patch a lot of our libraries. I think it is better to just do this as a post build step. (This seems to be what most linux distributions do as well).

With all this, we can make our Linux library builds is almost 100% reproducible. (At least on my machine where I tested)
By almost, I mean that there is sadly a catch in that certain libraries like Cython saves the source code path in their libraries for error messages. However now the builds are reproducible if the folder path is the same.
IE if the libraries are always built in `/home/builder/build_linux/deps_x64`, then they should now be reproducible.

Pull Request: https://projects.blender.org/blender/blender/pulls/134221
2025-05-09 15:25:16 +02:00
Ray Molenkamp
fb4b9a2785 win_x64: Re-enable hiprt
Given the SDK required is now available, we can enable this again.
2025-04-29 18:03:33 -06:00
Ray Molenkamp
8fe645370d WinX64_VM: Bump HIP to 6.3.42560 2025-04-29 18:02:10 -06:00
Lukas Stockner
8fdeebbcb2 Deps: Add missing dependency in apt install guide 2025-04-28 14:59:18 +02:00
Campbell Barton
682e5e3597 Cleanup: spelling in comments (make check_spelling_*) 2025-04-26 00:48:04 +00:00
Jonas Holzman
291bde7b78 CMake: TBB: Replace FindTBB module with TBB's own TBBConfig module
This patch replaces our own FindTBB module with TBB's own TBBConfig
module. On the technical side of things, this harvests the TBB CMake
config modules, and switches our TBB CMake find_package calls from
Module mode to Config mode. Integration was done using OpenPGL as a
blueprint for parsing TBB target's property back into CMake variables
(TBB_LIBRARIES and TBB_INCLUDE_DIRS).

Pull Request: https://projects.blender.org/blender/blender/pulls/137063
2025-04-15 17:31:36 +02:00
Campbell Barton
e544f543a0 CMake: pass a mode argument to message
While omitting the mode is supported it's generally better to clarify
the purpose of a message.
2025-04-05 21:42:16 +11:00
Campbell Barton
f48b4e3abf Cleanup: wrap long lines for CMake 2025-04-05 20:30:37 +11:00
Jonas Holzman
31175ccf19 Deps: macOS: Fix libffi build error on Xcode 16.3 / Apple Clang 17
This PR adds a simple patch to fix libffi compilation errors on Xcode
16.3 / Apple Clang 17. This patch has been ported from libffi Github
PR #857[1] and has now since been included in libffi 3.4.7

[1]: https://github.com/libffi/libffi/pull/857

The reason why we patch libffi v3.4.4 instead of just upgrading to 3.4.7
is that Python require specific versions of its dependencies. (See
comment in build_environment/cmake/versions.cmake about updating Python
version)

Once we upgrade Python and libffi is updated to 3.4.7 or beyond,
this patch can be safely removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/136934
2025-04-03 18:37:30 +02:00
Brecht Van Lommel
1ea89c82d4 Build: Remove OpenMP
It's better for performance to use a single thread pool for all areas of
Blender, and this gets us closer to that.

Bullet, Quadriflow, Mantaflow and Ceres still contain OpenMP code, but it
was already disabled.

On macOS, our OpenMP libraries are no longer compatible with the latest
Xcode 16.3. By removing OpenMP we no longer have to solve that problem.

OpenMP was disabled for bpy module builds on Windows ARM64, which also no
longer needs to be solved.

Pull Request: https://projects.blender.org/blender/blender/pulls/136865
2025-04-02 16:50:50 +02:00
Thomas Dinges
3727c78bcf Build: Add new Manifold library
A geometry library for topological robustness, requested by the Modeling module to be used for Boolean operations.

Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/135261
2025-04-01 17:17:49 +02:00
YimingWu
0566b802c7 Fix #134550: Python: Limit numpy version for bpy wheel
bpy is not compatible with numpy 2+, as the VFX reference platform uses
1.26 atm. This fix amended the install requirement package to specify
numpy>=1.26,<2.0 to mitigate this issue.

Suggested by Brandy Johnston (@bradyajohnston)

Pull Request: https://projects.blender.org/blender/blender/pulls/134551
2025-03-20 15:19:05 +01:00
Anthony Roberts
5a029fdf1f Merge branch 'blender-v4.4-release' 2025-03-10 14:42:18 +00:00
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
0da19b8dab Merge branch 'blender-v4.4-release' 2025-03-04 09:37:06 +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
c03ee7f6a8 Merge branch 'blender-v4.4-release' 2025-02-25 14:18:14 +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
Sergey Sharybin
c114ac97be Merge branch 'blender-v4.4-release' 2025-02-20 17:36:37 +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
5087246f39 Cleanup: strip trailing space, sort file lists 2025-02-16 20:42:16 +11:00
Campbell Barton
d02f957296 Merge branch 'blender-v4.4-release' 2025-02-16 17:17:56 +11:00
Campbell Barton
96179be206 Cleanup: cmake indentation 2025-02-16 17:14:12 +11:00
Ray Molenkamp
49af320b7f Deps: Shaderc Fix msvc runtime + switch to ninja
the static crt was selected, which isn't a problem as crt
object aren't passed between the host and the shared lib
still it's be nice to use the same runtime between both.
`SHADERC_ENABLE_SHARED_CRT` is a msvc specific option and
doesn't affect other platforms.

also switch build system from msbuild to ninja on windows.
this brings down the shaderc build time from 185 to 47 seconds
for the release libs, and 224 to 53 for the debug libs
total savings: 5 minutes!
2025-02-15 12:52:59 -07:00
Anthony Roberts
2dc1a5625d Merge branch 'blender-v4.4-release' 2025-02-14 14:45:03 +00: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
f45acb5714 Merge branch 'blender-v4.4-release' 2025-02-14 13:20:22 +00: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
33d34e2a05 Merge branch 'blender-v4.4-release' 2025-02-12 14:24:05 +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
3666f2e719 Merge branch 'blender-v4.4-release' 2025-02-12 13:45:53 +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
Brecht Van Lommel
2874da0e02 Cleanup: Remove unused patches 2025-02-12 12:27:17 +01:00
Jonas Holzman
7f2a7041ff Merge branch 'blender-v4.4-release' 2025-02-10 01:25:03 +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