Commit Graph

1659 Commits

Author SHA1 Message Date
Ray Molenkamp
76cd021a5c Cleanup: CMake: Fix cmake warning regarding DEPENDS keyword
DEPENDS is not supported for post_build commands and recent
cmake versions have started emitting warnings about that.

This can be safely removed, as cmake has been silently ignoring
the keyword for years.
2025-03-16 16:09:18 -06:00
Jesse Yurkovich
c29a50a6d9 Build: Use the standards conforming preprocessor when using VS2022
This is primarily to solve Intellisense failures with various USD
header files and macros. However, it also unifies Windows x64 with
Windows arm64 (though MSVC is unused for arm64 currently) since it would
be required for proper `sse2neon` support anyhow.

Pull Request: https://projects.blender.org/blender/blender/pulls/135844
2025-03-13 19:24:42 +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
Ray Molenkamp
c7fd8d5ad1 Fix: CMake: Windows: Make ASAN usable again on debug configurations
Seems like ASAN has been broken on debug builds for MSVC ever since
d5e50460e7 (1.5 years ago) the core reason is it's incompatible with
fastlink, it'll appear to work, but in the asan reports no symbols
will be resolved.

While looking into this, some other problems like the symbol format being
not inline with the table in the comment above it, and a warning coming
out of /extern were noted.

All of these issues are addressed in this commit.
2025-02-27 16:56:18 -07: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
Anthony Roberts
f90099550b Merge branch 'blender-v4.4-release' 2025-02-13 19:01:05 +00: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
090727c039 Merge remote-tracking branch 'origin/blender-v4.4-release' 2025-02-13 16:46:34 +00: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
Devashish Lal
1a62fdc82a Geometry Nodes: CSV import node
This commit implements a node to import CSV files as a point cloud.
The interface is minimal, with just a file path input. The type of each
column is chosen by whether the first value is an integer or a float
(those are currently the only supported types).

The goal of the node is to make it easier to get arbitrary data into
geometry nodes for visualization purposes, for example.

https://devtalk.blender.org/t/gsoc-2024-geometry-nodes-file-import-nodes/34482

Pull Request: https://projects.blender.org/blender/blender/pulls/126308
2025-02-10 16:56:52 +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
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
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
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
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
Campbell Barton
59732c95d8 Cleanup: strip trailing space for TOML,HTML & XML 2025-02-02 13:58:34 +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
Ankit Meel
b858319dd3 macOS/QuickLook: support rich thumbnail in Finder
Support thumbnail that shows the file contents instead
of the default blend file icon for all files in Finder.
Some files may still have the usual blender icon as thumbnail
depending on their contents.

blender-thumbnailer process is kept alive by the system
in the background and is invoked by QuickLook when needed.

The checkbox to disable the extension is present in
the Settings app.

It will NOT be an interactive "Preview" that allows richer
interactions like Panning viewport, or rotating 3D objects.
2025-01-23 17:00:19 +01:00
Ray Molenkamp
98addc0191 Windows: Minor clang-cl changes
- WITH_WINDOWS_EXTERNAL_MANIFEST is now required even for ninja
builds, this previously was not the case. so just apply it
across all build flavours on windows.

- fmsc-version=1922 is no longer needed, was required back when
support for clang on windows landed, is fine without it now.

- /MP gives better build performance when building from the IDE
makes no difference for a ninja build which wasn't struggling in
that department anyhow.
2025-01-22 13:18:57 -07:00
Brecht Van Lommel
c749f6c376 Cleanup: Remove unnecessary usage of Boost in the build system
* Some libraries like Alembic and OpenColorIO for a long time removed
  header dependencies on Boost.
* No need to have BOOST_LIBRARIES anymore, only BOOST_PYTHON_LIBRARIES
  is a direct dependency through USD headers.
* OpenVDB is no longer a static library, no need to link its dependencies.

Pull Request: https://projects.blender.org/blender/blender/pulls/133424
2025-01-22 10:02:22 +01:00
Brecht Van Lommel
820f261371 Refactor: Replace Boost Locale for translation
Use code adapted from boost::locale to implement locale name parsing
and .mo file reading ourselves.

Together with #132142 this removes the last direct Blender dependency
on Boost.

Pull Request: https://projects.blender.org/blender/blender/pulls/133347
2025-01-22 09:00:32 +01:00
Ray Molenkamp
89efa94a2d Fix #132198: Remove license dialog from the msi installer
This also removes the component selection, made sense when you could
install both blender and the game-engine player individually but since
the game-engine got removed the dialog is a bit strange, as if one were
to turn any of the components off you'd end up with a non-functional
blender.

The wix documentation [1] has the details on how/why the license dialog skip works.

[1] https://wixtoolset.org/docs/v3/wixui/wixui_customizations/#changing-the-ui-sequence-of-a-built-in-dialog-set

Pull Request: https://projects.blender.org/blender/blender/pulls/132308
2025-01-17 18:45:26 +01:00
Brecht Van Lommel
7c2ace05ab Cleanup: Correct logic for static Embree library SIMD libs
We are only using a dynamic library so this doesn't matter in practice,
just better to avoid having wrong examples in the code.

Pull Request: https://projects.blender.org/blender/blender/pulls/133105
2025-01-15 16:52:30 +01:00
Brecht Van Lommel
cd7e5f0357 Build: Link to fewer Boost libraries
There were still a bunch of indirect dependencies from when static
linking was used. No need to link Blender against them.

Pull Request: https://projects.blender.org/blender/blender/pulls/132914
2025-01-13 10:40:18 +01:00
Campbell Barton
f829fefabe CMake: disable WITH_PIPEWIRE for lite builds 2025-01-09 13:07:54 +11:00
Sebastian Parborg
bb53214661 Audaspace: Enforce minimal pipewire library version
While I implemented pipewire support I forgot that some of the functions I use is not available in older pipewire versions.

This adds proper library version sanity checks for pipewire.

Pull Request: https://projects.blender.org/blender/blender/pulls/131610
2025-01-06 18:19:08 +01:00
Campbell Barton
77041084cd Cleanup: quiet uninitialised variable warnings in CMake 2025-01-06 17:57:11 +11:00
Campbell Barton
4f1817cc18 Cleanup: declare __all__ for Python scripts
Declare all to make public public API's explicit and
help detect unused code.
2025-01-06 16:45:36 +11:00
Campbell Barton
c27bf6bef8 Cleanup: CMake indentation 2025-01-06 12:48:51 +11:00
Campbell Barton
33e38c605f Cleanup: correct indentation for CMake files, strip trailing space 2025-01-03 13:23:38 +11:00
Ray Molenkamp
5783950ac5 Revert: 0dc484f9cc bf_rna modernisation
This caused build errors on the docs builder, I can't seem to reproduce
locally, so revert for now and have another look at some point in the
future.

Sadly as these changes usually go, this took 5c515e26bb and
2f0fc7fc9f with it as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/132559
2025-01-02 19:56:24 +01:00
Campbell Barton
bb0fd51b3c Fix project_qtcreator generator
Correction to [0] which looks to have missed
relocating some scripts.

Also revert Python 3.6 compatibility as it's not required for tools.

[0]: e83d87f588
2025-01-02 17:03:10 +11:00
Campbell Barton
7516614c2b Fix source checking tools using project_source_info
Moving files in [0] caused the module not to be found.

Also revert Python 3.6 compatibility changes.

[0] 2c9ab53273
2025-01-02 16:57:51 +11:00
Campbell Barton
5c515e26bb Cleanup: remove trailing space, ensure a newline at EOF 2025-01-02 15:11:18 +11:00
Campbell Barton
5fbd22ea67 CMake: mark non WITH_* variables as advanced
Also correct case for Tiff_DIR variable which wasn't being
marked as advanced.
2025-01-02 15:03:52 +11:00
Ray molenkamp
0de684eba6 CMake: Raise LINK_INTERFACE_MULTIPLICITY to 3
The internal blender library dependency loops are longer than
the default cmake settings account for. As the work in [1]
adds more dependencies where they are needed this has become
a problem.

Bumping to 3 now as it solves the immediate linker problems in
#132375 but we can bump this further in the future if needed.

[1] https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/132385
2024-12-27 22:45:43 +01:00
Bastien Montagne
2c9ab53273 Add 'system python' validation for some py scripts.
The goal of this test is to try to import some critical py scripts with the
system python of the building machine.
The main target is to ensure that these py scripts remain usable by all
buildbot machines, as some of them are using fairly outdated python
versions.

Current status:
* Scripts in `build_files` and `docs` are checked.
* Some python scripts in `build_files` were 'reverted' to be compatible
  with older required python version currently (3.6).
* A few scripts are excluded from the test, mostly because they use Blender's
  `bpy` module, which means they are only intended to be ran with Blender's
  python anyway.
* The test is only enabled for Linux buildbots currently, as they use the
  oldest Python by far.

Notes:
* Some more scripts are likely to be moved around in the future.
* Whether these tests need to be enabled on windows or macos platforms remains
  an open question.

Pull Request: https://projects.blender.org/blender/blender/pulls/130746
2024-12-24 11:55:29 +01:00
Bastien Montagne
e83d87f588 Move several py scripts from build_files to tools.
Preliminary step towards adding 'system python' validation for some
build-essential py scripts (!130746).

Pull Request: https://projects.blender.org/blender/blender/pulls/132025
2024-12-17 19:02:45 +01:00
Aras Pranckevicius
7e7f4f0cee Cleanup: Remove WITH_COMPOSITOR_CPU option (compositor is always in)
Compositor is a required feature and parts of it have been always
included anyway. Remove WITH_COMPOSITOR_CPU build option.

Pull Request: https://projects.blender.org/blender/blender/pulls/131838
2024-12-13 14:54:19 +01:00
Miguel Pozo
e3c6c2c6fc Cleanup: CMake: De-duplicate with_shader_cpp_compilation code
Move the common setup and function to `macros.cmake`.

Pull Request: https://projects.blender.org/blender/blender/pulls/131391
2024-12-06 21:03:11 +01:00
Sebastian Parborg
2ec719447e Cmake: Add Pipewire support
Pull Request: https://projects.blender.org/blender/blender/pulls/126091
2024-12-03 16:26:01 +01:00
Campbell Barton
6ca1417103 Cleanup: suppress unused Python warnings
Suppress unused warnings using the "vulture" utility.

- Include public definitions in the modules `__all__`.
- Mark arguments & variables as unused with a "_" prefix.
2024-12-03 12:54:13 +11:00
Campbell Barton
bc66905a15 Cleanup: remove/comment unused functions 2024-12-02 11:23:47 +11:00
Ray Molenkamp
205fba598d CMake: Windows: Fix grammar mistake in last commit
Spotted by the eagle eyed @ThomasDinges
2024-11-21 14:29:28 -07:00