summaryrefslogtreecommitdiff
path: root/test/perf-instancing.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan.goodliffe@octal.co.uk>2025-04-28 09:37:00 +0100
committerDan Goodliffe <dan.goodliffe@octal.co.uk>2025-04-28 09:37:00 +0100
commit0adc6ba15c8a44b23bfe7477ea94a746536329d7 (patch)
treea40404a3ceee30a863d0cc96c3713c5fd5f9402c /test/perf-instancing.cpp
parentFix all warnings in enumeration details code/tests (diff)
downloadilt-0adc6ba15c8a44b23bfe7477ea94a746536329d7.tar.bz2
ilt-0adc6ba15c8a44b23bfe7477ea94a746536329d7.tar.xz
ilt-0adc6ba15c8a44b23bfe7477ea94a746536329d7.zip
Fix all warnings in performance tests
Diffstat (limited to 'test/perf-instancing.cpp')
-rw-r--r--test/perf-instancing.cpp59
1 files changed, 31 insertions, 28 deletions
diff --git a/test/perf-instancing.cpp b/test/perf-instancing.cpp
index 3638111..a56d60e 100644
--- a/test/perf-instancing.cpp
+++ b/test/perf-instancing.cpp
@@ -3,38 +3,41 @@
#include <benchmark/benchmark.h>
#include <random>
-struct Instance {
- GlobalPosition3D pos;
- glm::mat3 rot;
-};
+namespace {
+ struct Instance {
+ GlobalPosition3D pos;
+ glm::mat3 rot;
+ };
-struct data {
- explicit data(size_t n)
- {
- std::mt19937 gen(std::random_device {}());
- std::uniform_int_distribution<GlobalDistance> xy(0, 1000000);
- std::uniform_int_distribution<GlobalDistance> z(0, 10000);
- while (n--) {
- proxies.emplace_back(instances.acquire(GlobalPosition3D {xy(gen), xy(gen), z(gen)}, glm::mat3 {}));
+ struct Data {
+ explicit Data(size_t n)
+ {
+ std::mt19937 gen(std::random_device {}());
+ std::uniform_int_distribution<GlobalDistance> xyDistrib(0, 1000000);
+ std::uniform_int_distribution<GlobalDistance> zDistrib(0, 10000);
+ while (n--) {
+ proxies.emplace_back(instances.acquire(
+ GlobalPosition3D {xyDistrib(gen), xyDistrib(gen), zDistrib(gen)}, glm::mat3 {}));
+ }
}
- }
- InstanceVertices<Instance> instances;
- std::vector<InstanceVertices<Instance>::InstanceProxy> proxies;
-};
+ InstanceVertices<Instance> instances;
+ std::vector<InstanceVertices<Instance>::InstanceProxy> proxies;
+ };
-static void
-partition(benchmark::State & state)
-{
- TestMainWindowAppBase window;
- data d(static_cast<size_t>(state.range()));
- GlobalPosition2D pos {};
- for (auto _ : state) {
- d.instances.partition([&pos](const auto & i) {
- return std::abs(i.pos.x - pos.x) < 5 && std::abs(i.pos.y - pos.y) < 5;
- });
- pos += GlobalPosition2D {33, 17};
- pos %= 1000000;
+ void
+ partition(benchmark::State & state)
+ {
+ TestMainWindowAppBase window;
+ Data data(static_cast<size_t>(state.range()));
+ GlobalPosition2D pos {};
+ for (auto loop : state) {
+ data.instances.partition([&pos](const auto & instance) {
+ return std::abs(instance.pos.x - pos.x) < 5 && std::abs(instance.pos.y - pos.y) < 5;
+ });
+ pos += GlobalPosition2D {33, 17};
+ pos %= 1000000;
+ }
}
}