aboutsummaryrefslogtreecommitdiff
path: root/thirdparty
Commit message (Collapse)AuthorAgeFilesLines
* Ported "lane trace" feature from UE (by way of IAX) (#771)Martin Ridgers12 days3-11/+803
| | | * Ported "lane trace" feature from UE (by way of IAX)
* work around doctest shutdown issues with static CRT (#784)Stefan Boberg13 days1-6/+23
| | | | | | * tweaked doctest.h to avoid shutdown issues due to thread_local variables running destructors after the main thread has torn down everything including the heap * disabled zenserver exit thread waiting since doctest should hopefully not be causing issues during shutdown anymore after my workaround This should help reduce the duration of tests spawning lots of server instances
* implement yaml generation (#774)Stefan Boberg2026-02-23405-128677/+0
| | | | | this implements a yaml generation strategy similar to the JSON generation where we just build a string instead of building a ryml tree. This also removes the dependency on ryml for reduced binary/build times.
* disable msys logic in blake3 to fix Git Bash build issuesStefan Boberg2026-02-221-3/+5
|
* structured compute basics (#714)Stefan Boberg2026-02-181-1/+1
| | | | | | | | | this change adds the `zencompute` component, which can be used to distribute work dispatched from UE using the DDB (Derived Data Build) APIs via zenserver this change also adds a distinct zenserver compute mode (`zenserver compute`) which is intended to be used for leaf compute nodes to exercise the compute functionality without directly involving UE, a `zen exec` subcommand is also added, which can be used to feed replays through the system all new functionality is considered *experimental* and disabled by default at this time, behind the `zencompute` option in xmake config
* zen hub (#574)Stefan Boberg2026-01-211-1/+1
| | | | | Initial implementation of zenserver "hub" mode. This is an experimental feature. zenserver can be started in hub mode by specifying `hub` as the first argument to zenserver
* sentry/asan configuration tweaks (#649)v5.7.10-pre0Stefan Boberg2025-11-131-2/+2
| | | | | * Automated more of the decisions around which options to set when using ASAN * Also disabled Sentry by default as it's a bit annoying to have it upload crashes during development. Sentry is still automatically enabled and integrated as part of the `xmake bundle` step however so released builds will still have it.
* switch to xmake for package management (#611)Stefan Boberg2025-11-07666-6/+332939
| | | | | | | | | | | | | | | | | | | | | | This change removes our dependency on vcpkg for package management, in favour of bringing some code in-tree in the `thirdparty` folder as well as using the xmake build-in package management feature. For the latter, all the package definitions are maintained in the zen repo itself, in the `repo` folder. It should now also be easier to build the project as it will no longer depend on having the right version of vcpkg installed, which has been a common problem for new people coming in to the codebase. Now you should only need xmake to build. * Bumps xmake requirement on github runners to 2.9.9 to resolve an issue where xmake on Windows invokes cmake with `v144` toolchain which does not exist * BLAKE3 is now in-tree at `thirdparty/blake3` * cpr is now in-tree at `thirdparty/cpr` * cxxopts is now in-tree at `thirdparty/cxxopts` * fmt is now in-tree at `thirdparty/fmt` * robin-map is now in-tree at `thirdparty/robin-map` * ryml is now in-tree at `thirdparty/ryml` * sol2 is now in-tree at `thirdparty/sol2` * spdlog is now in-tree at `thirdparty/spdlog` * utfcpp is now in-tree at `thirdparty/utfcpp` * xmake package repo definitions is in `repo` * implemented support for sanitizers. ASAN is supported on windows, TSAN, UBSAN, MSAN etc are supported on Linux/MacOS though I have not yet tested it extensively on MacOS * the zencore encryption implementation also now supports using mbedTLS which is used on MacOS, though for now we still use openssl on Linux * crashpad * bumps libcurl to 8.11.0 (from 8.8.0) which should address a rare build upload bug
* move cpr in-tree (#605)Stefan Boberg2025-10-241743-0/+514803
| | | | | | * added cpr 1.10.5 in-tree to allow updates to vcpkg without breaking the build * added asio 1.29.0 in-tree to remove one more vcpkg dependency * bumped vcpkg to 2024.06.15 to address failure to build due to use of deprecated binaries in vcpkg (404 error: `https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-pkgconf-1~2.1.0-1-any.pkg.tar.zst` during build)
* in-tree spdlog (#602)Stefan Boberg2025-10-24112-0/+12943
| | | | move spdlog into the tree to remove dependency on vcpkg::spdlog, to allow diverging from the official version and evolve it to fit better with OTLP logging requirements
* add support for OTLP logging/tracing (#599)Stefan Boberg2025-10-2223-0/+5219
| | | | | | | | - adds `zentelemetry` project which houses new functionality for serializing logs and traces in OpenTelemetry Protocol format (OTLP) - moved existing stats functionality from `zencore` to `zentelemetry` - adds `TRefCounted<T>` for vtable-less refcounting - adds `MemoryArena` class which allows for linear allocation of memory from chunks - adds `protozero` which is used to encode OTLP protobuf messages
* added separate xmake.lua for thirdparty (#578)Stefan Boberg2025-10-151-0/+45
| | | | | Moves out third-party stuff from zencore Establishes new pattern for incorporating thirdparty code. The integration is cleaner, clearer and also surfaces the code in the generated .sln
* some bug fixes (#522)Stefan Boberg2025-09-291-1/+1
| | | | | | * fix for invalid regex in HttpBuildStoreService - triggers with most recent MSVC version * in GcScheduler don't wait for exit signal if exit has already been requested. this caused extended waits for shutdown in some automated tests on very fast machines, possibly also due to some behaviour change in condition_variable * speculative fix/workaround for issue with TLS teardown on secondary thread while main was tearing down trace
* rpmalloc fixes (#499)Stefan Boberg2025-09-172-51/+66
| | | | | | | | * fixed rpmalloc build on Linux and Mac * updated rpmalloc from develop branch on the advice of mjansson * enabled rpmalloc on all platforms note that this does not change any behaviour unless `--malloc=rpmalloc` is passed in on the command line. The default is still `mimalloc`.
* Add pre-built systemd library and remove vcpkg dependencyLiam Mitchell2025-08-2023-0/+3263
|
* update Oodle libs to 2.9.14 (#446)Dan Engelbrecht2025-06-237-29/+98
| | | * update Oodle libs to 2.9.14
* Remove broken debug symbols from Oodle and re-enable symbol stripping (#444)Liam Mitchell2025-06-191-0/+0
|
* Update to recent UE toolchain, and link statically against toolchain libc++ ↵Liam Mitchell2025-06-13794-183860/+0
| | | | and libc++abi
* fixes for log timestamps (#304)Stefan Boberg2025-03-123-0/+352
| | | | | | * add GetTimeSinceProcessStart returning time since process start. implemented using https://github.com/maxliani/GetTimeSinceProcessStart/tree/main * fix fractions when using epoch mode. Previously it would show the fraction from the absolute time stamp and not relative to epoch * used GetTimeSinceProcessStart to offset the epoch so that it represents the process spawn time
* Flush CPU scope trace buffers when scope depth reaches zero (#235)Martin Ridgers2024-11-261-1/+4
|
* Insights-compatible memory tracking (#214)Stefan Boberg2024-11-254-0/+3215
| | | | | | | | | | | | | This change introduces support for tracing of memory allocation activity. The code is ported from UE5, and Unreal Insights can be used to analyze the output. This is currently only fully supported on Windows, but will be extended to Mac/Linux in the near future. To activate full memory tracking, pass `--trace=memory` on the commandline alongside `--tracehost=<ip>` or `-tracefile=<path>`. For more control over how much detail is traced you can instead pass some combination of `callstack`, `memtag`, `memalloc` instead. In practice, `--trace=memory` is an alias for `--trace=callstack,memtag,memalloc`). For convenience we also support `--trace=memory_light` which omits call stacks. This change also introduces multiple memory allocators, which may be selected via command-line option `--malloc=<allocator>`: * `mimalloc` - mimalloc (default, same as before) * `rpmalloc` - rpmalloc is another high performance allocator for multithreaded applications which may be a better option than mimalloc (to be evaluated). Due to toolchain limitations this is currently only supported on Windows. * `stomp` - an allocator intended to be used during development/debugging to help track down memory issues such as use-after-free or out-of-bounds access. Currently only supported on Windows. * `ansi` - fallback to default system allocator
* add yaml serialization support (#3)Stefan Boberg2024-03-262-0/+46
| | | | | | | this change adds serialization of payloads as YAML, but not parsing. The implementation is somewhat based on the JSON path, and may be collapsed eventually as it is possible to serialize JSON format using the same code it also separates out the JSON serialization into a separate file for ease of maintenance any HTTP request response may be formatted as yaml by using a `.yaml` suffix or an `Accept: text/yaml` header
* revive UE toolchain build (#343)Dan Engelbrecht2023-08-22796-0/+184194
| | | | | | | | | * add comment about 7z usage in xmake bundle * add ue-libcxx lib/headers and licence + tps * update get_ue_toolchain.sh to use embedded libc++ and decouple from p4 * clearer output when falling back to zip from 7z * update ci scripts to use ue toolchain on linux * updated linux build README.md * changelog
* Fixed macro leaking outMartin Ridgers2023-01-251-0/+2
|
* Updated Trace from Main at 23846526Martin Ridgers2023-01-251-561/+1415
|
* Use BLAKE3 port from vcpkg (#141)Stefan Boberg2022-09-2086-44561/+0
| | | | use BLAKE3 port from vcpkg instead of in-tree binaries
* Added tpsStefan Boberg2022-05-192-0/+36
|
* Fixed "int-into-bool-context" error that has mysteriously appearedMartin Ridgers2022-01-311-1/+1
|
* Added session info and partial logging to standalone TraceMartin Ridgers2022-01-271-48/+295
|
* Blake3 for Mac Arm64Martin Ridgers2022-01-131-0/+0
|
* Added a build of BLAKE3 for MacMartin Ridgers2022-01-051-0/+0
|
* Oodle for MacMartin Ridgers2022-01-051-0/+0
|
* Refreshed thirdparty/traceMartin Ridgers2021-12-151-9/+39
|
* Merged mainMartin Ridgers2021-12-1335-2/+883
|\
| * Updated the readme for the thirdparty licenses folder.Zousar Shaker2021-12-091-2/+3
| |
| * Add TPS license approvals.Zousar Shaker2021-12-0934-0/+880
| |
* | Initial integration of Trace from UE5 via the --zentrace=y xmake configMartin Ridgers2021-11-181-0/+5207
|/
* Renamed 3rdparty -> thirdparty for legal complianceStefan Boberg2021-11-04111-0/+49532