chrono_batch_render/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
53 / 59
89.8%
Branches:
48 / 68
70.6%
Functions:
6 / 6, 1 excl
100.0%

scene/tables/procedural.h
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