Age | Commit message (Collapse) | Author |
|
Looks like they removed static libs by default in OCIO 2.0, for some
historical reasons `install_deps` was enforcing using only static libs
for this one, now removed it so that Blender buil can use usual so's.
|
|
Should have been part of D10367/rBa923a34de19c, but for some reasons it
did not make it into final commit...
Re T85365.
|
|
Also bump exlusive maximal version to 3.11, since 3.10 is now supported.
Re T85365.
|
|
|
|
Ref T84819
Build System
============
This is an API breaking new version, and the updated code only builds with
OpenColorIO 2.0 and later. Adding backwards compatibility was too complicated.
* Tinyxml was replaced with Expat, adding a new dependency.
* Yaml-cpp is now built as a dependency on Unix, as was already done on Windows.
* Removed currently unused LCMS code.
* Pystring remains built as part of OCIO itself, since it has no good build system.
* Linux and macOS check for the OpenColorIO verison, and disable it if too old.
Ref D10270
Processors and Transforms
=========================
CPU processors now need to be created to do CPU processing. These are cached
internally, but the cache lookup is not fast enough to execute per pixel or
texture sample, so for performance these are now also exposed in the C API.
The C API for transforms will no longer be needed afer all changes, so remove
it to simplify the API and fallback implementation.
Ref D10271
Display Transforms
==================
Needs a bit more manual work constructing the transform. LegacyViewingPipeline
could also have been used, but isn't really any simpler and since it's legacy
we better not rely on it.
We moved more logic into the opencolorio module, to simplify the API. There is
no need to wrap a dozen functions just to be able to do this in C rather than C++.
It's also tightly coupled to the GPU shader logic, and so should be in the same
module.
Ref D10271
GPU Display Shader
==================
To avoid baking exposure and gamma into the GLSL shader and requiring slow
recompiles when tweaking, we manually apply them in the shader. This leads
to some logic duplicaton between the CPU and GPU display processor, but it
seems unavoidable.
Caching was also changed. Previously this was done both on the imbuf and
opencolorio module levels. Now it's all done in the opencolorio module by
simply matching color space names. We no longer use cacheIDs from OpenColorIO
since computing them is expensive, and they are unlikely to match now that
more is baked into the shader code.
Shaders can now use multiple 2D textures, 3D textures and uniforms, rather
than a single 3D texture. So allocating and binding those adds some code.
Color space conversions for blending with overlays is now hardcoded in the
shader. This was using harcoded numbers anyway, if this every becomes a
general OpenColorIO transform it can be changed, but for now there is no
point to add code complexity.
Ref D10273
CIE XYZ
=======
We need standard CIE XYZ values for rendering effects like blackbody emission.
The relation to the scene linear role is based on OpenColorIO configuration.
In OpenColorIO 2.0 configs roles can no longer have the same name as color
spaces, which means our XYZ role and colorspace in the configuration give an
error.
Instead use the new standard aces_interchange role, which relates scene linear
to a known scene referred color space. Compatibility with the old XYZ role is
preserved, if the configuration file has no conflicting names.
Also includes a non-functional change to the configuraton file to use an
XYZ-to-ACES matrix instead of REC709-to-ACES, makes debugging a little easier
since the matrix is the same one we have in the code now and that is also
found easily in the ACES specs.
Ref D10274
|
|
The repository information for cloning the OpenXR repository, rather than just
downloading the source archive, was outdated.
* Use the OpenXR-SDK repository link, not the OpenXR-SDK-Source one. Only the
former is needed, it contains pregenerated files with minimum dependencies.
The latter contains additional tools and the un-generated source files.
* Update the commit hash to the version we currently use, 1.0.14 (was 1.0.6).
Differential Revision: https://developer.blender.org/D10373
Reviewed by: Bastien Montagne
|
|
|
|
|
|
|
|
|
|
Unfortunately one issue raising another one, this ended up being a
fairly big update, with:
*Fixes:
** Dependencies between libraries are better handled (would fail
previously in some cases when the lib was also available as package).
** Dependency of Boost over Python is now taken into account.
** Fix CMake flags to use local own built boost.
** Fix building numpy.
*Changes:
** We now use pip for all python modules (including numpy).
** Added all missing python modules (requests etc.).
*Updates:
**USD: 20.08, Due to build failing with 20.05 (missing include).
|
|
Old lib available as packages everywhere, easy. ;)
|
|
Good news is, this version support LLVM 11.
But it was a serious pain to get working, even ended having to add an
ugly hack to manually specify the OIIO include dir...
Ref: T83631.
|
|
OSL 1.10.10 does not build with OIIO 2.2.10.
|
|
See T83246.
|
|
See T83246.
|
|
See T83246.
|
|
OIIO utils are mandatory for a whole set of tests (Cycles, VSE), and
it's a small package, no reason to not install it.
Also re-enabling package handling of OIIO on RPM-based distro, not sure
why it was disabled but this has become a fairly stable and standard
library now, would not expect issues anymore.
|
|
Since rB6fdcca8de64cd70f, we need at least OpenImageIO 2.1.12 to build
Blender.
|
|
Spotted by Patrick Mours (@pmoursnv), thanks!
|
|
re T81454.
|
|
|
|
Version reported by package manager is not always satisfying (on Debian
testing currently e.g. `llvm-dev` is reported as `9.0`, when exact one
is actually `9.0.1`, this break CMake build of Blender then).
Just use version reported by `llvm-config` instead, when using
distribution packages.
|
|
When OIDN version was bumped recently the required dependency to build
it (ISPC) was not updated accordingly.
|
|
owned directory.
This only creates elevated directory when necessary.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D1596
|
|
This was a bug in OpenImageDenoise, upgrade to latest 1.2.3 which has the fix.
This in turn required a newer ispc version.
Differential Revision: https://developer.blender.org/D8892
|
|
Also fixed OpenVDB maximum version, it appears that even 7.1 is not
compatible with 7.0?
Re T80818 and D8628.
|
|
|
|
Otherwise when switching from self-built to distro packages for OpenVDB,
Blosc CMake cached variables break building...
|
|
|
|
This commits:
- Updates some libraries to latest officially supported versions:
** Numpy: 1.17.5
** OCIO: 1.1.1
** OIIO: 2.1.15
** OSL: 1.10.10
** OIDN: 1.2.1
- Re-enables some distro packages (like OSL, OIIO, OCIO...).
- Add missing 'CMake cleanup commands' for generated CMake update
command, for Embree, OIDN and OpenXR.
- Generalizes using min/max versions of accepted libraries, if no
package can be found in specified range then it is built from sources.
The later point should help keeping things a bit in better conditions,
although current maximal accepted versions are somewhat arbitrary guess
currently.
|
|
This is a common system library, no need for fancy building this time...
Part of D8384.
|
|
The Blender USD code didn't have to change for this upgrade. Pixar's USD
did include a change that we had in the patch, so that's been removed
from our patch now. Some of the USD code that we patched changed as
well.
|
|
No functional changes.
|
|
This is a follup to 0c384362272.
No functional changes to Blender, just the build scripts.
|
|
Re T77846.
|
|
|
|
Not sure why final version of the change was lost...
|
|
now that we stick to some outdated py version, some distro (like current
debian testing) will feature several python3 dev package, but other
dependant libs like numpy are only built against current default version
of python (3.8 now in deb testing)...
In order to be able to use distro packages we need to allow using higher
versions of python, and set relevant CMake option accordingly.
|
|
Following changes done to makedeps in rBc7329da14b22.
|
|
re T77035.
|
|
Enabled round linear hair in Embree.
Differential Revision: https://developer.blender.org/D7623
|
|
- FFMPEG: 4.3.2
- OpenSubDiv: 3.4.3
- OpenXR SDK: 1.0.8
- Switch form SDL 1.2 to SDL 2.0
Re T77035, T77007, T77010 and T77011
|
|
We now want to use fairly recent TBB (2018 at least?), so distro a bit
old will not have required package anymore...
Tested with Debian, other distro "should work" (c), but tests there are
much welcome! ;)
|
|
Was breaking up proper behavior of 'need to rebuild' checks for that
lib.
|
|
Not sure where that code was comming from, but it was breaking the
cleanup/update_deps logic...
|
|
|
|
We never deal with packages then, and only ever build (if we do
anything), no reason to make things more complicated than needed...
|
|
Previous code would forec built libs to always be rebuilt when one of
their deps was using a package. While this could be useful when said
package was actually updated, this generates way too much false
positives.
Now only rebuild a built lib when we actually switch from built to
package for one of its deps.
|
|
Add root usd library directory to build arguments, same as other libraries.
Also fix error/typo in compile_USD regarding _is_building.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D7563
|