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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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
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