9#ifndef AVARA3D_PROFILE_FRAMESTATS_H
10#define AVARA3D_PROFILE_FRAMESTATS_H
17 struct RenderMemoryStats {
21 std::uint64_t textureBytes {0};
22 std::uint64_t vertexBufferBytes {0};
23 std::uint64_t indexBufferBytes {0};
24 std::uint64_t uniformBufferBytes {0};
25 std::uint64_t renderTargetBytes {0};
26 std::uint64_t otherBytes {0};
28 std::uint64_t totalBytes()
const {
30 return textureBytes + vertexBufferBytes + indexBufferBytes + uniformBufferBytes
31 + renderTargetBytes + otherBytes;
37 std::uint64_t peakTotalBytes {0};
39 Usage totalUsage()
const {
42 .textureBytes = a3d.textureBytes + imgui.textureBytes,
43 .vertexBufferBytes = a3d.vertexBufferBytes + imgui.vertexBufferBytes,
44 .indexBufferBytes = a3d.indexBufferBytes + imgui.indexBufferBytes,
45 .uniformBufferBytes = a3d.uniformBufferBytes + imgui.uniformBufferBytes,
46 .renderTargetBytes = a3d.renderTargetBytes + imgui.renderTargetBytes,
47 .otherBytes = a3d.otherBytes + imgui.otherBytes,
51 std::uint64_t totalBytes()
const {
53 return a3d.totalBytes() + imgui.totalBytes();
59 std::chrono::nanoseconds frameTime {};
60 std::chrono::nanoseconds engineCpuTime {};
61 std::chrono::nanoseconds renderCpuTime {};
62 std::chrono::nanoseconds renderGpuTime {};
63 std::chrono::nanoseconds physicsTime {};
64 std::chrono::nanoseconds applicationTime {};
66 RenderMemoryStats renderMemory {};
69 double simulationTimeStep {0.0};
70 std::uint32_t maxCatchUpSteps {0};
73 std::uint64_t simulationStepCount {0};
74 double simulationTime {0.0};
77 std::uint32_t simulationStepsThisUpdate {0};
80 double discardedSimulationTime {0.0};
81 double totalDiscardedSimulationTime {0.0};
83 std::uint32_t nodes {0};
84 std::uint32_t meshes {0};
85 std::uint32_t elements {0};
86 std::uint32_t polygons {0};
87 std::uint32_t lights {0};
89 std::uint32_t staticBodies {0};
90 std::uint32_t dynamicBodies {0};
91 std::uint32_t kinematicBodies {0};
93 std::uint32_t primitiveShapes {0};
94 std::uint32_t boundingBoxShapes {0};
95 std::uint32_t convexHullShapes {0};
96 std::uint32_t concavePolyhedronShapes {0};
98 std::uint32_t activeContacts {0};