Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-20Build: updates for Blender to build against new 3.2 librariesBrecht Van Lommel
Building against the existing 3.1 libraries should continue to work, until the precompiled libraries are committed for all platforms. * Enable WebP by default. * Update Windows for new library file names. * Automatically clear outdated CMake cache variables when upgrading to new libraries. * Fix static library linking order issues on Linux for OpenEXR and OpenVDB. Implemented by Ray Molenkamp, Sybren Stüvel and Brecht Van Lommel. Ref T95206
2022-04-18Build: link with GameController and CoreHaptics frameworks on macOSBrecht Van Lommel
In preparation of upcoming SDL upgrade, which uses these.
2022-03-25ImBuf: Add support for WebP image formatAaron Carlisle
Currently only supports single image frames (no animation possible). If quality slider is set to 100 then lossless compression will be used, otherwise lossy compression is used. Gives about 35% reduction of filesize save when re-saving splash screens with lossless compression. Also saves much faster, up to 15x faster than PNG with a better compression ratio as a plus. Note, this is currently left disabled until we have WebP libs (see T95206) For testing precompiled libs can be downloaded from Google: https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html Differential Revision: https://developer.blender.org/D1598
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-01-27Build: enable Python 3.10 on macOSBrecht Van Lommel
2022-01-21Build: update macOS for FreeType library with woff2 supportBrecht Van Lommel
Ref D13448, T93161
2022-01-16macOS: fix llvm-ranlib invalid option errorAnkit Meel
2022-01-14macOS: silence bundle identifier mismatch Xcode warningAnkit Meel
Blender.xcodeproj User-supplied CFBundleIdentifier value 'org.blenderfoundation.blender' in the Info.plist must be the same as the PRODUCT_BUNDLE_IDENTIFIER build setting value ''. Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13826
2022-01-13CMake: use FFmpeg find module on LinuxBrecht Van Lommel
And change install_deps.sh to build shared (instead of static) FFMPEG libraries, for consistency with other library dependencies and to simplify the logic. This may require users of install_deps.sh to rebuild FFMPEG. This is the last step that lets us get rid of LIBPATH variables and link_directories() entirely, as recommended by the CMake docs. Some fixes were needed in the find FFMPEG module to make it actually work, this code was unused up to now. Followup to D8855. Differential Revision: https://developer.blender.org/D9177
2022-01-12Revert "CMake: use FFmpeg find module on Linux"Brecht Van Lommel
This reverts commit 62a0de1673302fb7f15fe06efaf6f0f97d92d240. Linux buildbot is giving link errors.
2022-01-12CMake: use FFmpeg find module on LinuxBrecht Van Lommel
And change install_deps.sh to build shared (instead of static) FFMPEG libraries, for consistency with other library dependencies and to simplify the logic. This may require users of install_deps.sh to rebuild FFMPEG. This is the last step that lets us get rid of LIBPATH variables and link_directories() entirely, as recommended by the CMake docs. Some fixes were needed in the find FFMPEG module to make it actually work, this code was unused up to now. Followup to D8855. Differential Revision: https://developer.blender.org/D9177
2021-12-07Build: clean up handling of some Cycles build optionsBrecht Van Lommel
* Don't link embree / OSL when WITH_CYCLES is disabled * Simplify lite config by disabling Cycles as a whole using this * Remove code handling the removed WITH_CYCLES_NETWORK option
2021-08-21Add support for Zstandard compression for .blend filesLukas Stockner
Compressing blendfiles can help save a lot of disk space, but the slowdown while loading and saving is a major annoyance. Currently Blender uses Zlib (aka gzip aka Deflate) for compression, but there are now several more modern algorithms that outperform it in every way. In this patch, I decided for Zstandard aka Zstd for several reasons: - It is widely supported, both in other programs and libraries as well as in general-purpose compression utilities on Unix - It is extremely flexible - spanning several orders of magnitude of compression speeds depending on the level setting. - It is pretty much on the Pareto frontier for all of its configurations (meaning that no other algorithm is both faster and more efficient). One downside of course is that older versions of Blender will not be able to read these files, but one can always just re-save them without compression or decompress the file manually with an external tool. The implementation here saves additional metadata into the compressed file in order to allow for efficient seeking when loading. This is standard-compliant and will be ignored by other tools that support Zstd. If the metadata is not present (e.g. because you manually compressed a .blend file with another tool), Blender will fall back to sequential reading. Saving is multithreaded to improve performance. Loading is currently not multithreaded since it's not easy to predict the access patterns of the loading code when seeking is supported. In the future, we might want to look into making this more predictable or disabling seeking for the main .blend file, which would then allow for multiple background threads that decompress data ahead of time. The compression level was chosen to get sizes comparable to previous versions at much higher speeds. In the future, this could be exposed as an option. Reviewed By: campbellbarton, brecht, mont29 Differential Revision: https://developer.blender.org/D5799
2021-08-10Fix T90418: macOS codesign fails with dylib next to executableAnkit Meel
Change the dylib folder relative to `Blender` executable to be the same as before rB652fbc200500497a67bd11d18b786587ba34e3d9 and same as bpy.so : `@loader_path/../Resources/${BLENDER_VERSION}/lib`
2021-08-03macOS: Fix OpenMP dynamic loader error.Ankit Meel
2021-08-03macOS: Portable builds with dynamic libraries.Ankit Meel
For Blender.app: dropping libomp.dylib next to Blender executable is enough for it getting picked up since `@executable_path` is an rpath. For non-distributed binaries datatoc, makesdna, tests etc, code for copying libomp.dylib to build folder is removed and replaced by CMake's rpath option for *build* tree. For bpy.so, the post build rpath change has also been replaced by CMake rpath option for *install* tree. Since -id has been changed in D11748, remove the `install_name_tool -change ...` command. Any dylib can just be dropped at `MAC_BLENDER_TARGET_DYLIBS_DIR` hereafter. Appending dylib path to `CMAKE_BUILD_RPATH` will be needed for datatoc etc if linked against one (instead of copying the dylibs around). Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D11997
2021-07-26macOS Cleanup: Remove old version specific codeAnkit Meel
Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D12021
2021-06-15CMake: disable TBB when not foundCampbell Barton
2021-05-20macOS build: set minimum deployment target correctlyAnkit Meel
Make `CMAKE_OSX_DEPLOYMENT_TARGET` independent of buildbot settings and always set to `OSX_MIN_DEPLOYMENT_TARGET`. That fixes the launch error on OS older than buildbot's. Remove unused `MACOSX_DEPLOYMENT_TARGET`. Fix T88419 Diff D11323
2021-03-31Cleanup/CMake: tweak messages in platform_appleAnkit Meel
2021-03-31Cleanup/CMake: warning to status to reduce noiseAnkit Meel
Correction in e5f0d176d4cfa020bfb4de78086007dcfd02e8f9
2021-03-30CMake: issue warnings when changing optionsAnkit Meel
Only done in top level CMakeLists, and platform_apple. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D10343
2021-03-29Cleanup/CMake: remove trailing `/`; whitespace.Ankit Meel
2021-03-26macOS/bpy: install into site-packagesAnkit Meel
Reviewed By: #platform_macos, brecht Maniphest Tasks: T86579 Differential Revision: https://developer.blender.org/D10664
2021-03-23Cleanup/CMake: Fix comment, sort order of options.Ankit Meel
2021-03-01CMake: reduce Neon related output on Intel platformsBrecht Van Lommel
* Only try to find sse2neon if Neon detected * Only run Neon support test once
2021-02-26CMake/deps: Adjust OSL shader directorySebastián Barschkis
The location of the shaders changed with OSL 1.11.10. This commit is therefore in addition to D10212. @sybren With the latest SVN libraries, I am fairly certain there is a "OSL not found" in the CMake output. Can you check on Linux? @LazyDodo Since you haven't pushed the new OSL libs yet, this should not be a problem on Windows. So this will only be needed whenever those land. Reviewed By: LazyDodo Differential Revision: https://developer.blender.org/D10552
2021-02-25Fix macOS SSE support not detected correctly after recent changesBrecht Van Lommel
Due to moving the code the test binary was incorrectly compiled with OpenMP flags. Move setting of the OpenMP flags to the appropriate place.
2021-02-24CMake: Removed temporarily disabled clang blockSebastián Barschkis
Was disabled in rBc778fd981e63. Libraries have been updated in rBL62576.
2021-02-24CMake: Temporarily removing find clang blockSebastián Barschkis
New libs have not landed in the SVN repository. Once they are up, this commit will be reverted.
2021-02-24Cmake/deps: Update OSL to 1.11.10.0Ray Molenkamp
This bumps OSL to 1.11.10.0. OSL Has a new build time dependency: Clang, and more importantly it expects clang and llvm to share a library folder, which it previously for us did not. This patch changes: -OSL Update to 1.11.10.0 -refactor the llvm/clang/clang-tools-extra builds into the llvm build using the llvm-project tarball for building that has all of the subprojects in it. -update ispc/openmp builds since clang no longer its own dependency and they have to depend on the llvm build now. -Update the windows builder to use the 64 bit host tools since it ran out of ram linking clang -Since OSL now needs clang to link successfully a findclang.cmake has been provided for linux/OSX Differential Revision: https://developer.blender.org/D10212 Reviewed By: brecht, sebbas, sybren
2021-02-17BLI: use sse2neon to emulate SSE instructions with Arm NeonBrecht Van Lommel
* WITH_CPU_SSE was renamed to WITH_CPU_SIMD, and now covers both SSE and Neon. * For macOS sse2neon.h is included as part of the precompiled libraries. * For Linux it is enabled if the sse2neon.h header file is detected. However this library does not have official releases and is not shipped with any Linux distribution, so manual installation and configuration is required to get this working. Ref D8237, T78710
2021-02-15macOS: add Embree, OpenImageDenoise and sse2neon libraries for ARMBrecht Van Lommel
This required using a fork of Embree, newer LLVM version, unreleased ISPC version and sse2neon directly from Git. Hopefully over time all the required changes end up in official releases. For now we deviate from other platforms. Based on contributions by Apple and Stefan Werner. Ref D9527, D8237, T78710
2021-02-12OpenColorIO: upgrade to version 2.0.0Brecht Van Lommel
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
2021-02-11CMake: update python to 3.9.1Campbell Barton
Default to Python version 3.9. Reviewed By: LazyDodo, sybren, sebbas Ref D10380
2021-02-02macOS: use precompiled libraries for arm64 buildBrecht Van Lommel
Standard wiki build instructions for building Blender on macOS can now be used on Macs with ARM processors. This contains all libraries except for Embree and OpenImageDenoise, so Cycles performance does not yet have full performance and features in this build. An x86-64 build is likely to still render faster than arm64 until Embree is added. Uses the new lib/darwin_arm64 folder. For simplicity and to keep download size under control, both for end users and builders, we are not planning to ship universal binaries. So this is a separate folder from lib/darwin. Ref T78710 Differential Revision: https://developer.blender.org/D10276
2021-02-01CMake: Remove duplicated code for Haru-TIFF dependency.Ankit Meel
2021-02-01CMake/Windows/macOS: Add LibharuAnkit Meel
Decision: https://lists.blender.org/pipermail/bf-committers/2020-December/050836.html Adds CMake dependency builder support. Tested on macOS and Windows (Thanks @LazyDodo). Reviewed By: #platform_macos, LazyDodo, sebbas Maniphest Task: T84836 Differential Revision: https://developer.blender.org/D9928
2020-12-21Unix/macOS: support building with CcacheMatt Hill
This adds an option (WITH_COMPILER_CCACHE) to build using Ccache if it's found. Makefiles-based, Ninja-based and Xcode generators are supported. Pass `-DWITH_COMPILER_CCACHE=ON` to cmake to enable Ccache. Utility option in GNUmakefile is also added: for e.g., `make ninja ccache`. Reviewed By: brecht, ankitm Differential Revision: https://developer.blender.org/D9665
2020-12-02Deps: Additional changes for PugiXML on macOSSebastián Barschkis
This commit expands the Windows-specific code in rBdca9aa0053f7 and Linux-specific code in rB33b7d53df08a. It also fixes a capitalization issue in FindPugiXML.cmake
2020-11-29CMake/macOS: Use custom LIBDIR if set on CLIRebecca Dengate
Reviewed By: ankitm Maniphest Tasks: T83174 Differential Revision: https://developer.blender.org/D9664
2020-11-23Cleanup: CMake: use string(APPEND..), not set(..)Ankit Meel
Left out in {rB7f28a99dd5a57216fb477d844ae1fec5510ad5d5}
2020-11-23CMake/macOS: Replace -Xlinker with -Wl.Ankit Meel
Causes link issues on Xcode's "New Build System" which was introduced in Xcode 10 and is default on Xcode 12. https://devtalk.blender.org/t/16273 Differential Revision: https://developer.blender.org/D9624 Reviewed by: brecht, #platform_macos
2020-11-06Cleanup: use string APPEND/PREPENDCampbell Barton
Replace 'set' with 'string(APPEND/PREPEND ...)'. This avoids duplicating the variable name.
2020-11-03Merge branch 'blender-v2.91-release' into masterAnkit Meel
2020-11-03macOS: find Jack framework in system directoriesAnkit Meel
Until it is decided whether to ship JACK with pre-compiled libraries, search for the same in system directories. Ref T79261 Reviewed By: brecht Differential Revision: https://developer.blender.org/D9436
2020-10-28Merge branch 'blender-v2.91-release' into masterAnkit Meel
2020-10-28macOS: use -fno-strict-aliasing for all build types.Ankit Meel
The old code was added in {rBbaa4a9c7d4dd} While the hotfix committed in {rB2ddecfffc3d3a3a1db4ae45e8665ca} fixed the id_management test, the correct reason was found at https://bugs.llvm.org/show_bug.cgi?id=47984 This matches the behavior on Linux.
2020-10-22Fix build error Python module build and Embree on macOSBrecht Van Lommel
Setting the stack size only works for executables, for shared libraries the host application controls it.
2020-10-19CMake/macOS: use system OpenAL for the time being.Ankit Meel
Revert part of {rB83124856d05ee4da605ab247e6}