Commit Graph

3660 Commits

Author SHA1 Message Date
Sebastian Parborg 203d3e0d40 Linux: Don't always enable the CPU checker
When building a non portable build or when not using the precompiled
libraries, do not enable the CPU checker.

Make the cmake configure step error out when building with
WITH_STRICT_BUILD_OPTIONS if the LIBDIR can not be found.

Pull Request: https://projects.blender.org/blender/blender/pulls/118519
2024-02-26 15:41:22 +01:00
Brecht Van Lommel 065ba92c54 Merge branch 'blender-v4.1-release' 2024-02-26 14:08:07 +01: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 ca63ce835f Merge branch 'blender-v4.1-release' 2024-02-23 17:41:22 +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 9b2c312ac7 Merge branch 'blender-v4.1-release' 2024-02-23 12:33:11 +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 509de56830 Merge branch 'blender-v4.1-release' 2024-02-23 11:13:49 +01:00
Bastien Montagne 556699ed62 Fix install_linux_packages: not-working git-lfs installation. 2024-02-23 11:12:33 +01:00
Ray Molenkamp b20f29bd04 Merge remote-tracking branch 'origin/blender-v4.1-release' 2024-02-22 17:55:59 -07: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 01dc67dcc9 Merge branch 'blender-v4.1-release' 2024-02-22 20:07:20 +01: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 95baf98745 Merge remote-tracking branch 'origin/blender-v4.1-release' 2024-02-22 10:42:11 -07: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 6bc2f6c6d5 Merge branch 'blender-v4.1-release' 2024-02-22 16:44:30 +01: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 1e88fd6050 Merge branch 'blender-v4.1-release' 2024-02-22 16:08:14 +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 dddafe428e Merge branch 'blender-v4.1-release' 2024-02-22 15:52:15 +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 3203f534f4 Merge branch 'blender-v4.1-release' 2024-02-22 15:48:57 +01:00
Sergey Sharybin df0e64f7d8 Fix incorrect pushURL set on the submodules 2024-02-22 15:48:41 +01:00
Sergey Sharybin 2916c8ca96 Merge branch 'blender-v4.1-release' 2024-02-22 15:20:02 +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 23c892366b Merge branch 'blender-v4.1-release' 2024-02-22 14:39:05 +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 056becae8a Merge branch 'blender-v4.1-release' into main 2024-02-22 14:36:13 +01:00
Brecht Van Lommel 8dfb87d1af Fix: Update tests data path to new directory 2024-02-22 14:25:54 +01:00
Sergey Sharybin 9cc1962120 Merge branch 'blender-v4.1-release' 2024-02-22 14:01: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 396348eea9 Merge branch 'blender-v4.1-release' 2024-02-22 13:51:48 +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
Ray Molenkamp 95df77323f Make.bat: Only warn about python if the lib folder exists
People running `make update` first time, will not have a lib
folder yet, and get a warning about python being missing, this
sends some of them off onto somewhat of a wild goose chase
installing python when this is really not needed since it's
included in our libraries.

This change, changes the warning to only emit when the lib
folder exists, but python is missing in the lib folder and
there actually is likely an issue with the lib folder.
2024-02-20 12:03:11 -07:00
Aras Pranckevicius f09c7dc4ba Video: Remove non-ffmpeg AVI support
Blender had a very limited (only uncompressed or MJPEG frames) .avi file
support, for both reading and writing. This is something that ffmpeg can
fully do.

This removes all of that. 3500 lines of code gone, primary motivations being:
- ffmpeg can read and write .avi files just fine, including ones with
  uncompressed or MJPEG frames.
- Blender's ffmpeg integration could also be taught to produce uncompressed or
  MJPEG .avi files, but TBH I don't see a particular reason to do that. Modern
  formats like H264 are better in every way, and already support "lossless"
  option if needed.
- The "Lite" blender build configuration was excluding both ffmpeg and avi
  anyway, so that config is something that can't read nor write any movies.

User visible changes:

- In scene image output type, under Video section now there's only Ffmpeg Video
  (AVI Raw and AVI JPEG are gone)
- Whenever loading an existing file, if output was one of AVI Raw / AVI JPEG,
  it is set to Ffmpeg Video.

Pull Request: https://projects.blender.org/blender/blender/pulls/118409
2024-02-20 13:15:50 +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