Commit Graph

4174 Commits

Author SHA1 Message Date
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
Jeroen Bakker
3a4c4c88fa Fix #139882: Vulkan/USD: Crash on AMD GPUs
When USD sends work to the GPU (dispatch) incorrect datatype conversions
can send incorrect vulkan commands. This happens on AMD GPUs. This PR
will patch USD to limit the max allowed limit. A better solution would
be to only use uint32_t in this function, but there is no `GfVec3u` data
type and I didn't want to do to many changes.

![image.png](/attachments/642bd3d5-c6b6-4e1a-be1c-be847e6893bd)

**TODO**

- [x] Validate with @ZedDB that this compiles and solves all the issues
- [x] Add other platform maintainers as reviewers. This is a Windows + Linux issue.
- [ ] Rebuild the USD library including this patch.

Pull Request: https://projects.blender.org/blender/blender/pulls/140102
2025-06-23 07:55:17 +02:00
Sergey Sharybin
29cab98b7f Merge branch 'blender-v4.5-release' 2025-06-20 17:26:31 +02:00
Sergey Sharybin
963d23b0de Make update: Tweak logic for the LFS fallback
Check for both git.b.o and projects.b.o pars of the URL.
The LFS objects should be able to be fetched from either
of those domains.

Pull Request: https://projects.blender.org/blender/blender/pulls/140647
2025-06-20 17:26:15 +02:00
Campbell Barton
05631085f8 Cleanup: spelling in comments (make check_spelling_*) 2025-06-19 11:40:00 +10:00
Sergey Sharybin
6af1afa27f Merge branch 'blender-v4.5-release' 2025-06-17 17:36:02 +02:00
Sergey Sharybin
ab4c8853ee Make update: Automatically switch to git.blender.org URLs
Ref #140121

Pull Request: https://projects.blender.org/blender/blender/pulls/140538
2025-06-17 17:34:28 +02:00
Jonas Holzman
53228d48be Merge branch 'blender-v4.5-release' 2025-06-16 08:48:11 +02:00
Jonas Holzman
918db88a34 Deps: macOS: Prevent accidental linking to system-wide libraries for certain deps
On the macOS deps builder, if certain libraries were installed
system-wide using Homebrew, they could be prioritized during the
linking of dependencies over our own versions, causing breakages
when running the built libraries on other systems.

For OpenColorIO, homebrew Imath could be linked if installed.
For TIFF (& libjpeg as a transitive dep), homebrew libdeflate
could be linked if installed.

This commit fixes both of these issues by directly specifying the
library path to prevent the linker from wrongly inferring it to a
system-wide path.
2025-06-16 08:44:43 +02:00
Campbell Barton
9422e4ddcf CMake: exclude "-Wextra" when removing strict flags
Having "extra" warnings caused too many warnings in areas
not actively maintained by Blender developers
(./extern/ and some of ./intern/).
2025-06-13 10:55:27 +10:00
Campbell Barton
8c6eea4a2a CMake: exclude "-Wextra" when removing strict flags
Having "extra" warnings caused too many warnings in areas
not actively maintained by Blender developers
(./extern/ and some of ./intern/).
2025-06-13 00:52:37 +00:00
Aras Pranckevicius
5ad6d42c83 IO: Remove Collada import/export
Removes Collada import/export (has been deprecated since 4.2).

Pull Request: https://projects.blender.org/blender/blender/pulls/139337
2025-06-06 08:38:57 +02:00
Brecht Van Lommel
c2a2d1af1b Merge branch 'blender-v4.5-release' 2025-06-04 19:25:20 +02:00
Brecht Van Lommel
0add3f31a2 Cycles: Bump OptiX minimum and release version to 8.0.0
This requires a minimum driver version of 535, however most devices
were already requiring 570 due to the CUDA toolkit version.

The update is required to be able to use an API function for correct
stack size calculation.

Code for older API versions has been removed.

Fix #138185: OSL custom camera errors with OptiX

Pull Request: https://projects.blender.org/blender/blender/pulls/139801
2025-06-04 19:24:21 +02:00
Bastien Montagne
ec64e9cb86 Merge branch 'blender-v4.5-release' 2025-06-04 18:20:20 +02:00
Bastien Montagne
3a47bd7e5a Fix #139810: Missing git lfs checkout in make update.
When binary files managed by git-lfs are not hosted by the main source
repo (e.g. when using the github mirror), the fall-back repo set up by
`lfs_fallback_setup` does fetch the files, but the follow-up call to
`git pull` in `work_tree_update` does not check them out.

This commit simply adds an extra `git lfs checkout` command there.

Pull Request: https://projects.blender.org/blender/blender/pulls/139825
2025-06-04 18:19:25 +02:00
Brecht Van Lommel
e79fcb4f56 Merge branch 'blender-v4.5-release' 2025-06-04 16:14:05 +02:00
Brecht Van Lommel
2c948b873e Build: Make libraries compile on Linux ARM64 again
NASM is an x86 assembler, doesn't work on ARM.
2025-06-04 16:10:37 +02:00
Thomas Dinges
f224dbccce Revert "Release: Update 4.5 branch to beta"
This reverts commit ea5b1f7527.
2025-06-04 14:14:58 +02:00
Thomas Dinges
ea5b1f7527 Release: Update 4.5 branch to beta
Splash by Blender Studio
2025-06-04 14:10:17 +02:00
Campbell Barton
6a1fa176ef Cleanup: spelling in comments & duplicate terms (check_spelling.py)
Also minor clarification in doc-string.
2025-06-04 01:51:29 +00:00
Sebastian Parborg
40a7e1abb4 Build: Remove features from blosc that we don't use
Seems like only lz4 is used by openvdb. The zstd support were causing
runtime issues because of version mismatches with our other libraries.

In addition to this, blosc doesn't seem to properly link to static
libraries. The resulting static library has undefied symbols in it from
both zlib and zstd. This wasn't caught before as openvdb links to zlib.

Pull Request: https://projects.blender.org/blender/blender/pulls/139792
2025-06-03 18:13:40 +02:00
chunfeng_tsin-2
89622f1f12 Fix: inconsistent directory path in make.bat
Add missing trailing backslash to BLENDER_DIR path in git submodule
update command to match the formatting used elsewhere in the script.

This prevents the following error when python is not found during
the update:

cannot change to .. submodule update lib/windows_x64': Invalid argument

Pull Request: https://projects.blender.org/blender/blender/pulls/139616
2025-06-03 15:49:07 +02:00
Hans Goudey
77b14f2dcb Cleanup: Grammar: Fallback vs. fall back
The former is a noun or adjective, the latter is a verb.
2025-06-02 17:13:56 -04:00