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-02-22Fix compilation error on certain platformsSergey Sharybin
Atomic operations performed by the C++ standard library might require libatomic on platforms which do not have hardware support for those operations. This change makes it that such configurations are automatically detected and -latomic is added when needed. Differential Revision: https://developer.blender.org/D14106
2022-02-22Python: bump minimum version to 3.10Campbell Barton
Since Python 3.10 is now supported on all platform, bump the minimum version to reduce the number of Python versions that need to be supported simultaneously. Reviewed By: LazyDodo, sybren, mont29, brecht Ref D13943
2022-02-17Cleanup: Move more cmake library variables to be advancedSebastian Parborg
I noticed that there were a few variables that should not be visible per default. It seems to me to simply be an oversight, so I went ahead and cleaned them up. Reviewed By: Sybren, Ray molenkamp Differential Revision: http://developer.blender.org/D14132
2022-02-17Build: update CMake to support OpenImageIO 2.3.4Brecht Van Lommel
FindOpenImageIO was updated to link to separate OpenImageIO_Util for new versions, where it is required. For older versions, we can not link to it because there will be duplicated symbols. Ref D14128
2022-02-17Build: update CMake to support OpenEXR 3Brecht Van Lommel
FindOpenEXR was updated to find new lib names and separate Imath. It's all added to the list of OpenEXR include dirs and libs. This keeps it compatible with both version 2 and 3 for now, and doesn't require changes outside the find module. Ref D14128
2022-02-04deps_builder: Update to freetype 2.11.1Ray Molenkamp
Required to solve a crash on windows (T95367) Mostly an uneventful update, except for FreeType giving its cmake options a rename. Reviewed By: brecht, sybren Differential Revision: https://developer.blender.org/D13968
2022-01-31Python: default to version to 3.10 for LinuxCampbell Barton
This doesn't bump the minimum version, see D13943.
2022-01-28Update pipeline config and point to 3.1 branches.Thomas Dinges
2022-01-28Cleanup: indentation for CMake filesCampbell Barton
Also minor white-space & case changes.
2022-01-28Cleanup: spelling in commentsCampbell Barton
Also minor wording improvements.
2022-01-27install_deps: Downgrade python-ztandard to 0.16.0.Bastien Montagne
Higher version requires a new version of the ztandard library itself. Ref. T93161/D13922.
2022-01-27Downgrade Python zstandard module to 0.16.0Sybren A. Stüvel
Downgrade the Python zstandard from 0.17.0 to 0.16.0. The Python package should be linked against the exact same version of libzstd as Blender is, otherwise it will refuse to load from within the Blender executable. Python zstandard 0.17.0 links to 1.5.1, whereas we need 1.5.0.
2022-01-27Build: enable Python 3.10 on macOSBrecht Van Lommel
2022-01-27cmake/windows: Enable Python 3.10Ray Molenkamp
2022-01-27install_deps: Update OSL to 1.11.17.0 for llvm13 compatibility.Bastien Montagne
While install_deps tries to stay as close as possible from official Blender versions of the libraries, it also strives to use as many distro packages as possible. OSL 1.11.16.0 is the minimal version that builds with llvm13, which is the default llvm/clang version in e.g. Debian testing.
2022-01-27install_deps: Update python and deps versions as per T93161/D13922.Bastien Montagne
2022-01-27Deps builder: Python 3.10.2Ray Molenkamp
Also included: IDNA 3.2 -> 3.2 Charset Normalizer 2.0.6 -> 2.0.10 UrlLib3 1.26.7 -> 1.26.8 Requests 2.26.0 -> 2.27.1 Cython 0.29.24 -> 0.29.26 ZStandard 0.15.2 -> 0.17.0 Numpy 1.12.2 -> 1.22.0 Reviewed by: brecht Differential Revision: https://developer.blender.org/D13922
2022-01-27Windows: Retire MSVC 2017 supportRay Molenkamp
The lower bar for building blender is now MSVC 2019 16.9.16.
2022-01-26Revert "CMake: include BROTLI_LIBRARIES in FREETYPE_LIBRARIES on UNIX"Campbell Barton
This reverts commit 086f1911698154edd4cc19dc966e966bb0060917. There was apparently a problem using APPEND which wasn't referenced in the commit log. Added comment noting the reason for the discrepancy.
2022-01-26CMake: mark all BROTLI libraries as advancedCampbell Barton
2022-01-26CMake: include BROTLI_LIBRARIES in FREETYPE_LIBRARIES on UNIXCampbell Barton
This was already done for APPLE & WIN32, which would reference these libraries twice. Now append BROTLI_LIBRARIES to FREETYPE_LIBRARIES when they're required for linking. No functional changes as all references to FREETYPE_LIBRARIES also used BROTLI_LIBRARIES.
2022-01-26CMake: add WITH_SYSTEM_FREETYPE to link against the systems freetypeCampbell Barton
2022-01-26CMake: resolve issues using pre-compiled & system libraries for UnixCampbell Barton
When LIBDIR existed, searching for system libraries would always first search 'LIBDIR'. This meant "WITH_SYSTEM_*" would still prefer LIBDIR versions of libraries if they exist. The presence of LIBDIR also ignored the setting for WITH_STATIC_LIBS which is now restored to the cached value once pre-compiled libraries have been handled.
2022-01-25Deps builder: add VS2019, remove 2013/2015 supportRay Molenkamp
This will allow building most deps with VS2019 SDL has some linker issues that are resolved in a newer version, but that would be better handled in a separate change. VS2013 and VS2015 support which was broken has been removed.
2022-01-25make.bat: unify python detectionRay Molenkamp
Several sub commands tried on their own to locate python, given I wanted to look in several locations for a broader libdir compatibility this is best done in a central location. Python 3.9 is still preferred, but if 3.10-3.12 are available that be accepted as well. note: this is about the python version make.bat uses to run various python helper scripts, this change has no influence on the python version blender itself uses.
2022-01-25CMake/Linux: only link to brotli when using static precompiled librariesSybren A. Stüvel
The Brotli library only needs to be explicitly linked when using the statically linked libraries. When using system libs they're shared, and the .so loading mechanism takes care of dependencies.
2022-01-25CMake/Linux: Fix Brotli library finding on standard distros.Bastien Montagne
Brotli seems to add a custom postfix to its static libraries by default, but in Debian at least libraries are just named the same for both shared and static versions, as usual. So add standard name after static-specific ones. Follow-up to rB4c617c06e9cb and rBa000de7c2a4d.
2022-01-25CMake/Linux: find Brotli library the proper waySybren A. Stüvel
Use a `FindBrotli.cmake` module instead of manually appending library paths. This is just for Linux; Windows and macOS will be reviewed separately.
2022-01-24Linux/CMake: link `libbbrotli*.a` along with new FreeTypeSybren A. Stüvel
Add `libbrotlidec-static.a` and `libbrotlicommon-static.a` to the CMake `$FREETYPE_LIBRARIES` variable; they'll be required when the Linux libs for the FreeType upgrade lands (D13448). The order of libraries is different compared to the similar lines in the Windows and Apple CMake files, to prevent linker errors on Linux.
2022-01-24Cleanup: clang-formatCampbell Barton
2022-01-21Build: update macOS for FreeType library with woff2 supportBrecht Van Lommel
Ref D13448, T93161
2022-01-21cmake/win: Platform update for freetype 2.11.0Ray Molenkamp
freetype now depends on brotli
2022-01-21deps/win: fix typo in brotli.cmakeRay Molenkamp
it was harvesting to the zstd folder which is not where these libs ought to be.
2022-01-21Cmake/Deps: Freetype 2.11.0 / brotli 1.0.9Ray Molenkamp
The UI team requested adding woff2 support to freetype. this required a new dependency brotli. This changes adds brotili to the builder and bumps freetype to version 2.11.0 As freetype now depends on other libraries, for consistency all use of ${FREETYPE_LIBRARY} in cmake has been updated to use ${FREETYPE_LIBRARIES} adjustments have been made in the windows platform file, all other platforms use cmake's FindFreeType.cmake which already sets this variable. reviewed by: brecht Differential Revision: https://developer.blender.org/D13448
2022-01-17InstallDeps: Increase 'MEX' version of llvm to 14.Bastien Montagne
llvm 13 is now default on debian testing, tried it quickly and it seems to work fine, so raising exclusive maximum value for it to 14.
2022-01-17CMake: resolve issue finding moldCampbell Barton
The default installation path uses `libexec`, missed this as the package for Arch replaces this with `lib`, now both are checked.
2022-01-16macOS: fix llvm-ranlib invalid option errorAnkit Meel
2022-01-15CMake: only ever enable one alternative linker for UNIX/GCCCampbell Barton
Since the option to enable linkers are booleans, it's possible to enable them all at once. Now only the first enabled + available linker is used (with priority given to link is with better performance).
2022-01-15CMake: use LINKER flags instead of CFLAGS for setting the linkerCampbell Barton
Set the linker using CMAKE_*_LINKER_FLAGS instead of {C/CXX}FLAGS. There is no advantage in using the CFLAGS to set the linker, it has the downside of triggering a full rebuild when changing the linker. Tested building Blender and the bpy.so Python module. Ref D13833 Reviewed by: sergey, brecht
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-14CMake: add WITH_LINKER_MOLD option for GCC/Clang Unix platformsCampbell Barton
Can give considerably faster linking, especially on system with many cores. The mold linker recently reached 1.0, see: https://github.com/rui314/mold The current stable release of GCC can't use this linker via -fuse-ld=mold, so this patch uses the "-B" argument to add a binary directory containing an alternate "ld" command that points to "mold" (which is part of the default mold installation). Some timing tests for linking full builds for AMD TR 3970X: - BFD: 20.78 seconds. - LLD: 12.16 seconds. - GOLD: 7.21 seconds. - MOLD: 2.53 seconds. Ref D13807 Reviewed by: sergey, brecht
2022-01-13Fix link errors after recent FFMPEG / link_directories changesBrecht Van Lommel
2022-01-13Build: remove usage of link_directoriesBrecht Van Lommel
We are now always using absolute paths for libraries, as recommended by the CMake docs. Followup to D9177.
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
2022-01-12Revert "BLI: Refactor vector types & functions to use templates"Clément Foucault
Includes unwanted changes This reverts commit 46e049d0ce2bce2f53ddc41a0dbbea2969d00a5d.
2022-01-12BLI: Refactor vector types & functions to use templatesClment Foucault
This patch implements the vector types (i.e:`float2`) by making heavy usage of templating. All vector functions are now outside of the vector classes (inside the `blender::math` namespace) and are not vector size dependent for the most part. In the ongoing effort to make shaders less GL centric, we are aiming to share more code between GLSL and C++ to avoid code duplication. ####Motivations: - We are aiming to share UBO and SSBO structures between GLSL and C++. This means we will use many of the existing vector types and others we currently don't have (uintX, intX). All these variations were asking for many more code duplication. - Deduplicate existing code which is duplicated for each vector size. - We also want to share small functions. Which means that vector functions should be static and not in the class namespace. - Reduce friction to use these types in new projects due to their incompleteness. - The current state of the `BLI_(float|double|mpq)(2|3|4).hh` is a bit of a let down. Most clases are incomplete, out of sync with each others with different codestyles, and some functions that should be static are not (i.e: `float3::reflect()`). ####Upsides: - Still support `.x, .y, .z, .w` for readability. - Compact, readable and easilly extendable. - All of the vector functions are available for all the vectors types and can be restricted to certain types. Also template specialization let us define exception for special class (like mpq). - With optimization ON, the compiler unroll the loops and performance is the same. ####Downsides: - Might impact debugability. Though I would arge that the bugs are rarelly caused by the vector class itself (since the operations are quite trivial) but by the type conversions. - Might impact compile time. I did not saw a significant impact since the usage is not really widespread. - Functions needs to be rewritten to support arbitrary vector length. For instance, one can't call `len_squared_v3v3` in `math::length_squared()` and call it a day. - Type cast does not work with the template version of the `math::` vector functions. Meaning you need to manually cast `float *` and `(float *)[3]` to `float3` for the function calls. i.e: `math::distance_squared(float3(nearest.co), positions[i]);` - Some parts might loose in readability: `float3::dot(v1.normalized(), v2.normalized())` becoming `math::dot(math::normalize(v1), math::normalize(v2))` But I propose, when appropriate, to use `using namespace blender::math;` on function local or file scope to increase readability. `dot(normalize(v1), normalize(v2))` ####Consideration: - Include back `.length()` method. It is quite handy and is more C++ oriented. - I considered the GLM library as a candidate for replacement. It felt like too much for what we need and would be difficult to extend / modify to our needs. - I used Macros to reduce code in operators declaration and potential copy paste bugs. This could reduce debugability and could be reverted. - This touches `delaunay_2d.cc` and the intersection code. I would like to know @howardt opinion on the matter. - The `noexcept` on the copy constructor of `mpq(2|3)` is being removed. But according to @JacquesLucke it is not a real problem for now. I would like to give a huge thanks to @JacquesLucke who helped during this and pushed me to reduce the duplication further. Reviewed By: brecht, sergey, JacquesLucke Differential Revision: https://developer.blender.org/D13791
2022-01-12Revert "BLI: Refactor vector types & functions to use templates"Clément Foucault
Reverted because the commit removes a lot of commits. This reverts commit a2c1c368af48644fa8995ecbe7138cc0d7900c30.
2022-01-12BLI: Refactor vector types & functions to use templatesClément Foucault
This patch implements the vector types (i.e:float2) by making heavy usage of templating. All vector functions are now outside of the vector classes (inside the blender::math namespace) and are not vector size dependent for the most part. In the ongoing effort to make shaders less GL centric, we are aiming to share more code between GLSL and C++ to avoid code duplication. Motivations: - We are aiming to share UBO and SSBO structures between GLSL and C++. This means we will use many of the existing vector types and others we currently don't have (uintX, intX). All these variations were asking for many more code duplication. - Deduplicate existing code which is duplicated for each vector size. - We also want to share small functions. Which means that vector functions should be static and not in the class namespace. - Reduce friction to use these types in new projects due to their incompleteness. - The current state of the BLI_(float|double|mpq)(2|3|4).hh is a bit of a let down. Most clases are incomplete, out of sync with each others with different codestyles, and some functions that should be static are not (i.e: float3::reflect()). Upsides: - Still support .x, .y, .z, .w for readability. - Compact, readable and easilly extendable. - All of the vector functions are available for all the vectors types and can be restricted to certain types. Also template specialization let us define exception for special class (like mpq). - With optimization ON, the compiler unroll the loops and performance is the same. Downsides: - Might impact debugability. Though I would arge that the bugs are rarelly caused by the vector class itself (since the operations are quite trivial) but by the type conversions. - Might impact compile time. I did not saw a significant impact since the usage is not really widespread. - Functions needs to be rewritten to support arbitrary vector length. For instance, one can't call len_squared_v3v3 in math::length_squared() and call it a day. - Type cast does not work with the template version of the math:: vector functions. Meaning you need to manually cast float * and (float *)[3] to float3 for the function calls. i.e: math::distance_squared(float3(nearest.co), positions[i]); - Some parts might loose in readability: float3::dot(v1.normalized(), v2.normalized()) becoming math::dot(math::normalize(v1), math::normalize(v2)) But I propose, when appropriate, to use using namespace blender::math; on function local or file scope to increase readability. dot(normalize(v1), normalize(v2)) Consideration: - Include back .length() method. It is quite handy and is more C++ oriented. - I considered the GLM library as a candidate for replacement. It felt like too much for what we need and would be difficult to extend / modify to our needs. - I used Macros to reduce code in operators declaration and potential copy paste bugs. This could reduce debugability and could be reverted. - This touches delaunay_2d.cc and the intersection code. I would like to know @Howard Trickey (howardt) opinion on the matter. - The noexcept on the copy constructor of mpq(2|3) is being removed. But according to @Jacques Lucke (JacquesLucke) it is not a real problem for now. I would like to give a huge thanks to @Jacques Lucke (JacquesLucke) who helped during this and pushed me to reduce the duplication further. Reviewed By: brecht, sergey, JacquesLucke Differential Revision: http://developer.blender.org/D13791