| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // SPDX-License-Identifier: BSD-3-Clause | ||
| 2 | #pragma once | ||
| 3 | |||
| 4 | #include <filesystem> | ||
| 5 | #include <functional> | ||
| 6 | #include <initializer_list> | ||
| 7 | #include <string> | ||
| 8 | #include <string_view> | ||
| 9 | #include <utility> | ||
| 10 | #include <variant> | ||
| 11 | #include <vector> | ||
| 12 | |||
| 13 | #include "chrono_batch_render/util/error.h" | ||
| 14 | #include "chrono_batch_render/util/log.h" | ||
| 15 | #include "chrono_batch_render/util/version.h" | ||
| 16 | |||
| 17 | namespace chrono::batch_render { | ||
| 18 | |||
| 19 |
4/8✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✓ Branch 4 taken 40 times.
✗ Branch 5 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 time.
|
175 | class Library { |
| 20 | public: | ||
| 21 |
4/5✗ Branch 0 not taken.
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 14 times.
✓ Branch 1 taken 26 times.
✓ Branch 1 taken 1 time.
|
144 | Library() = default; |
| 22 | |||
| 23 | static Library Load(std::initializer_list<const char*> names, | ||
| 24 | std::initializer_list<const char*> paths = {}, | ||
| 25 | const std::filesystem::path& beside = {}); | ||
| 26 | static Library Find(std::initializer_list<const char*> names); | ||
| 27 | |||
| 28 | 160 | explicit operator bool() const { | |
| 29 |
17/25✓ Branch 0 taken 5 times.
✓ Branch 0 taken 13 times.
✓ Branch 0 taken 11 times.
✗ Branch 0 not taken.
✓ Branch 1 taken 41 times.
✗ Branch 1 not taken.
✗ Branch 1 not taken.
✓ Branch 1 taken 1 time.
✓ Branch 2 taken 26 times.
✓ Branch 3 taken 1 time.
✓ Branch 4 taken 1 time.
✓ Branch 4 taken 25 times.
✗ Branch 5 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 1 time.
✓ Branch 6 taken 3 times.
✗ Branch 7 not taken.
✓ Branch 7 taken 24 times.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 time.
|
157 | return m_handle != nullptr; |
| 30 | } | ||
| 31 | |||
| 32 | 15 | const std::string& Name() const { | |
| 33 |
9/10✓ Branch 1 taken 5 times.
✓ Branch 1 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 4 taken 1 time.
✓ Branch 4 taken 3 times.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 13 taken 1 time.
✓ Branch 16 taken 1 time.
✓ Branch 19 taken 1 time.
|
15 | return m_name; |
| 34 | } | ||
| 35 | |||
| 36 | std::filesystem::path Directory() const; | ||
| 37 | |||
| 38 | void* Symbol(const char* symbol) const; | ||
| 39 | |||
| 40 | 3 | template <class Function> bool Symbol(const char* symbol, Function& function) const { | |
| 41 |
3/9✓ Branch 1 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
|
3 | function = reinterpret_cast<Function>(Symbol(symbol)); |
| 42 |
3/6✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 time.
|
3 | return function != nullptr; |
| 43 | } | ||
| 44 | |||
| 45 | private: | ||
| 46 | static Library First(const std::vector<std::string>& names, bool loadedOnly); | ||
| 47 | |||
| 48 | void* m_handle = nullptr; | ||
| 49 | std::string m_name; | ||
| 50 | }; | ||
| 51 | |||
| 52 | 2 | class SymbolResolver { | |
| 53 | public: | ||
| 54 | using Lookup = std::function<void*(const char* symbol)>; | ||
| 55 | |||
| 56 | 1 | explicit SymbolResolver(Lookup lookup) : m_lookup(std::move(lookup)) {} | |
| 57 | |||
| 58 | 1 | explicit SymbolResolver(Library library) | |
| 59 |
1/2✗ Branch 1 not taken.
✓ Branch 8 taken 1 time.
|
3 | : m_lookup([library = std::move(library)](const char* symbol) { |
| 60 | 3 | return library.Symbol(symbol); | |
| 61 | 1 | }) {} | |
| 62 | |||
| 63 | 4 | template <class Function> void operator()(const char* symbol, Function& function) { | |
| 64 | 4 | function = reinterpret_cast<Function>(m_lookup(symbol)); | |
| 65 |
5/444void chrono::batch_render::SymbolResolver::operator()<char const* (*)(int)>(char const*, char const* (*&)(int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)()>(char const*, int (*&)()):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(char*, int, int)>(char const*, int (*&)(char*, int, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::compute::CompilerProgram**)>(char const*, int (*&)(chrono::batch_render::device::compute::CompilerProgram**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::compute::CompilerProgram**, char const*, char const*, int, char const* const*, char const* const*)>(char const*, int (*&)(chrono::batch_render::device::compute::CompilerProgram**, char const*, char const*, int, char const* const*, char const* const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::compute::CompilerProgram*, char*)>(char const*, int (*&)(chrono::batch_render::device::compute::CompilerProgram*, char*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::compute::CompilerProgram*, int, char const* const*)>(char const*, int (*&)(chrono::batch_render::device::compute::CompilerProgram*, int, char const* const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::compute::CompilerProgram*, unsigned long*)>(char const*, int (*&)(chrono::batch_render::device::compute::CompilerProgram*, unsigned long*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUDA_MEMCPY2D const*, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUDA_MEMCPY2D const*, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUctx_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUctx_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUctx_st**)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUctx_st**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUctx_st**, int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUctx_st**, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUevent_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUevent_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUevent_st**, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUevent_st**, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUevent_st*, chrono::batch_render::device::cuda::CUstream_st*, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUevent_st*, chrono::batch_render::device::cuda::CUstream_st*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUextMemory_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUextMemory_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUextMemory_st**, chrono::batch_render::device::cuda::CUDA_EXTERNAL_MEMORY_HANDLE_DESC const*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUextMemory_st**, chrono::batch_render::device::cuda::CUDA_EXTERNAL_MEMORY_HANDLE_DESC const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUextSemaphore_st* const*, chrono::batch_render::device::cuda::CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS const*, unsigned int, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUextSemaphore_st* const*, chrono::batch_render::device::cuda::CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS const*, unsigned int, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUextSemaphore_st* const*, chrono::batch_render::device::cuda::CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS const*, unsigned int, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUextSemaphore_st* const*, chrono::batch_render::device::cuda::CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS const*, unsigned int, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUextSemaphore_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUextSemaphore_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUextSemaphore_st**, chrono::batch_render::device::cuda::CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC const*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUextSemaphore_st**, chrono::batch_render::device::cuda::CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUfunc_st**, chrono::batch_render::device::cuda::CUmod_st*, char const*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUfunc_st**, chrono::batch_render::device::cuda::CUmod_st*, char const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUfunc_st*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, chrono::batch_render::device::cuda::CUstream_st*, void**, void**)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUfunc_st*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, chrono::batch_render::device::cuda::CUstream_st*, void**, void**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUgraphExec_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUgraphExec_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUgraphExec_st**, chrono::batch_render::device::cuda::CUgraph_st*, unsigned long long)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUgraphExec_st**, chrono::batch_render::device::cuda::CUgraph_st*, unsigned long long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUgraphExec_st*, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUgraphExec_st*, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUgraph_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUgraph_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUmemPoolHandle_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUmemPoolHandle_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUmemPoolHandle_st**, chrono::batch_render::device::cuda::CUmemPoolProps const*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUmemPoolHandle_st**, chrono::batch_render::device::cuda::CUmemPoolProps const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUmemPoolHandle_st*, int, void*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUmemPoolHandle_st*, int, void*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUmod_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUmod_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUmod_st**, void const*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUmod_st**, void const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUstream_st**, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUstream_st**, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUstream_st*, chrono::batch_render::device::cuda::CUevent_st*, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUstream_st*, chrono::batch_render::device::cuda::CUevent_st*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUstream_st*, chrono::batch_render::device::cuda::CUgraph_st**)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUstream_st*, chrono::batch_render::device::cuda::CUgraph_st**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUstream_st*, int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUstream_st*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUstream_st*, void (*)(void*), void*)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUstream_st*, void (*)(void*), void*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::cuda::CUuuid*, int)>(char const*, int (*&)(chrono::batch_render::device::cuda::CUuuid*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::hipGraphExec*)>(char const*, int (*&)(chrono::batch_render::device::hip::hipGraphExec*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::hipGraphExec**, chrono::batch_render::device::hip::ihipGraph*, unsigned long long)>(char const*, int (*&)(chrono::batch_render::device::hip::hipGraphExec**, chrono::batch_render::device::hip::ihipGraph*, unsigned long long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::hipGraphExec*, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(chrono::batch_render::device::hip::hipGraphExec*, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::hipUUID*, int)>(char const*, int (*&)(chrono::batch_render::device::hip::hipUUID*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::hip_Memcpy2D const*, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(chrono::batch_render::device::hip::hip_Memcpy2D const*, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipEvent_t*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipEvent_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipEvent_t**, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipEvent_t**, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipEvent_t*, chrono::batch_render::device::hip::ihipStream_t*, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipEvent_t*, chrono::batch_render::device::hip::ihipStream_t*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipGraph*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipGraph*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipMemPoolHandle_t*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipMemPoolHandle_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipMemPoolHandle_t**, chrono::batch_render::device::hip::hipMemPoolProps const*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipMemPoolHandle_t**, chrono::batch_render::device::hip::hipMemPoolProps const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipMemPoolHandle_t*, int, void*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipMemPoolHandle_t*, int, void*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipModuleSymbol_t**, chrono::batch_render::device::hip::ihipModule_t*, char const*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipModuleSymbol_t**, chrono::batch_render::device::hip::ihipModule_t*, char const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipModuleSymbol_t*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, chrono::batch_render::device::hip::ihipStream_t*, void**, void**)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipModuleSymbol_t*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, chrono::batch_render::device::hip::ihipStream_t*, void**, void**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipModule_t*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipModule_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipModule_t**, void const*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipModule_t**, void const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipStream_t**, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipStream_t**, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipStream_t*, chrono::batch_render::device::hip::ihipEvent_t*, unsigned int)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipStream_t*, chrono::batch_render::device::hip::ihipEvent_t*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipStream_t*, chrono::batch_render::device::hip::ihipGraph**)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipStream_t*, chrono::batch_render::device::hip::ihipGraph**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipStream_t*, int)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipStream_t*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(chrono::batch_render::device::hip::ihipStream_t*, void (*)(void*), void*)>(char const*, int (*&)(chrono::batch_render::device::hip::ihipStream_t*, void (*)(void*), void*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(float*, chrono::batch_render::device::cuda::CUevent_st*, chrono::batch_render::device::cuda::CUevent_st*)>(char const*, int (*&)(float*, chrono::batch_render::device::cuda::CUevent_st*, chrono::batch_render::device::cuda::CUevent_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(float*, chrono::batch_render::device::hip::ihipEvent_t*, chrono::batch_render::device::hip::ihipEvent_t*)>(char const*, int (*&)(float*, chrono::batch_render::device::hip::ihipEvent_t*, chrono::batch_render::device::hip::ihipEvent_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int)>(char const*, int (*&)(int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int*)>(char const*, int (*&)(int*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int*, int)>(char const*, int (*&)(int*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int*, int*)>(char const*, int (*&)(int*, int*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int*, int, chrono::batch_render::device::cuda::CUfunc_st*)>(char const*, int (*&)(int*, int, chrono::batch_render::device::cuda::CUfunc_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int*, int, chrono::batch_render::device::hip::ihipModuleSymbol_t*)>(char const*, int (*&)(int*, int, chrono::batch_render::device::hip::ihipModuleSymbol_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int*, int, int)>(char const*, int (*&)(int*, int, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(int, char const**)>(char const*, int (*&)(int, char const**)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned int)>(char const*, int (*&)(unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long long)>(char const*, int (*&)(unsigned long long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long long*, chrono::batch_render::device::cuda::CUDA_RESOURCE_DESC const*, chrono::batch_render::device::cuda::CUDA_TEXTURE_DESC const*, void const*)>(char const*, int (*&)(unsigned long long*, chrono::batch_render::device::cuda::CUDA_RESOURCE_DESC const*, chrono::batch_render::device::cuda::CUDA_TEXTURE_DESC const*, void const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long)>(char const*, int (*&)(unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, chrono::batch_render::device::cuda::CUextMemory_st*, chrono::batch_render::device::cuda::CUDA_EXTERNAL_MEMORY_BUFFER_DESC const*)>(char const*, int (*&)(unsigned long*, chrono::batch_render::device::cuda::CUextMemory_st*, chrono::batch_render::device::cuda::CUDA_EXTERNAL_MEMORY_BUFFER_DESC const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, int)>(char const*, int (*&)(unsigned long*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, unsigned long)>(char const*, int (*&)(unsigned long*, unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, unsigned long*)>(char const*, int (*&)(unsigned long*, unsigned long*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, unsigned long*, chrono::batch_render::device::cuda::CUmod_st*, char const*)>(char const*, int (*&)(unsigned long*, unsigned long*, chrono::batch_render::device::cuda::CUmod_st*, char const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, unsigned long, chrono::batch_render::device::cuda::CUmemPoolHandle_st*, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(unsigned long*, unsigned long, chrono::batch_render::device::cuda::CUmemPoolHandle_st*, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long*, void*, unsigned int)>(char const*, int (*&)(unsigned long*, void*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(unsigned long, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long, unsigned int, unsigned long, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(unsigned long, unsigned int, unsigned long, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long, unsigned long, unsigned long, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(unsigned long, unsigned long, unsigned long, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long, void const*, unsigned long)>(char const*, int (*&)(unsigned long, void const*, unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(unsigned long, void const*, unsigned long, chrono::batch_render::device::cuda::CUstream_st*)>(char const*, int (*&)(unsigned long, void const*, unsigned long, chrono::batch_render::device::cuda::CUstream_st*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void* const*, chrono::batch_render::device::hip::hipExternalSemaphoreSignalParams const*, unsigned int, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void* const*, chrono::batch_render::device::hip::hipExternalSemaphoreSignalParams const*, unsigned int, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void* const*, chrono::batch_render::device::hip::hipExternalSemaphoreWaitParams const*, unsigned int, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void* const*, chrono::batch_render::device::hip::hipExternalSemaphoreWaitParams const*, unsigned int, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*)>(char const*, int (*&)(void*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, chrono::batch_render::device::cuda::CUDA_ARRAY3D_DESCRIPTOR const*, unsigned int)>(char const*, int (*&)(void**, chrono::batch_render::device::cuda::CUDA_ARRAY3D_DESCRIPTOR const*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, chrono::batch_render::device::hip::HIP_ARRAY3D_DESCRIPTOR const*, unsigned int)>(char const*, int (*&)(void**, chrono::batch_render::device::hip::HIP_ARRAY3D_DESCRIPTOR const*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, chrono::batch_render::device::hip::HIP_RESOURCE_DESC const*, chrono::batch_render::device::hip::HIP_TEXTURE_DESC const*, void const*)>(char const*, int (*&)(void**, chrono::batch_render::device::hip::HIP_RESOURCE_DESC const*, chrono::batch_render::device::hip::HIP_TEXTURE_DESC const*, void const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, chrono::batch_render::device::hip::hipExternalMemoryHandleDesc const*)>(char const*, int (*&)(void**, chrono::batch_render::device::hip::hipExternalMemoryHandleDesc const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, chrono::batch_render::device::hip::hipExternalSemaphoreHandleDesc const*)>(char const*, int (*&)(void**, chrono::batch_render::device::hip::hipExternalSemaphoreHandleDesc const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, unsigned long)>(char const*, int (*&)(void**, unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, unsigned long*, chrono::batch_render::device::hip::ihipModule_t*, char const*)>(char const*, int (*&)(void**, unsigned long*, chrono::batch_render::device::hip::ihipModule_t*, char const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, unsigned long, chrono::batch_render::device::hip::ihipMemPoolHandle_t*, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void**, unsigned long, chrono::batch_render::device::hip::ihipMemPoolHandle_t*, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, unsigned long, unsigned int)>(char const*, int (*&)(void**, unsigned long, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, void*, chrono::batch_render::device::hip::hipExternalMemoryBufferDesc const*)>(char const*, int (*&)(void**, void*, chrono::batch_render::device::hip::hipExternalMemoryBufferDesc const*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void**, void*, unsigned int)>(char const*, int (*&)(void**, void*, unsigned int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void*, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, int)>(char const*, int (*&)(void*, int)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, int, unsigned long, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void*, int, unsigned long, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, unsigned long, unsigned long)>(char const*, int (*&)(void*, unsigned long, unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, void const*, unsigned long)>(char const*, int (*&)(void*, void const*, unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, void const*, unsigned long, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void*, void const*, unsigned long, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, void const*, unsigned long, int, chrono::batch_render::device::hip::ihipStream_t*)>(char const*, int (*&)(void*, void const*, unsigned long, int, chrono::batch_render::device::hip::ihipStream_t*)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<int (*)(void*, void*, unsigned long)>(char const*, int (*&)(void*, void*, unsigned long)):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::SymbolResolver::operator()<void (*)()>(char const*, void (*&)()):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✓ Branch 3 taken 1 time.
void chrono::batch_render::SymbolResolver::operator()<void* (*)(unsigned long)>(char const*, void* (*&)(unsigned long)):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
4 | if (function == nullptr && m_missing == nullptr) { |
| 66 | 1 | m_missing = symbol; | |
| 67 | } | ||
| 68 | 4 | } | |
| 69 | |||
| 70 | 3 | const char* Missing() const { | |
| 71 |
3/6<unknown function 19>:
✗ Branch 0 not taken.
✗ Branch 1 not taken.
chrono::batch_render::SymbolResolver::SymbolResolver(chrono::batch_render::Library):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
|
3 | return m_missing; |
| 72 | } | ||
| 73 | |||
| 74 | private: | ||
| 75 | Lookup m_lookup; | ||
| 76 | const char* m_missing = nullptr; | ||
| 77 | }; | ||
| 78 | |||
| 79 | template <class Api> using Loaded = std::variant<Api, std::string>; | ||
| 80 | |||
| 81 |
5/10std::variant<chrono::batch_render::device::compute::RuntimeCompiler, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > chrono::batch_render::LogUnavailable<chrono::batch_render::device::compute::RuntimeCompiler>(std::basic_string_view<char, std::char_traits<char> >, std::variant<chrono::batch_render::device::compute::RuntimeCompiler, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::variant<chrono::batch_render::device::cuda::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > chrono::batch_render::LogUnavailable<chrono::batch_render::device::cuda::Api>(std::basic_string_view<char, std::char_traits<char> >, std::variant<chrono::batch_render::device::cuda::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >):
✓ Branch 0 taken 11 times.
✗ Branch 1 not taken.
std::variant<chrono::batch_render::device::hip::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > chrono::batch_render::LogUnavailable<chrono::batch_render::device::hip::Api>(std::basic_string_view<char, std::char_traits<char> >, std::variant<chrono::batch_render::device::hip::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >):
✓ Branch 0 taken 11 times.
✗ Branch 1 not taken.
std::variant<chrono::batch_render::device::vulkan::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > chrono::batch_render::LogUnavailable<chrono::batch_render::device::vulkan::Api>(std::basic_string_view<char, std::char_traits<char> >, std::variant<chrono::batch_render::device::vulkan::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >):
✗ Branch 0 not taken.
✓ Branch 1 taken 11 times.
std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > chrono::batch_render::LogUnavailable<int>(std::basic_string_view<char, std::char_traits<char> >, std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
|
35 | template <class Api> Loaded<Api> LogUnavailable(std::string_view name, Loaded<Api> loaded) { |
| 82 | 35 | if (const std::string* why = std::get_if<std::string>(&loaded)) { | |
| 83 | 23 | Log(LogLevel::Debug, "{} can't be used here: {}", name, *why); | |
| 84 | } | ||
| 85 | 35 | return loaded; | |
| 86 | } | ||
| 87 | |||
| 88 |
3/4chrono::batch_render::device::vulkan::Api const& chrono::batch_render::RequireLoaded<chrono::batch_render::device::vulkan::Api>(std::variant<chrono::batch_render::device::vulkan::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&):
✓ Branch 0 taken 62 times.
✗ Branch 1 not taken.
int const& chrono::batch_render::RequireLoaded<int>(std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
|
120 | template <class Api> const Api& RequireLoaded(const Loaded<Api>& loaded) { |
| 89 | 120 | if (const Api* api = std::get_if<Api>(&loaded)) { | |
| 90 | 63 | return *api; | |
| 91 | } | ||
| 92 |
2/6chrono::batch_render::device::vulkan::Api const& chrono::batch_render::RequireLoaded<chrono::batch_render::device::vulkan::Api>(std::variant<chrono::batch_render::device::vulkan::Api, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
int const& chrono::batch_render::RequireLoaded<int>(std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✓ Branch 4 taken 1 time.
|
57 | throw UnsupportedError(std::get<std::string>(loaded)); |
| 93 | } | ||
| 94 | |||
| 95 | std::string TooOld(std::string_view what, Version found, Version needed); | ||
| 96 | |||
| 97 | } | ||
| 98 |