Commit Graph

3649 Commits

Author SHA1 Message Date
Campbell Barton 36e217142f Build: remove svn from Linux build deps script 2024-02-29 10:12:20 +11:00
Xavier Hallade 98343c0c17 Build: Upgrade Intel Graphics Compiler to 1.0.15468 on Linux
This corresponds the latest stable LTS release:
https://dgpu-docs.intel.com/releases/LTS_803.29_20240131.html

Graphics compiler upgrades require increasing the mininum required
driver (compute-runtime) version to the corresponding one to guarantee
compatibility, which is XX.XX.27642.38 in this release, so we bump this
requirement accordingly.

Fixes #118713

Pull Request: https://projects.blender.org/blender/blender/pulls/118814
2024-02-28 18:24:30 +01:00
Sergey Sharybin 9060b0dfb7 Cleanup: Correction to type annotation and smaller fixes/optimizations
This commit contains changes done to these scripts in the main branch.
2024-02-28 11:36:44 +01:00
Sergey Sharybin 066f7d9eea Revert "Cleanup: Address mypy errors and warnings"
The similar cleanup with a lot of other changes were committed
to the main branch. Is easier to revert this change, copy the
scripts from main, and merge things back.

This reverts commit 4bc1ba3c2d.
2024-02-28 11:36:44 +01:00
Sergey Sharybin 4bc1ba3c2d Cleanup: Address mypy errors and warnings
Pull Request: https://projects.blender.org/blender/blender/pulls/118844
2024-02-28 11:25:44 +01:00
Sergey Sharybin 468e4b0e3b Make update: Bring behavior closer to what it used to be
The `make update` will now always update all initialized submodules,
including the library ones.

The `make_update.py --no-libraries` will neither initialize nor update
pre-compiled libraries or tests.

Pull Request: https://projects.blender.org/blender/blender/pulls/118812
2024-02-27 20:02:15 +01:00
Ray Molenkamp 2330e2564f make.bat: give status updates during initial lib clone
This implements #118673 for make.bat as it is not using
the python script for the initial clone.
2024-02-26 16:49:08 -07:00
Ray Molenkamp 0c29afe214 make.bat: only warn about python if lib folder is cloned
First time builders get spooked by this warning and start
installing python trying to resolve it. This isn't needed
and we should only warn about python being missing if the
lib folder is cloned, but python is still somehow not found.

This was "fixed" a few times before, but it took a bit
to find the right filename to check for the new library
folder.
2024-02-26 16:45:57 -07:00
Brecht Van Lommel 95f48fe7b8 Build: Add missing git-lfs package for Rocky 8 setup 2024-02-26 13:59:53 +01:00
Sergey Sharybin 9277377f6b Make update: Show Git LFS download progress
Solves the issue of the script potentially sitting for a long time
without having any progress reported. Confusingly, such behavior
depends on Git version.

In older versions (< 2.33) there will be progress reported, but it
then got changed by the commit in Git:

  https://github.com/git/git/commit/7a132c628e57b9bceeb88832ea051395c0637b16

The delayed checkout is exactly how Git LFS integrates into the Git
process. Another affecting factor for the behavior is that submodule
configured to use "checkout" update policy is forced to have quite
flag passed to the "git checkout":

  https://github.com/git/git/blob/v2.43.2/builtin/submodule--helper.c#L2258

This is done to avoid the long message at the end of checkout about
the detached state of HEAD, with instructions how to resolve that.

There are two possible solutions: either use "rebase" update policy
for submodules, or skip Git LFS download during the submodule update.

Changing the update policy is possible, but it needs to be done with
a bit of care, and possible revised process for updating/merging
tests data.

This change follows the second idea of delaying LFS download for a
later step, so the process is the following:
- Run `git submodule update`, but tell Git LFS to not resolve the links
  by using GIT_LFS_SKIP_SMUDGE=1 environment variable.
- Run `git lfs pull` for the submodule, to resolve the links.

Doing so bypasses hardcoded silencing in the Git. It also potentially
allows to recover from an aborted download process.

The `git lfs pull` seems to be a nominal step to resolve the LFS links
after the smudging has been skipped. It is also how in earlier Git
versions some Windows limitations were bypassed:

  https://www.mankier.com/7/git-lfs-faq

The submodule update now also receives the "--progress" flag, which
logs the initial Git repository checkout process, which further
improves the feedback.

The byproduct of this change is that an error during precompiled
libraries and tests data update is not considered to be fatal.
It seems to be more fitting with other update steps, and allows
more easily reuse some code.

There is also a cosmetic change: the messages at the end of the
update process now have their own header, allowing more easily
see them in the wall-of-text.

Pull Request: https://projects.blender.org/blender/blender/pulls/118673
2024-02-23 17:40:59 +01:00
Sergey Sharybin 63613e431e Fix make update pulling libraries when --no-libraries is provided
Likewise, skip tests update when --use-tests is not provided.

It was a bit of ambiguous situation because libraries and tests
are technically submodules. After some feedback it seems that it
is better to ignore submodule for libraries and tests unless
requested explicitly.

Pull Request: https://projects.blender.org/blender/blender/pulls/118631
2024-02-23 12:24:22 +01:00
Bastien Montagne 556699ed62 Fix install_linux_packages: not-working git-lfs installation. 2024-02-23 11:12:33 +01:00
Ray Molenkamp ced066e0c8 make.bat: add additional messaging for the libs download
git on windows is giving no status updates while git lfs
is downloading the libs, causing people to assume its
stuck and interrupt the download. This change adds a
rather large visual message telling people not to do
that.

also it was not respecting people selecting n on the lib
download so some extra messaging has been added there
as well.
2024-02-22 13:09:34 -07:00
Bastien Montagne ea10be4dd6 install_linux_packages: Add git-lfs to 'build essentials'.
Also define git package for Suse, not sure why it was left unset.
2024-02-22 20:05:22 +01:00
Ray Molenkamp f0bbb0266a make.bat: fix make update not working properly
Git escaped a quote and used all of the cli arguments as the
folder name.

Also fixes:
- Progress on the initial clone so it doesn't appear stuck
- re-detect python after updating libs, so you don't have to run
  make update twice on a fresh clone.
- Hide python not found warning unless the lib folder exists (this
  seemingly got lost in one of the merges)
2024-02-22 10:40:25 -07:00
Falk David c7f2a0567e Cleanup: Rename ensure_git_lfs_hooks to ensure_git_lfs
Since the function no longer adds hooks and skips the process deliberatly, the function name doesn't make sense.
Rename to `ensure_git_lfs`.

Pull Request: https://projects.blender.org/blender/blender/pulls/118626
2024-02-22 16:43:33 +01:00
Sergey Sharybin 6e26ee822b Tweak mnake update's LFS installation further
Ensure the filters are installed, but not the hooks.
Should fix the original issue of developers using custom
hooks in the repository.
2024-02-22 16:06:11 +01:00
Sergey Sharybin 44e121e8c7 Fix URL in previous commit
Need to use pushURL for comparison, not the pull URL.
2024-02-22 15:51:44 +01:00
Sergey Sharybin df0e64f7d8 Fix incorrect pushURL set on the submodules 2024-02-22 15:48:41 +01:00
Sergey Sharybin 520a08a286 Fix make update in systems with manually installed hooks
If LFS hooks are installed manually the automatic installation would
fail.

This change makes it so `lfs` is a valid command of `git`, ensuring
that the package is installed. If the installation fails assume it
is due to tricky local setup, and do not fail.

Pull Request: https://projects.blender.org/blender/blender/pulls/118618
2024-02-22 15:16:01 +01:00
Sergey Sharybin 7b472b83a3 Fix make_update for libraries update
- git lfs install was called a bit too late, after the libraries
  has been checked out, leaving the checkout in a non-resolved
  state.

- Update blender code first, allowing proper submodule hash to
  be pulled.

Pull Request: https://projects.blender.org/blender/blender/pulls/118615
2024-02-22 14:38:37 +01:00
Brecht Van Lommel 8dfb87d1af Fix: Update tests data path to new directory 2024-02-22 14:25:54 +01:00
Sergey Sharybin e5e5591c7e Fix wrong architecture detection on Windows
Windows passes architecture of amd64, which needs to be converted
to x64 for the library names.
2024-02-22 14:01:01 +01:00
Sergey Sharybin 3dc832a904 Switch SVN to Git submodules using Git-LFS
This change makes it so build system and update utilities for Blender builds
are using pre-compiled libraries and other resources attached as Git modules
instead of using checkout of SVN repositories in the parent folder.

The directory layout:
```
  * release/datafiles/
    * assets/        -> blender-assets.git
      * publish/
      * ...
      * README.txt
  * lib/
    * darwin_x64/    -> lib-darwin_x64.git
    * darwin_arm64/  -> lib-darwin_arm64.git
    * linux_x64/     -> lib-linux_x64.git
    * windows_x64/   -> lib-windows_x64.git
  * tests/
    * data/         -> blender-test-data.git
```

The changes about configuring the actual Git sub-modules are not included
into this patch, as those require repository to actually exist before it
can be used.

The assets submodule is enabled by default, and the rest of them are
disabled. This means that if someone runs `git submodule update --init`
they will not get heavy libraries. The platform-specific and tests
related submodules are enabled when using `make update` or `make test`.

All the submodules are tracked: this means that when new commits are
done to the submodule, the blender.git repository is to be updated to
point them to the new hash. This causes some extra manual work, but it
allows to more easily update Blender and its dependencies to known good
state when performing operations like bisect.

Ref #108978

Pull Request: https://projects.blender.org/blender/blender/pulls/117946
2024-02-22 13:50:55 +01:00
Brecht Van Lommel 0f2064bc3b Revert changes from main commits that were merged into blender-v4.1-release
The last good commit was 4bf6a2e564.
2024-02-19 15:59:59 +01:00
bartus 791aeeff9a Build: Upgrade OpenPGL to version 0.6.0
Main improvements:
* Spatial structure (Kd-tree) build is now multithreaded.
* Kd-tree switched to use cache-friendlier TreeLets.
* Field fixed some non-deterministic behavior when spatial cache does
  not receive any training data during a training iteration due to a
  large number of training iterations.
* Fixed build problems on (non-Mac) ARM systems.

Pull Request: https://projects.blender.org/blender/blender/pulls/118328
2024-02-19 13:32:23 +01:00
Brecht Van Lommel fd643535bc Merge branch 'blender-v4.1-release' into main 2024-02-16 17:55:26 +01:00
Brecht Van Lommel 17ca22ae9f macOS: Raise minimum required version to macOS 11.2
This was already the minimum requirement for Intel and Apple Silicon
GPUs. It is required for the Metal backend to work correctly.

Previously the minimum for AMD GPUs was 10.15.

Pull Request: https://projects.blender.org/blender/blender/pulls/118287
2024-02-16 17:53:51 +01:00
Campbell Barton 156fffbfde Merge branch 'blender-v4.1-release' 2024-02-14 14:29:55 +11:00
Brecht Van Lommel dd382be067 Fix #118020: Cycles OptiX OSL crashes
Turns out we were not building OSL with OptiX enabled anymore.
Also check now if the OSL builds has OptiX support and if not
disable it in Cycles.

Building OSL with support for this (still) does not require
either the OptiX SDK or CUDA, it only needs LLVM.

Pull Request: https://projects.blender.org/blender/blender/pulls/118234
2024-02-14 03:40:01 +01:00
Campbell Barton 2119d271e0 Cleanup: remove "-noaudio" argument in background mode
This is no longer needed as background mode implies -noaudio.
2024-02-14 00:13:38 +11:00
Brecht Van Lommel 3e0d77c80f Build: macOS support for "make source_archive" 2024-02-11 02:50:23 +01:00
Campbell Barton 28e771372b Cleanup: wrap lines for in CMake's build-environment for readability
- Commands which have arguments split over multiple lines use
  indented lines.
- Wrap lines where multiple commands run using "&&".
- Blank lines between multiple commands helps the text from becoming
  too dense.
2024-02-10 22:36:36 +11:00
Harley Acheson 48390d018d Merge branch 'blender-v4.1-release' 2024-02-09 12:23:51 -08:00
Brecht Van Lommel 93e4fa7d36 Build: Disable TIFF sphinx docs for library dependencies 2024-02-09 20:00:30 +01:00
Bastien Montagne b21ceece05 Cleanup: Move BKE_blender.h to CPP header.
Also fix comment in `build_files/cmake/macros.cmake`, CMake blender version
parsing depends in the (still C) `BKE_blender_version.h` header now.
2024-02-09 19:12:23 +01:00
Brecht Van Lommel 506556fb3f Merge branch 'blender-v4.1-release' into main 2024-02-08 15:23:47 +01:00
Brecht Van Lommel 8f9ca23b9e Build: document and check GCC/CUDA/HIP compiler version for libraries
This is not a hard requirement to be able to build the libraries, but
these versions should be written down somewhere. So compare compiler
versions as part of make deps setup.

Pull Request: https://projects.blender.org/blender/blender/pulls/117457
2024-02-08 15:23:14 +01:00
Campbell Barton aead8a0428 Merge branch 'blender-v4.1-release' 2024-02-08 15:08:27 +11:00
Campbell Barton 34f64eb35b Build: add additional packages for Linux (cuda-toolkip & autogen) 2024-02-08 15:03:46 +11:00
Campbell Barton 4a50f1d4ee Build: unbreak building flex on Rock8 Linux from aclocal-1.16
Flex's bundled configure depended on aclocal-1.15 which has been
updated to 1.16.

Resolve by regenerating configure files on Linux which in turn adds a
new dependency on texinfo.
2024-02-08 11:10:07 +11:00
Campbell Barton 412b279629 Build: unbreak building flex on Rock8 Linux from aclocal-1.16
Flex's bundled configure depended on aclocal-1.15 which has been
updated to 1.16.

Resolve by regenerating configure files on Linux which in turn adds a
new dependency on texinfo.
2024-02-08 10:12:22 +11:00
Thomas Dinges fb0f06a2ac Revert "Release cycle: 4.1, Bcon3"
This reverts commit 4db1426818.
2024-02-07 12:53:08 +01:00
Thomas Dinges 4db1426818 Release cycle: 4.1, Bcon3 2024-02-07 12:49:52 +01:00
Ray Molenkamp ea7c0a4a46 deps_builder: Fix broken hash for sqlite
hash update was missed in ec4b074506
2024-02-06 17:25:18 -07:00
Ray Molenkamp 28208cfddb deps_builder: update ffmpeg diff
did not apply anymore
2024-02-06 14:17:42 -07:00
Ray Molenkamp dfb3482946 deps_builder/win: update perl to 5.38.0.1
5.22.1.3 was incompatible with the latest openssl update.
2024-02-06 14:16:55 -07:00
Ray Molenkamp 0d8710aa2e deps_builder: Update oidn diff
did not apply any more on windows
2024-02-06 14:14:03 -07:00
Stefan Werner 31d55e87f9 Cycles: Metal support for OpenImageDenoise
This is supported on Apple Silicon GPUs and macOS 13.0+.

Co-authored-by: Stefan Werner <stefan.werner@intel.com>
Co-authored-by: Attila Afra <attila.t.afra@intel.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/116124
2024-02-06 21:13:23 +01:00
Xavier Hallade acdc3deaea Build: upgrade OIDN to 2.2-rc2
Minor update over OpenImageDenoise 2.2-rc, fixing the runtime issues on
macOS Ventura. For other platforms the code is identical.

Pull Request: https://projects.blender.org/blender/blender/pulls/117902
2024-02-06 17:43:55 +01:00