Since ee1b2f53cc the ffmpeg libraries for Windows x64 are built effectively
without CPU specific SIMD optimizations. `--arch=x64` is not an architecture
that ffmpeg configure understands, so it falls back to "nothing is known,
turn any architecture specific bits off" code path.
Pull Request: https://projects.blender.org/blender/blender/pulls/126396
Correct fix from [0].
The previous fix seemed to work but on further testing the environment
wasn't properly expanded. Using "$$" prefix resolves the problem.
[0]: b0ec4bba70
The value used for the the library path was being evaluated by CMake
instead of forwarding the value to the shell expression (as intended).
This meant any build-time binaries that depended on the environments
library-path would failed to run.
This commit adds a new cmake variable `WITH_CYCLES_TEST_OSL`
that runs every Cycles test a second time with OSL enabled.
At the moment only CPU OSL is enabled. There are plans to enable
OptiX OSL in the future when stability issues with OptiX OSL
have been resolved.
Some render tests have been blocked from running until we can figure
out a fix. The most notiable being all the Pricincipled BSDF tests
as some of them are failing due to noise differences.
Ref #123012
Pull Request: https://projects.blender.org/blender/blender/pulls/124601
This gets Windows ARM64 to compile with clang-cl, which gives up to 40% performance improvements in certain scenes rendered with cycles, compared to MSVC.
This is all tested using LLVM 18.1.8 and a VS2022 `vcvarsall` window.
Subsequent PRs with various lib version updates, etc to go in at a later point.
Pull Request: https://projects.blender.org/blender/blender/pulls/124182
Python bundles pip, but does not track CVEs reported against it.
Add an explicit CPE to be able to detect CVEs affecting pip version
bundled with Python.
Currently it is a manual process of keeping the version in sync with
the one used in Python.
The CVE-2018-20225 is essentially marked as ignored. It is not fixed
upstream, and other users like Debian are also essentially ignoring
this CVE:
https://security-tracker.debian.org/tracker/CVE-2018-20225
Pull Request: https://projects.blender.org/blender/blender/pulls/125648
The mnemonic for the remark Ignored has been split into False Positive
and Not Affected in the recent version of cve_bin_tool, preventing it
from properly parsing the CVS file and not being able to do proper
report.
Use Not Affected, as it is seems to be the closest to what Ignored was
used for in our case.
Pull Request: https://projects.blender.org/blender/blender/pulls/125645
This continues the cmake modernization effort and introduces support for
allowing our optional dependencies to integrate properly. TBB is added
here as it's proven troublesome to maintain correctly.
Currently the only Blender project which uses the TBB headers directly
is `blenlib`. However, all downstream projects which require blenlib as
their dependency, and wish to properly make use of its threading
facilities, needed to define various TBB items in their CMake files. Not
only is this unnecessary and arcane, but several projects didn't do this
and ended up not using threading as well as producing ODR violations
along the way[1].
This PR makes TBB a modern dependency and exposes it PUBLIC'ly from
`blenlib`. All downstream projects which depend on blenlib will now
receive everything they require from TBB automatically. This includes
the `WITH_TBB` define, the headers, and the library itself.
[1] blender/blender@05241f47f5
Pull Request: https://projects.blender.org/blender/blender/pulls/124916
When having several clang versions installed cmake would default
to the last llvm directory in the registry when finding the openmp
libraries. Two problems with that are :
1- The registry entry may not exist
2- Even if it exists it may not point to the right folder for the
Current compiler.
This PR changes the behaviour to look relative to the clang binary
to find the openmp libraries.
Pull Request: https://projects.blender.org/blender/blender/pulls/125101
It allows to more easily override cmake options which we want to
be enabled on the buildbot.
In a way it was possible to do via the pipeline config, but this
change provides a more natural way for Blender developers to set
CMake configuration which is to be enabled on buildbot, but not
on local developer machines.
Pull Request: https://projects.blender.org/blender/blender/pulls/124892
Fribidi uses Meson, which auto-detects presence of ccache and uses it
when found. This could cause incorrect compilation results when doing
a cross-compilation to different platforms on the same machine.
Pass the typical configuration environment to the Meson setup, which
takes care of specifying deployment targets and architecture as the
compiler flags, preventing ccache from using result from a different
architecture.
This is similar to the Meson setup used for Harfbuzz and Epoxy.
Pull Request: https://projects.blender.org/blender/blender/pulls/123828
We've seen a ~15% performance regression on Meteor Lake iGPUs since
17f2cdd104, this new compiler version
restores it.
No need to bump the minimum supported driver version as it was already
at 101.5518.
Pull Request: https://projects.blender.org/blender/blender/pulls/123562