Commit Graph

4197 Commits

Author SHA1 Message Date
Patrick Mours
d9cce547e6 Fix: OSL shadeops module fails to load in OptiX
The OSL dependency is built with target sm_50 currently, which means
that LLVM defaults to generating PTX version 4.0. However, due to an
apparent bug in LLVM 20 it still uses instructions that were only
introduced in PTX version 6.0. As a result OptiX refuses to load the
shadeops PTX with an `OPTIX_ERROR_INVALID_INPUT` error.

To fix this, raise the PTX version generated by LLVM to 6.0 for both the
shadeops module (which previously used 4.0) and also any generated code
(which previously used 5.0) to be safe. PTX version 6.0 was introduced with
CUDA 9, so it has pretty long driver backwards compatibility still.

This commit contains fixes for the OSL, to fully fix the original report
a recompiled OSL libraries would need to land for the affected platforms.

Ref #147361

Pull Request: https://projects.blender.org/blender/blender/pulls/147620
2025-10-15 16:18:46 +02:00
Sergey Sharybin
1621950441 Build: Fix threading issue in OSL
This change ports the PR from upstream to the build system:
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/2029

Ref #147642

Pull Request: https://projects.blender.org/blender/blender/pulls/147727
2025-10-15 16:07:45 +02:00
Campbell Barton
365757ce7e Build: add "include/ffmpeg" to the include search path
Support the path used by ffmpeg-devel on Fedora.

Resolves #147952.
2025-10-15 07:55:12 +00:00
Nikita Sirgienko
b133019f9f Cycles: oneAPI: use ocloc 101.8132 on Windows
This new version of the graphics compiler improves performance
for the majority of supported Intel devices and adds support
for upcoming Intel hardware. Such an upgrade also requires
an increase in the minimal supported driver version on Windows,
which is why these changes are combined together with
the ocloc upgrade.

Previously set minimal version 101.6557 was increased to 101.8132.

Pull Request: https://projects.blender.org/blender/blender/pulls/147460
2025-10-08 13:36:08 +02:00
Thomas Dinges
e3e8c283d5 Release: Bump 5.0 to beta 2025-10-08 12:02:49 +02:00
Thomas Dinges
d71151df4c Fix license info for PThreads
Pull Request: https://projects.blender.org/blender/blender/pulls/147545
2025-10-07 15:23:34 +02:00
Campbell Barton
3de925589f Cleanup: strip trailing space 2025-10-07 10:19:46 +11:00
Kace
c989add4cd VSE: Sound pitch correction
Add sound pitch correction functionality, so that retimed sound strips
can preserve their original pitch.

This has been implemented as a GSoC 2025 project. Actual pitch
correction is done with Rubberband library, which has been already
included into Blender 5.0 library builds; and then most of the other
code has been in Audaspace, which was already updated within Blender
tree earlier.

So this PR just flips on Rubberband build option, and adds the
checkbox to VSE sound strips for pitch correction (on by default for
newly created sound strips). Pitch correction works with both
simple whole-strip retiming, as well as more complex retiming setups
where different parts of the strip use different speeds.

Co-authored-by: Aras Pranckevicius <aras@nesnausk.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/143347
2025-10-03 09:42:48 +02:00
Brecht Van Lommel
62f8f372c4 Build: Auto update to new haru precompiled library name on macOS and Linux
Pull Request: https://projects.blender.org/blender/blender/pulls/147230
2025-10-02 20:13:01 +02:00
Thomas Dinges
66224d69b0 Deps: Library changes for Blender 5.0
This commit includes the changes to the build system, updated hashes to the actual new libraries as well as a required test update.

* DPC++ 6.2.0 RC
* freetype 2.13.3
* HIP 6.4.5010
* IGC 2.16.0
* ISPC 1.28.0
* libharu  2.4.5
* libpng 1.6.50
* libvpx 1.15.2
* libxml2 2.14.5
* LLVM 20.1.8
* Manifold 3.2.1
* MaterialX 1.39.3
* OpenColorIO 2.4.2
* openexr 3.3.5
* OpenImageIO 3.0.9.1
* openjpeg 2.5.3
* OpenShadingLanguage 1.14.7.0
* openssl 3.5.2
* Python 3.11.13
* Rubber Band 4.0.0
* ShaderC 2025.3
* sqlite 3.50.4
* USD 25.08
* Wayland 1.24.0

Ref #138940

Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com>
Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Co-authored-by: Kace <lakacey03@gmail.com>
Co-authored-by: Sebastian Parborg <sebastian@blender.org>
Co-authored-by: Anthony Roberts <anthony.roberts@linaro.org>
Co-authored-by: Jonas Holzman <jonas@holzman.fr>

Pull Request: https://projects.blender.org/blender/blender/pulls/144479
2025-10-02 18:34:11 +02:00
Sebastian Parborg
fcc1502146 Cleanup: Remove the now unused lzma and lzo libraries from extern
LZO and LZMA has been unused in Blender since #141461

Pull Request: https://projects.blender.org/blender/blender/pulls/146842
2025-09-26 15:55:47 +02:00
vbeckham
901835a2c7 Fix: Failure to pass the full PATH to Blender ctests on Windows
Due to this bug only the first item in the current PATH on the system
is used when running Blender.

The PATH is appended to a string type variable, which is then used as
one element of a list in build_files\cmake\testing.cmake line 24. Since
in cmake the semicolon is a list element delimiter, we need to escape
all the semicolons in our PATH string if we want to use the variable as
a single entry in the list.

Pull Request: https://projects.blender.org/blender/blender/pulls/146770
2025-09-25 15:27:33 +02:00
Clément Foucault
fe213f80a4 GPU: Shader: Make info files generated
This is the first step of moving the create infos
back inside shader sources.

All info files are now treated as source files.
However, they are not considered in the include tree
yet. This will come in another following PR.

Each shader source file now generate a `.info` file
containing only the create info declarations.

This renames all info files so that they do not
conflict with their previous versions that were
copied (non-generated).

Pull Request: https://projects.blender.org/blender/blender/pulls/146676
2025-09-25 10:57:02 +02:00
Dalai Felinto
ad4ffa595b make lite: force WITH_ASSERT_RELEASE to be ON
WITH_ASSERT_ABORT is already on by default on builds.
Having WITH_ASSERT_RELEASE makes the lite builds more useful by default.

This would have helped to spot issues like: d8ef3b3752

Pull Request: https://projects.blender.org/blender/blender/pulls/146696
2025-09-24 11:38:18 +02:00
luz paz
612f869036 Cleanup: Fix typos in build_files subdirectory
Fixes several typos in the build_files sub-directory.

Pull Request: https://projects.blender.org/blender/blender/pulls/146344
2025-09-17 15:35:45 +02:00
Ray Molenkamp
edd2981057 CMake: Win: Properly report VS2026 when detected
Support was working already, bit we still reported it as VS2022.
This is merely a cosmetic change.
2025-09-14 10:58:45 -06:00
Ray Molenkamp
eccb7fddb0 CMake: Win: Disable fastlink for VS2026
This option has been removed in vs2026 and will cause a build error,
disabling this option results in our default /DEBUG being used
which is equivalent to /debug:full which is the suggested
replacement
2025-09-11 11:45:25 -06:00
Ray Molenkamp
d7bcf6e1f9 Win: Preliminary VS 2026 support
There is no CMake version yet that support VS2026, support is
currently limited to ninja based builds.

CMake does not know where to look for the MSVC 2026 Runtime
it copies the wrong CRT leading to startup issues, for this reason
WITH_WINDOWS_BUNDLE_CRT has been disabled for VS2026 + CMake < 4.2.0.
Builds done with VS2026 are for this reason *NOT* distributable to
end users at this point in time.

CMake 4.2.0 Is *expected* to have VS 2026 support [1]

But further testing is likely required.

Things of note:

- They stopped using the "preview" channel and have rebranded to
"Insiders" the make.bat options have been updated accordingly to
select the 2026 Insiders build, you need to pass 2026i to make.bat

- All tests seem to pass on my system

- No new warnings, pretty smooth update

[1] https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11168
2025-09-11 08:48:53 -06:00
Sergey Sharybin
7e2c0ea70c Cycles: Switch to HIP SDK 6.4.3 on Linux
Makes it consistent with the build environment provision changes in #145281.

Pull Request: https://projects.blender.org/blender/blender/pulls/145789
2025-09-08 12:44:31 +02:00
Alaska
081dda7f68 Build environment: Lock Linux deps builder CUDA toolkit version to 12.8
Prior to this commit, the Rocky Linux dependency builder environment
setup script would download the latest version of CUDA rather than a
specific version.

This makes it harder to ensure a consistent environment for people
building Blender's libraries, and recently, it has lead to errors
building some of Blender's dependencies due to incompatibilites with
the latest CUDA version and the library versions we build.
E.g. The OSL version we use does not work properly with CUDA 13.

Pull Request: https://projects.blender.org/blender/blender/pulls/145859
2025-09-08 12:40:35 +02:00
Campbell Barton
3c7f4edd92 Cleanup: spelling in comments & string
Also back-tick quote literals in CMakeLists files.
2025-09-06 09:27:54 +10:00
Sergey Sharybin
03003365cc Cycles: Switch to HIP SDK 6.4.2 on Windows
This also reverts 367d5b7eabd53229fb7e79465b4761e65e531741,
as the math flags workaround is no longer needed.

Fix #139796
Fix #138646
Fix #139071
Fix #139070

Ref #140278

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/145311
2025-08-29 12:49:11 +02:00
Campbell Barton
85d5ade00f Cleanup: spelling in comments (make check_spelling_*) 2025-08-24 06:26:08 +00:00
Campbell Barton
f9bf5841fb Cleanup: correction to mark_as_advanced from last commit 2025-08-21 16:18:57 +10:00
Campbell Barton
ecc5930684 Cleanup: mark library directories as advanced on UNIX 2025-08-21 16:15:06 +10:00
Campbell Barton
2e6fb3e8e7 Cleanup: suppress deprecated-copy warnings 2025-08-21 02:05:34 +00:00
Jeroen Bakker
1f1098c498 Vulkan: Remove MoltenVK
Blender had some support for using MoltenVK. However there are some key
issues why MotlenVK cannot be used. Bugs have been reported up-stream.
As it doesn't work and holds back regular developments it will be removed
from the main branch.

Any efforts on making Vulkan run on Apple (including KosmicKrisp)
is considered a community effort and can be done in a development
branch.

Pull Request: https://projects.blender.org/blender/blender/pulls/144602
2025-08-15 09:36:38 +02:00
Sergey Sharybin
cfd04172c9 Fix #144521: Unable to fetch LFS objects on make update with Glthub mirror
The setting is called `lfs.remote.searchall`, the `remote` part of it being
an exact string, it is not to be expanded with the name of the remote.

Whenever name of the remote is to be used Git documentation uses `<remote>`
syntax.

Tested by triggering the original issue (clone the Github mirror, make update,
wait for a new LFS object appear in the upstream, make update again). Before
this change the LFS object will not be fetched, and based on the Git Curl's
log only the github origin was used to fetch LFS object, none other remotes
were tried.

Also confirmed by checking the Git-LFS code:
https://github.com/git-lfs/git-lfs/blob/v3.7.0/config/config.go#L232

Pull Request: https://projects.blender.org/blender/blender/pulls/144574
2025-08-14 17:51:52 +02:00
Jesse Yurkovich
0240a1f32f Cleanup: CMake: Modernize bf_intern_openvdb dependencies
This follows the other CMake "modernization" commits, this time for
`bf_intern_openvdb` and the OpenVDB dependency itself.

The difference with this one is that `intern/openvdb` becomes an
"optional" dependency itself. This is because downstream consumers often
want to include this dependency rather than openvdb directly, so this
target must also be optional. Optional, in this case, means the target
always exists but may be entirely empty.

Summary
- If you are using BKE APIs to access openvdb features, then use the
  `bf::blenkernel` target
- If you are only using `intern/openvdb` APIs then use the
  `bf::intern::optional::openvdb` target (rare)
- For all other cases, use the `bf::dependencies::optional::openvdb`
  target (rare)

context: https://devtalk.blender.org/t/cmake-cleanup/30260
Pull Request: https://projects.blender.org/blender/blender/pulls/137071
2025-08-12 21:26:38 +02:00
Sybren A. Stüvel
bfd43d4320 Build files: add note that certain files should be py3.6 compatible
Add a note to `build_files/utils/README.md` that explains the Python files
in that directory have to be compatible with Python 3.6.

Pull Request: https://projects.blender.org/blender/blender/pulls/143792
2025-08-09 16:57:10 +02:00
Sybren A. Stüvel
3ca28acbb3 Introduce Python code generator for OpenAPI spec to dataclasses
Add a [Python code generator][1] that takes an OpenAPI definition and
outputs the corresponding data model as [dataclasses][2]

This is intended to be used in the Remote Asset Library project, to
create, download, parse, and validate information of a remote asset
library.

[1]: https://koxudaxi.github.io/datamodel-code-generator/
[2]: https://docs.python.org/3/library/dataclasses.html

## Running the Generator

The generator is a Python script, which creates its own Python
virtualenv, installs the dependencies it needs, and then runs the
generator within that virtualenv.

The script is intended to run via the `generate_datamodels` CMake
target. For example, `ninja generate_datamodels` in the build
directory.

## Details

The virtualenv is created in Blender's build directory, and is not
cleaned up after running. This means that subsequent runs will just
use it directly, instead of reinstalling dependencies on every run.

## Generated Code & Interaction with Build System

It is my intention that the code generation _only_ happens when the
OpenAPI specification changes. This means that the generated code will
be committed to Git like any hand-written code. Building Blender will
therefore _not_ require the code generator to run. Only people working
on the area that uses the generated code will have to deal with this.

Pull Request: https://projects.blender.org/blender/blender/pulls/139495
2025-08-01 16:33:56 +02:00
Bart van der Braak
2986a2696f Python Module: Add note about archived versions
Related to infrastructure/meta#146

Pull Request: https://projects.blender.org/blender/blender/pulls/143470
2025-07-30 10:43:25 +02:00
Brecht Van Lommel
b4417cff35 Build: Change make update to always do git lfs pull
Some users still have issues getting LFS files downloaded properly, though the
exact cause is unclear. Normally with a properly installed git lfs, git pull
should already take care of it.

When for whatever reason that is not the case and files have not been fetched
yet, now do lfs pull which is the same as lfs fetch + lfs checkout. Even when
git pull can not run.

Ref #143461

Pull Request: https://projects.blender.org/blender/blender/pulls/143478
2025-07-29 13:35:03 +02:00
Jonas Holzman
9d993b4f74 Build: Add macOS x64 deprecation warning to make update
Add a simple deprecation message to warn users that macOS pre-compiled
dependencies are no longer provided starting with 5.0, and that they
should either build the libraries themselves or downgrade to 4.5.

This is what the warning looks like in context:
```
$ make update
git lfs install --skip-repo
Git LFS initialized.

Configuring Precompiled Libraries
=================================

Detected platform     : macos
Detected architecture : x64

Updating Libraries
==================

* Skipping lib/linux_x64
* Skipping lib/macos_arm64
* Skipping lib/windows_x64
* Skipping lib/windows_arm64

Update finished with the following messages
===========================================

Blender repository skipped: you have unstaged changes
WARNING: macOS x64/Intel support was dropped in Blender 5.0.
         As such, pre-compiled dependencies are no longer provided.
         You may build the dependencies yourself, or downgrade to Blender 4.5.
         For more details, please see: https://devtalk.blender.org/t/38835
```

Pull Request: https://projects.blender.org/blender/blender/pulls/143133
2025-07-25 22:39:00 +02:00
Sebastian Parborg
850e933d93 install_linux_packages: add install_linux_packages and cattrs 2025-07-25 15:21:28 +02:00
Ray Molenkamp
25ad7ccf27 Deps: fastjsonschema 2.21.1 + cattrs 25.1.1
As requested by #141945 , This includes:

Attrs 25.3.0
Cattrs 25.1.1
Fastjsonschema 2.21.1
Typing_extensions 4.14.1

Pull Request: https://projects.blender.org/blender/blender/pulls/141950
2025-07-25 15:11:40 +02:00
Campbell Barton
f470a0bbd0 Cleanup: quiet mypy warning 2025-07-22 11:59:43 +10:00
Sebastian Parborg
0f4a46093e Fix: Properly package unicode folders/files with make_source_archive.py
The issue was that `git ls-files` will per default escape unicode
characters. This make it so that our python script couldn't find any
files or folder as it expected unescaped characters.
2025-07-21 12:37:11 +02:00
Sebastian Parborg
17b9759942 CMake: Sync up minimum version to 3.10
Besides being more consistent with the minimum version we use, this also
fixes warnings when using CMake 4.0.

Pull Request: https://projects.blender.org/blender/blender/pulls/142497
2025-07-19 20:37:10 +02:00
Bastien Montagne
f4671fd3ca Buildbot MacOS: Increase xcode version to 16.3
tested several time on the buildbot, everything seems to be fine. And it allows enabling sanitizer builds for macos.

Pull Request: https://projects.blender.org/blender/blender/pulls/141949
2025-07-18 15:56:26 +02:00
Sebastian Parborg
c19218e423 Fix #141943: Correctly detect manifold libs when not in strict mode 2025-07-17 11:33:43 +02:00
Ray Molenkamp
b150f56a5d Revert "Deps_builder: pydantic 2.11.7"
This reverts commit 81e862140f

binary packages turned out to have issues for debug builds on windows
as they link to python_311d.dll and none of the binary packages offfered
on pypi offered a debug build. Building pydantic from source was rejected
due to no rust build infrastructure being in place yet and deemed not
worth the effort for this one library dependency, an alternate solution
was chosen by the assets team that requested this dependency.
2025-07-15 08:09:37 -06:00
Ray Molenkamp
097531ccbf data_to_c: CMake: Speed-up data_to_c
This moves the logic to create the parent folder to data_to_c itself
rather than having cmake do it, preventing several thousand cmake instances
to be started.

see pr#141404 for details/benchmarks

Pull Request: https://projects.blender.org/blender/blender/pulls/141404
2025-07-15 02:08:14 +02:00
Campbell Barton
5dd160c39c Cleanup: indentation in cmake, sort files 2025-07-10 00:40:42 +00:00
Hans Goudey
13f32fdf6c Merge branch 'blender-v4.5-release' 2025-07-08 10:14:45 -04:00
Thomas Dinges
043ed61a02 Release: Update license info and regenerate license.md for 4.5. 2025-07-08 16:01:21 +02:00
Sebastian Parborg
8153b975a7 Merge branch 'blender-v4.5-release' 2025-07-07 18:33:12 +02:00
Sebastian Parborg
7f1529dee0 install_linux_packages: Bump with the 4.5 library changes
See #136540 for details
2025-07-07 18:32:51 +02:00
Ray Molenkamp
81e862140f Deps_builder: pydantic 2.11.7
As requested by @dr.sybren and approved by the admins

Also pydantics deps :

annotated-types 0.7.0
pydantic-core 2.33.2
typing-extensions 4.14.0
typing-inspection 0.4.1

these are installed as binary packages agreed upon with the admins

versions determined by just pip installing it and seeing what it dragged in.

as some of these are binary packages that will differ per platform, there will
be a per platform hash for some packages now unfortunately

Pull Request: https://projects.blender.org/blender/blender/pulls/140434
2025-07-04 15:25:17 +02:00
Jeroen Bakker
41e93e3d9b Merge branch 'blender-v4.5-release' 2025-06-23 07:58:03 +02:00