tornavis/extern
Aras Pranckevicius e2e4c1daaa OBJ: use fmt library instead of sprintf for faster formatting
On Windows/MSVC this gives a minor (~20%) speedup presumably due to a faster float/int formatter. On macOS (Xcode13), this gives a massive speedup, since snprintf that is in system libraries ends up spending almost all the time inside some locale-related mutex lock.

The actual exporter code becomes quite a bit smaller too, since it does not have to do any juggling to support std::string arguments, and the buffer handling code is smaller as well.

Windows (VS2022 release build, Ryzen 5950X 32 threads) timings:
- Blender 3.0 splash scene (2.4GB obj): 4.57s -> 3.86s
- Monkey subdivided level 6 (330MB obj): 1.10s -> 0.99s

macOS (Xcode 13 release build, Apple M1Max) timings:
- Blender 3.0 splash scene (2.4GB obj): 21.03s -> 5.52s
- Monkey subdivided level 6 (330MB obj): 3.28s -> 1.20s

Linux (ThreadRipper 3960X 48 threads) timings:
- Blender 3.0 splash scene (2.4GB obj): 10.10s -> 4.40s
- Monkey subdivided level 6 (330MB obj): 2.16s -> 1.37s

The produced obj/mtl files are identical to before.

Reviewed By: Howard Trickey, Dalai Felinto

Differential Revision: https://developer.blender.org/D13998
2022-03-27 14:25:48 +03:00
..
Eigen3 Update Eigen to 3.3.7 2019-08-21 14:15:28 +02:00
audaspace Merge branch 'blender-v3.1-release' 2022-02-18 18:25:31 +01:00
binreloc File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
bullet2 File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
ceres File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
clew File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
cuew File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
curve_fit_nd File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
draco File headers: use SPDX license for CMake files 2022-02-11 14:23:56 +11:00
fmtlib OBJ: use fmt library instead of sprintf for faster formatting 2022-03-27 14:25:48 +03:00
gflags File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
glew File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
glew-es File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
glog File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
gmock File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
gtest File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
hipew File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
json Blender Libraries: Add JSON Library. 2021-09-22 09:07:09 +02:00
lzma File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
lzo File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
mantaflow File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
nanosvg NanoSVG: Mention the version we use 2021-12-02 18:22:05 +01:00
quadriflow File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
rangetree File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
sdlew File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
smaa_areatex File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
tinygltf Extern: Add modifications diff for TinyGLTF 2021-10-13 20:56:27 +09:00
wcwidth File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
xdnd File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
.clang-format ClangFormat: add configuration files 2019-04-17 06:11:16 +02:00
CMakeLists.txt File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
README Readme file to extern libraries about the attribution document 2020-12-11 18:53:22 +01:00

README

When updating a library remember to:

* Update the README.blender with the corresponding version.
* Update the THIRD-PARTY-LICENSE.txt document