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
2021-09-10Windows: Fix VS2022 detectionRay Molenkamp
VS2019 had a compiler update moving it into the range that was used to detect VS2022. This patch updates the detection to the current VS2022 preview compiler version. Reported by Jesse Y on chat.
2021-08-25Windows/Ninja: Optimize linker performanceRay Molenkamp
The /Zc:inline flag is by default off in the MSVC compiler however when you build with msbuild it adds it to the build flags on its own. Ninja however does not decide on its own to add flags you didn't ask for and was building without this flag. This change explicitly adds the compiler flag so msbuild and ninja builds are once more building with the same build flags leading to smaller .obj files when building with ninja and lightening the workload for the linker. This flag is available starting MSVC 2013 update 2 so does not need to be guarded with version checks.
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-05Xcode: support cmake options for grouping in foldersGermano Cavalcante
The Xcode IDE can also benefit from the options: - WINDOWS_USE_VISUAL_STUDIO_SOURCE_FOLDERS - WINDOWS_USE_VISUAL_STUDIO_PROJECT_FOLDERS So add suport to these options and also renames them as they are no longer limited to just Windows and Visual Studio. Reviewed By: brecht, ankitm Differential Revision: https://developer.blender.org/D12132
2021-08-05Cleanup: tab indentation for CMake / GNUmakefileCampbell Barton
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-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-26macOS Cleanup: Remove old version specific codeAnkit Meel
Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D12021
2021-06-23CMake/win: Fix linker issue with OCIORay Molenkamp
In certain CMake configurations it was possible that OCIO gave linker errors due to it thinking it was using the shared library rather than the static library we ship.
2021-06-22Build/Windows: Preliminary VS 2022 support.Ray Molenkamp
This adds preliminary VS 2022 support, since there currently is no CMake version that supports the VS2022 IDE only ninja support was tested. IDE support should work without any additional changes as soon as an updated CMake becomes available. As VS2022 appears to keep binary compatibility with earlier MSVC versions, the current SVN libraries will work for this version.
2021-06-15CMake: disable TBB when not foundCampbell Barton
2021-06-10Fix: Build error with MSVCRay Molenkamp
rB4f81b4b4ce29 mistakenly left out the changes to platform_win32.cmake causing a linker error when WITH_GMP and WITH_TBB_MALLOC_PROXY were on.
2021-06-05Fix T88813: Scalable allocator not used on win10Ray Molenkamp
Due to the way we ship the CRT on windows TBB's malloc proxy was unable to attach it self to the memory management functions on windows 10. This change moves ucrtbase.dll out of the blender.crt folder and back into the main blender folder to side step some undesirable behaviour on win10 making TBB once more able to attach it self. Having this work again, should give a speed boost in memory allocation heavy workloads such as mantaflow. For details on how this only failed on Win10 see T88813
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-06-03GHOST/wayland: get cursor settings via D-BusChristian Rauch
2021-06-03cmake: use absolute path for Wayland librariesChristian Rauch
2021-05-31Windows: Clean-up win 8/8.1 API useRay Molenkamp
For 2.93 we bumped the minimum windows requirement to windows 8.1, but did not do any clean-up of any win 8/8.1 API usage we dynamically accessed though LoadLibrary/GetProcAddress. This patch bumps _WIN32_WINNT to 0x0603 (win 8.1) and cleans up any API use that was accessed in a more convoluted way than necessary Differential Revision: https://developer.blender.org/D11331 Reviewed by: harley, nicholas_rishel
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-30MSVC: ASAN support for VS 16.9Ray Molenkamp
This enables ASAN support when used with VS 16.9 enable as usual in cmake with the WITH_COMPILER_ASAN option, or when using make.bat just tag on `asan' to the invocation, ie: `make lite 2019 asan` MSVC: Asan support for 16.9 This enables ASAN support when used with VS 16.9 enable as usual in cmake with the WITH_COMPILER_ASAN option, or when using make.bat just tag on `asan' to the invocation, ie: `make lite 2019 asan` Differential Revision: https://developer.blender.org/D7794 Reviewed By: brecht, sergey
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-17Audaspace: add support for PulseAudio on LinuxJörg Müller
This adds PulseAudio as audio backend on Linux. PulseAudio is the main audio engine used on most, if not all, Linux distributions today. Ref T86590
2021-03-08Cleanup: Removed duplicate slash in macOS SDK pathSebastián Barschkis
Cleanup although it's harmless.
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-22CMake/Windows: Update for new XR_OPENXR versionRay Molenkamp
This updates platform/platform_win32.cmake to support both the old and new library names for OpenXR. The new version links against one additional system library and the debug library filename changed ever so slightly. This is a temporary workaround and can be removed once the new lib versions have landed.
2021-02-22CMake/Windows: Detect Boost versionRay Molenkamp
Rather than hardcoding the lib names, read boosts version.hpp and extract the version from there. This will make it easier to land lib changes in the near future.
2021-02-17macOS: support building with command line tools without full XcodeBrecht Van Lommel
Latest Xcode takes up 15GB, command line tools are only 1.2GB.
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-09CMake/Linux: Add libharu to platform_linux.cmakeAnkit Meel
Since GPencil changes depending on libharu may be committed to master before SVN libraries for all platforms are in place, avoid build issues. Extension of D9928. Reviewed By: sybren Differential Revision: https://developer.blender.org/D10280
2021-02-05Cleanup: cmake indentation, white-spaceCampbell Barton
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: Fix build issue in lite+haruRay Molenkamp
Haru depends on some symbols defined in libtiff which will cause linker errors if not enabled. Disable haru if WITH_IMAGE_TIFF is off.
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
2021-01-26Fix: incomplete integration of PugiXML and Potrace build optionsBrecht Van Lommel
Add them to the standard build configurations, disable properly when library not found and print as part of configuration overview.