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-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-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-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-11-19Cleanup: fix typos in comments and docsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D13264
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-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-08install_deps: Fix OIIO depending on (system...) openVDB.Bastien Montagne
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-08-17Fix T90719: Boost sources dowload address needed to be updated.Bastien Montagne
2021-08-09Build: macOS library upgrade fixesBrecht Van Lommel
* Revert back to OpenMP 9.0.1 due to bug causing cloth physics test to fail. * Skip flex build on macOS to avoid link error, only reason we build this is due to old flex version on Linux CentOS 7. * Fix PNG cmake argument that expects lowercase on instead of ON. Ref T90507, T88438
2021-08-03Install_deps: Always re-create shortcuts to installed lib paths.Bastien Montagne
For some reasons looks like those shortcuts could get out of sync, which created weird hard to understand building errors. So for sake of simplicity and security, just re-create them all the time, just like we update ld paths.
2021-08-02Revert "GHOST/X11: enable EGL"Brecht Van Lommel
This is causing issues for some users launching Blender, because EGL indirectly requires GLVND, which is not installed by default on e.g. Ubuntu. This reverts commit 0b18a618b88b22663e05eca0f4d976875710e7cc. Fixes T90374 Ref D12034
2021-07-29GHOST/X11: enable EGLChristian Rauch
This will replace GLX with EGL for X11. GLEW does not support GLX and EGL at the same time. Most distributions build GLEW with GLX support, so we have to use the externally provided GLEW and build with EGL support. This effectively sets WITH_SYSTEM_GLEW to OFF for all Linux configurations. Differential Revision: https://developer.blender.org/D12034
2021-07-29deps/win: Remove media foundation dep for ffmpegRay Molenkamp
This caused a blender load error on windows N, given we do not use these codecs they can safely be disabled. This will fix T90200 once the new libraries are in SVN
2021-07-29install_deps: update OIDN to 1.4.1, and ISPC to 1.16.0.Bastien Montagne
Ref. T88438.
2021-07-29install_deps: Update OSL to 1.11.14.1.Bastien Montagne
This has been a huge pain to get working, for several reasons (new flags needed, patching is now mandatory, etc.). Further more, discovered that debian OIIO package is now silently relying on OpenCV, without even proper handling of this dependency (at least in the `-dev` package), so had to revert to force-build own OIIO again on that distro for the time being. Ref. T88438.
2021-07-29Cleanup: OSL buildlib patch: Remove `.rej` part.Bastien Montagne
This patch contained changes for an `.rej` rejection file generated by failed patch apply... Definitly nothing to do here.
2021-07-29install_deps: Update OIIO to 1.1.15.1.Bastien Montagne
Ref. T88438.
2021-07-29install_deps: Update llvm to 12.0 (with minimal now being 11.0).Bastien Montagne
Ref T88438.
2021-07-29Install_deps: add flex dependency.Bastien Montagne
Was already installed on Debian-like and Fedore/Suse actually, now also explicitely required on Arch and listed in docs. Ref. T88438.
2021-07-29Install_deps: Add zstd dependency.Bastien Montagne
Ref T88438.
2021-07-29deps: Reduce llvm/clang footprint for windowsRay Molenkamp
We shipped the whole bin folder for llvm/clang while we only needed clang-format, by shipping just the bits we need we save about 700 megabytes off our svn lib download.
2021-07-27Deps: ensure osl/bin/oslc is using static libpngSybren A. Stüvel
Pass `-DLINKSTATIC=ON` to the OSL CMake, to ensure it statically links to our libpng. Previously this was only applied on Windows, it's now on all platforms.
2021-07-27Deps builder: OIIO/OSL/ISPC/OIDN/LLVM/Flex updatesSybren A. Stüvel
This diff somewhat snowballed out of updating OIDN to 1.4.1 it had some changes that allowed us to remove the arm hacks we had in place and revert to using identical versions for a whole bunch of deps. But that required an update to ISPC which needed a newer LLVM and if we're updating LLVM we may as well update OSL, and when we update OSL, OIIO may as well be dragged in soo......anyhow... This diff updates: LLVM 9.0.0 (11.0.1 for mac/arm) -> 12.0.0 OIIO 2.1.15.0 -> 2.2.15.1 OSL 1.11.10.0 -> 1.11.14.1 winflex_bison 2.5.5-> 2.5.24 (ispc needed newer bison, windows only dep) OIDN 1.4.0 -> 1.4.1 ISPC v1.14.1(random hash for mac/arm) -> v1.16.0 Flex 2.6.4 (ISPC needed newer Flex than available on CentOS 7) and removes most of the "special arm/mac" versions. I think just ssl and embree are left with special versions. notable changes: @LazyDodo included some clang headers in the linux/mac harvest which are needed to start writing custom clang based tooling like D9465 these were already shipping on windows, but not the other platforms. [macOS] Change the `LC_ID_DYLIB` of OpenMP for {D11997}. This changes where the executables look for dylibs. Reviewed By: sebbas, LazyDodo Differential Revision: https://developer.blender.org/D11748
2021-07-15Cleanup: ensure one newline at end of file, strip trailing spaceCampbell Barton
2021-07-15deps_builder: zstd 1.5.0Ray Molenkamp
Having zstd available is a requirement for landing D5799 Reviewed By: sybren Differential Revision: https://developer.blender.org/D11079
2021-07-09Deps: upgrade OpenXR 1.0.14 → 1.0.17Sybren A. Stüvel
Simple upgrade of OpenXR to 1.0.17. A version bump was enough, no Blender code had to change. Reviewed By: LazyDodo, mont29 Differential Revision: https://developer.blender.org/D11848
2021-07-08Cleanup: remove trailing spaces from `install_deps.sh`Sybren A. Stüvel
No functional changes.
2021-07-06cmake: add 'wayland-protocols' to 'make deps'Christian Rauch
2021-07-06doc: add Wayland dependenciesChristian Rauch
The wayland support requires the following development packages: libwayland-dev, wayland-protocols, libegl-dev, libxkbcommon-dev, libdbus-1-dev, linux-libc-dev
2021-07-06Deps builder: macOS/ ffmpeg: Fix linker warningAnkit Meel
ld: warning: could not create compact unwind for _ff_rl_init_vlc: stack subq instruction is too different from dwarf stack size Similar to rB2de5de57c58521862e0fecc95fc474ea347b7468 Differential Revision: https://developer.blender.org/D11796
2021-07-02Build: upgrade NanoVDB library to latest revisionBrecht Van Lommel
This includes improved handling of OpenVDB trees with inactive voxels, which previously could throw an error. Ref T89581, T88438
2021-06-10deps/windows: add missing tbbmalloc_debug.libRay Molenkamp
This file is being linked by blender without it existing causing issues for debug builds.
2021-06-08Build: upgrade OpenImageDenoise to 1.4.0Brecht Van Lommel
CMake builder and install deps changes, precompiled libraries are still to be committed. Ref T88438, T88434 Differential Revision: https://developer.blender.org/D11486
2021-06-07Revert most of rB93a865dde775e.Bastien Montagne
This revert went too far, only one line (the minimal version of FFMPEG for `install_deps.sh` script`) actually needed to be reverted... Sorry for the noise.
2021-06-07Revert "Bump FFmpeg version from 4.2.3 to 4.4"Bastien Montagne
This reverts commit 95690dd362f3a94f6c3b1efbe91e8b5cc164745f. Such high version restriction is no more needed after rB9225fe933ae990. Missing bit in https://developer.blender.org/D11417.
2021-06-04windows/deps: Fix TBB build issues.Ray Molenkamp
rB847579b42250 updated the TBB build script which had some unintended consequences for windows as the directory layout slightly changed. This change adjusts the builder to the new structure, there are no version/functional changes.
2021-05-25Bump FFmpeg version from 4.2.3 to 4.4Sybren A. Stüvel
Bump FFmpeg version to 4.4 to fix a problem where it would write the wrong frame rate. Their old API was deprecated and Blender moved to the new one in rB8d6264ea12bfac0912c7249f00af2ac8e3409ed1. The new one produced files with the wrong frame rate, which was fixed in FFmpeg 4.4. Manifest Task: T88568 Reviewed By: LazyDodo, zeddb Differential Revision: https://developer.blender.org/D11392
2021-05-25deps: Fix broken boost linkRay Molenkamp
2021-05-21Cleanup: spellingLeon Zandman
Includes fixes to misspelled function names. Ref D11280
2021-04-20Add support for building on Linux aarch64Patrick Mours
Differential Revision: https://developer.blender.org/D10958
2021-04-19Fix T86530: crash with Cycles OSL on Arm64Brecht Van Lommel
Bug in OSL itself, fix is submitted upstream.
2021-04-14CMake/deps: Remove CPP11 option for OpenImageIOSebastián Barschkis
This flag is obsolete. In its current state (missing -D) it also results in a CMake unknown argument error on macOS.
2021-04-13deps_builder: Bump download time out to 30 minsRay Molenkamp
The timeout was set to 60 seconds, which was problematic for some of the larger files like boost from the blender svn mirror.