| Line |
Branch |
Exec |
Source |
| 1 |
|
|
// SPDX-License-Identifier: BSD-3-Clause |
| 2 |
|
|
#pragma once |
| 3 |
|
|
|
| 4 |
|
|
#include <cstdint> |
| 5 |
|
|
#include <span> |
| 6 |
|
|
#include <string_view> |
| 7 |
|
|
#include <unordered_map> |
| 8 |
|
|
#include <vector> |
| 9 |
|
|
|
| 10 |
|
|
#include "chrono_batch_render/bvh/builder.h" |
| 11 |
|
|
#include "chrono_batch_render/device/buffer.h" |
| 12 |
|
|
#include "chrono_batch_render/device/ref.h" |
| 13 |
|
|
#include "chrono_batch_render/scene/tables/storage.h" |
| 14 |
|
|
#include "chrono_batch_render/scene/tables/table.h" |
| 15 |
|
|
#include "chrono_batch_render/stage/columns/column_store.h" |
| 16 |
|
|
#include "chrono_batch_render/stage/publish/change_set.h" |
| 17 |
|
|
#include "chrono_batch_render/stage/structure/structure.h" |
| 18 |
|
|
|
| 19 |
|
|
namespace chrono::batch_render { |
| 20 |
|
|
|
| 21 |
|
48 |
struct ProceduralBlas { |
| 22 |
|
|
uint32_t capacity = 0; |
| 23 |
|
|
uint32_t refits = 0; |
| 24 |
|
|
bool fresh = false; |
| 25 |
|
|
Ref<bvh::Blas> blas; |
| 26 |
|
|
Ref<device::Buffer> boxes; |
| 27 |
|
|
ArrayRef bounds{}; |
| 28 |
|
|
|
| 29 |
|
|
void Allocate(device::Device& device, bvh::Builder& builder, uint32_t count, |
| 30 |
|
|
std::string_view label); |
| 31 |
|
|
void Bound(ColumnStore& store); |
| 32 |
|
|
void Release(ColumnStore& store); |
| 33 |
|
|
bool Rebuilds(uint32_t maxRefits); |
| 34 |
|
|
void Hold(std::vector<Ref<const RefCounted>>& held) const; |
| 35 |
|
|
}; |
| 36 |
|
|
|
| 37 |
|
|
template <class Entry, class Place, class Forget> |
| 38 |
|
1101 |
void TrackPrims(const ChangeSet& changes, const Prims& prims, SchemaId schema, |
| 39 |
|
|
const std::unordered_map<uint32_t, Entry>& entries, Place place, Forget forget) { |
| 40 |
|
15315 |
const auto matches = [&](uint32_t prim) { |
| 41 |
8/8
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 1 taken 7090 times.
✓ Branch 2 taken 16 times.
✓ Branch 5 taken 7052 times.
✓ Branch 6 taken 38 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 1 taken 7092 times.
✓ Branch 2 taken 16 times.
✓ Branch 5 taken 7044 times.
✓ Branch 6 taken 48 times.
|
14214 |
return prims.Alive(prim) && IsA(prims.Record(prim).schema, schema); |
| 42 |
|
|
}; |
| 43 |
4/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 278 times.
✓ Branch 1 taken 267 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 279 times.
✓ Branch 1 taken 277 times.
|
1101 |
if (changes.resync) { |
| 44 |
2/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 278 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 279 times.
|
557 |
while (!entries.empty()) { |
| 45 |
|
✗ |
forget(entries.begin()->first); |
| 46 |
|
|
} |
| 47 |
4/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 1860 times.
✓ Branch 1 taken 278 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 1862 times.
✓ Branch 1 taken 279 times.
|
4279 |
for (uint32_t prim = 0; prim < prims.Size(); ++prim) { |
| 48 |
4/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 1 taken 38 times.
✓ Branch 2 taken 1822 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 1 taken 48 times.
✓ Branch 2 taken 1814 times.
|
3722 |
if (matches(prim)) { |
| 49 |
|
3722 |
place(prim); |
| 50 |
|
|
} |
| 51 |
|
|
} |
| 52 |
|
557 |
return; |
| 53 |
|
|
} |
| 54 |
4/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 141 times.
✓ Branch 1 taken 267 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 141 times.
✓ Branch 1 taken 277 times.
|
826 |
for (const StructureEntry& entry : changes.removed) { |
| 55 |
2/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 141 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 141 times.
|
282 |
const auto found = entries.find(entry.prim); |
| 56 |
2/8
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 141 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 141 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
282 |
if (found != entries.end() && found->second.generation == entry.generation) { |
| 57 |
|
282 |
forget(entry.prim); |
| 58 |
|
|
} |
| 59 |
|
|
} |
| 60 |
4/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 5246 times.
✓ Branch 1 taken 267 times.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✓ Branch 0 taken 5246 times.
✓ Branch 1 taken 277 times.
|
11036 |
for (const StructureEntry& entry : changes.added) { |
| 61 |
2/8
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 5246 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 5246 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
10492 |
if (matches(entry.prim) && prims.Generation(entry.prim) == entry.generation) { |
| 62 |
0/4
chrono::batch_render::TrackPrims<chrono::batch_render::CurvesTable::Prim, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::CurvesTable::Prim, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::CurvesTable::Prim> > > const&, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::CurvesTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 1 not taken.
✗ Branch 2 not taken.
chrono::batch_render::TrackPrims<chrono::batch_render::PointsTable::Cloud, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2}>(chrono::batch_render::ChangeSet const&, chrono::batch_render::Prims const&, chrono::batch_render::SchemaId, std::unordered_map<unsigned int, chrono::batch_render::PointsTable::Cloud, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, chrono::batch_render::PointsTable::Cloud> > > const&, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#1}, chrono::batch_render::PointsTable::Run(chrono::batch_render::ChangeSet const&, chrono::batch_render::TableVersions&)::{lambda(unsigned int)#2})::{lambda(unsigned int)#1}::operator()(unsigned int) const:
✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
✗ |
if (entries.contains(entry.prim)) { |
| 63 |
|
✗ |
forget(entry.prim); |
| 64 |
|
|
} |
| 65 |
|
10492 |
place(entry.prim); |
| 66 |
|
|
} |
| 67 |
|
|
} |
| 68 |
|
|
} |
| 69 |
|
|
|
| 70 |
|
|
template <class Record> |
| 71 |
|
1101 |
void PublishRecords(RecordTable<Record>& records, ColumnStore& store, SchemaId schema, |
| 72 |
|
|
std::vector<uint32_t>& relinked, std::span<const uint32_t> updated, |
| 73 |
|
|
TableVersions& versions, TableId table, TableId moved) { |
| 74 |
|
1101 |
records.Reserve(store.Schema(schema).Capacity()); |
| 75 |
4/4
void chrono::batch_render::PublishRecords<chrono::batch_render::CurvesRecord>(chrono::batch_render::RecordTable<chrono::batch_render::CurvesRecord>&, chrono::batch_render::ColumnStore&, chrono::batch_render::SchemaId, std::vector<unsigned int, std::allocator<unsigned int> >&, std::span<unsigned int const, 18446744073709551615ul>, chrono::batch_render::TableVersions&, chrono::batch_render::TableId, chrono::batch_render::TableId):
✓ Branch 1 taken 278 times.
✓ Branch 2 taken 267 times.
void chrono::batch_render::PublishRecords<chrono::batch_render::PointsRecord>(chrono::batch_render::RecordTable<chrono::batch_render::PointsRecord>&, chrono::batch_render::ColumnStore&, chrono::batch_render::SchemaId, std::vector<unsigned int, std::allocator<unsigned int> >&, std::span<unsigned int const, 18446744073709551615ul>, chrono::batch_render::TableVersions&, chrono::batch_render::TableId, chrono::batch_render::TableId):
✓ Branch 1 taken 279 times.
✓ Branch 2 taken 277 times.
|
1101 |
if (records.Upload(store.GetDevice())) { |
| 76 |
|
557 |
relinked = {kGlobalWorld}; |
| 77 |
|
|
} |
| 78 |
4/4
void chrono::batch_render::PublishRecords<chrono::batch_render::CurvesRecord>(chrono::batch_render::RecordTable<chrono::batch_render::CurvesRecord>&, chrono::batch_render::ColumnStore&, chrono::batch_render::SchemaId, std::vector<unsigned int, std::allocator<unsigned int> >&, std::span<unsigned int const, 18446744073709551615ul>, chrono::batch_render::TableVersions&, chrono::batch_render::TableId, chrono::batch_render::TableId):
✓ Branch 0 taken 281 times.
✓ Branch 1 taken 264 times.
void chrono::batch_render::PublishRecords<chrono::batch_render::PointsRecord>(chrono::batch_render::RecordTable<chrono::batch_render::PointsRecord>&, chrono::batch_render::ColumnStore&, chrono::batch_render::SchemaId, std::vector<unsigned int, std::allocator<unsigned int> >&, std::span<unsigned int const, 18446744073709551615ul>, chrono::batch_render::TableVersions&, chrono::batch_render::TableId, chrono::batch_render::TableId):
✓ Branch 0 taken 329 times.
✓ Branch 1 taken 227 times.
|
1101 |
if (!relinked.empty()) { |
| 79 |
|
610 |
versions.Record(table, relinked); |
| 80 |
|
|
} |
| 81 |
4/4
void chrono::batch_render::PublishRecords<chrono::batch_render::CurvesRecord>(chrono::batch_render::RecordTable<chrono::batch_render::CurvesRecord>&, chrono::batch_render::ColumnStore&, chrono::batch_render::SchemaId, std::vector<unsigned int, std::allocator<unsigned int> >&, std::span<unsigned int const, 18446744073709551615ul>, chrono::batch_render::TableVersions&, chrono::batch_render::TableId, chrono::batch_render::TableId):
✓ Branch 0 taken 36 times.
✓ Branch 1 taken 509 times.
void chrono::batch_render::PublishRecords<chrono::batch_render::PointsRecord>(chrono::batch_render::RecordTable<chrono::batch_render::PointsRecord>&, chrono::batch_render::ColumnStore&, chrono::batch_render::SchemaId, std::vector<unsigned int, std::allocator<unsigned int> >&, std::span<unsigned int const, 18446744073709551615ul>, chrono::batch_render::TableVersions&, chrono::batch_render::TableId, chrono::batch_render::TableId):
✓ Branch 0 taken 101 times.
✓ Branch 1 taken 455 times.
|
1101 |
if (!updated.empty()) { |
| 82 |
|
137 |
versions.Record(moved, updated); |
| 83 |
|
|
} |
| 84 |
|
1101 |
relinked.clear(); |
| 85 |
|
1101 |
} |
| 86 |
|
|
|
| 87 |
|
|
} |
| 88 |
|
|
|