Cogs.Core
Statistics.h
1#pragma once
2
3#include <cstdint>
4
5namespace Cogs
6{
7
9 {
10 uint64_t vertices = 0; // Total count of vertices submitted.
11 uint64_t indices = 0; // Count of indexed vertices submitted.
12 uint32_t drawCallHistogram[32] = {}; // Histgram of draw call vertex sumbission size, first bucket is [0-2^1), second is [2^1-2^2) and so on.
13 };
14
16 {
17 size_t bufferMemoryConsumption = 0; // Estimate of GPU memory consumption of textures.
18 size_t textureMemoryConsumption = 0; // Estimate of GPU memory consumption of buffers.
19 uint32_t bufferCount = 0;
20 uint32_t vertexArrayObjectCount = 0;
21 uint32_t inputLayoutCount = 0;
22 uint32_t textureCount = 0;
23 uint32_t effectCount = 0;
24 uint32_t rendertargetsCount = 0;
25 uint32_t framebufferCount = 0;
26 uint32_t samplerStateCount = 0;
27 uint32_t blendStateCount = 0;
28 uint32_t rasterizerStateCount = 0;
29 uint32_t depthStencilStateCount = 0;
30
31 size_t memoryConsumption() const { return bufferMemoryConsumption + textureMemoryConsumption; }
32 };
33
35 {
36 size_t bufferUploadSize = 0;
37 size_t textureUploadSize = 0;
38
39 uint32_t bufferUploads = 0;
40 uint32_t textureUploads = 0;
41 };
42
44 // uint32_t instance;
45 // uint32_t surface;
46
47 // uint32_t command_encoder;
48 // uint32_t render_bundle_encoder;
49 // uint32_t query_set;
50 uint32_t shader_module;
51
52 uint32_t buffer;
53
54 uint32_t texture;
55 uint32_t texture_view;
56 uint32_t sampler;
57
58 uint32_t render_pipeline;
59 uint32_t compute_pipeline;
60 uint32_t pipeline_layout;
61
62 uint32_t bind_group;
63 uint32_t bind_group_layout;
64 };
65
66}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23