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-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
2022-01-12CMake: exclude linker options for APPLE and non-UNIXCampbell Barton
These are only used for non-apple unix systems.
2022-01-12deps_builder: GMP 6.2.1Ray Molenkamp
Pretty straightforward update, nothing noteworthy to report. Differential Revision: https://developer.blender.org/D13278 Reviewed by: brecht, sybren
2022-01-11Build: use precompiled headers on all platformsAaron Carlisle
Since CMake 3.16, CMake has native precompiled header (PCH) support. This change swaps Blender's own PCH implementation with the native implementation. Previously, PCH was only enabled on Windows however, this new implementation works on all platforms. For more information see https://cmake.org/cmake/help/latest/command/target_precompile_headers.html On my system, Linux with ninja running on an i5 8250U I saw a 60% reduction in compile times for `bf_freestyle` + linking time. Reviewed By: LazyDodo, brecht Differential Revision: https://developer.blender.org/D13797
2022-01-10macOS: fix xcrun sdk detection for minimal CLTAnkit Meel
Differential Revision: https://developer.blender.org/D13783
2022-01-10Fix Cycles compilation with Optix on Windows.Thomas Dinges
Since Optix 7.3 is required, update the default path accordingly.
2022-01-06Cleanup: remove unnecessary slashes and quotes from paths in CMakeCampbell Barton
2022-01-03Install_deps: Also cleanup `CLANG` CMAKE variablesBastien Montagne
Needed together with LLVM cleanup, otherwise things fail when LLVM gets updated.
2021-12-20Update our USD 21.02 patch to support gcc-11Bastien Montagne
There are two issues in USD code that break building it with gcc-11, one (in `demangle.cpp`) was already fixed upstream, the other (in `singularTask.h`) is still pending (reported upstream, see https://github.com/PixarAnimationStudios/USD/issues/1721). CC #platforms_builds_tests_devices project.
2021-12-20install_deps: Fix OIIO and OSL build with OpenEXRMaxime Chambonnet
Root path variables for those libraries is now using the 'standard' naming scheme. With tweaks/cleanups from @mont29. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D13591
2021-12-13Cycles: enable Metal GPU renderingBrecht Van Lommel
This adds the remaining bits to enable Metal on macOS. There are still performance optimizations and other improvements planned, but it should now be ready for early testing. This is currently only enabled on in Arm builds for M1 GPUs. It is not yet working on AMD or Intel GPUs. Ref T92212 Differential Revision: https://developer.blender.org/D13503
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-11-19Cleanup: fix typos in comments and docsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D13264
2021-11-18Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-18Fix T93045: Cycles HIP not rendering OpenVDB volumesBrecht Van Lommel
Build HIP kernels with NanoVDB, and patch NanoVDB to work with HIP. This is a header only library so no rebuild is needed. The changes are being submitted upstream to openvdb, so this patch should be temporary. Thanks Thomas for help testing this.
2021-11-17cleanup: fix typos in comments and docsluzpaz
Followup to https://developer.blender.org/D10288 Reviewed By: Blendify Differential Revision: https://developer.blender.org/D10346
2021-11-10Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-10Cycles: enable HIP device and binaries on WindowsBrecht Van Lommel
We've now done testing to confirm this works with RDNA and RDNA2 AMD GPUs on Windows. The AMD driver needed for this will soon be released publicly.
2021-11-08Cleanup: use static setsCampbell Barton
2021-11-08Cleanup: use static setsCampbell Barton
2021-11-04Merge branch 'blender-v3.0-release'Campbell Barton
2021-11-04Cleanup: capitalize ON/OFF with CMakeCampbell Barton
2021-10-27Build: set correct buildbot submodule and library branches for 3.0Brecht Van Lommel
2021-10-27win/make.bat: Add svnfix convenience targetRay Molenkamp
SVN seems to die randomly *a lot* during large updates for some users, and I'm no closer to finding out why that keeps happening. "The internet" seems to imply some AV vendors may be at fault here but nothing conclusive. The solution however is repeatedly running `svn cleanup`and `svn update` in the library folder to repair the corruption and finish the update. This change adds a small convenience helper to automate the repair. This is done inside the make.bat code rather than the shared python based update code, since python lives in the library folder and may or may not exist when this corruption occurs.
2021-10-21Windows: Fix finding python for build helpersRay Molenkamp
It was still looking for the 3.7 folder rather than 3.9
2021-10-21Deps: Python, bundle zstandard packageSybren A. Stüvel
This package allows Python scripts to handle compressed blend files (see rB2ea66af742bc). This is for example needed by Blender Asset Tracer to send files to a Flamenco render farm. This change includes a new `WITH_PYTHON_INSTALL_ZSTANDARD` build-time option, to control whether to actually install the package. For this the already-existing approach for Requests was copied. Reviewed By: LazyDodo, mont29, brecht Differential Revision: https://developer.blender.org/D12777
2021-10-21Deps: Python, bump bundled packages to their latest versionsSybren A. Stüvel
certifi : 2020.12.5 → 2021.10.8 chardet : 4.0.0 → charset-normalizer 2.0.6 cython : 0.29.21 → 0.29.24 idna : 2.10 → 3.2 numpy : 1.19.5 → 1.21.2 (which makes it possible to remove our patch) requests: 2.25.1 → 2.26.0 urllib3 : 1.26.3 → 1.26.7 Nowadays `requests` no longer depends on `chardet` but on `charset-normalizer`. That project describes itself as: > A library that helps you read text from an unknown charset encoding. > Motivated by chardet, I'm trying to resolve the issue by taking a new > approach. All IANA character set names for which the Python core library > provides codecs are supported. Reviewed By: LazyDodo, mont29, brecht Differential Revision: https://developer.blender.org/D12777
2021-10-21Deps: Bump Python 3.9.2 → 3.9.7Sybren A. Stüvel
Bump Python from 3.9.2 to 3.9.7, which is the latest 3.9 release at this moment. Updates to bundled Python packages will follow in a separate commit. Reviewed By: LazyDodo, mont29, brecht Differential Revision: https://developer.blender.org/D12777
2021-10-21Install_deps: Rename `_VERSION_MAX` to `_VERSION_MEX` variables.Bastien Montagne
We define the minimum exclusive number for our supported dependencies versions, and not the maximum inclusive number. Thanks to @sybren for raising this point and finding the 'mex' math term.
2021-10-20CMake: add WITH_BLENDER_THUMBNAILER optionCampbell Barton
Make building the thumbnail extraction executable optional, disable on macOS as this was not linking, further, macOS doesn't use this for thumbnail extraction so it could be left disabled.
2021-10-08install_deps: Fix OIIO depending on (system...) openVDB.Bastien Montagne
2021-10-06Build: search for hipcc in HIP_ROOT_DIR/binBrecht Van Lommel
2021-10-05Cycles: improve detection of HIP compiler for buildbotBrecht Van Lommel
And fix various broken things in the HIP kernel compilation.
2021-10-04check_cppcheck: use quiet outputCampbell Barton
Without this, each cppcheck invocation included all defines/includes flooding the console with unhelpful information. Also remove nonexistent directory to exclude.
2021-10-04check_cppcheck: use '--cppcheck-build-dir'Campbell Barton
Use a temporary directory for faster performance.
2021-10-04project_source_info: queue_processes() now waits for jobs to finishCampbell Barton
queue_processes() - used for some of the "make check_*" utilities, wasn't waiting for all jobs to finish before returning. This conflicted with running cleanup operations.
2021-09-23Fix: T91602 ffmpeg crashRay Molenkamp
Issue caused by our patch in rB1af722b81912 we replaced an array with a memory allocation but we forgot to update the assert which now used an invalid method to calculate the array size. SVN libs will have to be updated before T91602 will be fixed for end users.
2021-09-21Cycles: merge of cycles-x branch, a major update to the rendererBrecht Van Lommel
This includes much improved GPU rendering performance, viewport interactivity, new shadow catcher, revamped sampling settings, subsurface scattering anisotropy, new GPU volume sampling, improved PMJ sampling pattern, and more. Some features have also been removed or changed, breaking backwards compatibility. Including the removal of the OpenCL backend, for which alternatives are under development. Release notes and code docs: https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles https://wiki.blender.org/wiki/Source/Render/Cycles Credits: * Sergey Sharybin * Brecht Van Lommel * Patrick Mours (OptiX backend) * Christophe Hery (subsurface scattering anisotropy) * William Leeson (PMJ sampling pattern) * Alaska (various fixes and tweaks) * Thomas Dinges (various fixes) For the full commit history, see the cycles-x branch. This squashes together all the changes since intermediate changes would often fail building or tests. Ref T87839, T87837, T87836 Fixes T90734, T89353, T80267, T80267, T77185, T69800
2021-09-20Build: change make update to not print errors regarding submodule branchesBrecht Van Lommel
Instead of trying to checkout non-existent branches and getting confusing fatal error prints, check if the branch exists first. Ref D12560
2021-09-20make_update: Fix case where a sub-module would not have required branch.Bastien Montagne
Issue revealed by rB546314fc9669 change, also error itself exited before that commit. Now we do accept git command to fail when trying to checkout the specified branch from sub-modules, and only actually error in case the fall-back branch (aka master) cannot be properly checked out. Thanks fot Ray molenkamp (@LazyDodo) for report and initial patch (D12560).