]> git.xonotic.org Git - xonotic/darkplaces.git/blob - r_stats.h
Update and micro-optimise memory allocation
[xonotic/darkplaces.git] / r_stats.h
1 #ifndef R_STATS_H
2 #define R_STATS_H
3
4 extern const char *r_stat_name[];
5
6 // NOTE: r_stat_name[] must match this indexing
7 typedef enum r_stat_e
8 {
9         r_stat_timedelta,
10         r_stat_quality,
11         r_stat_renders,
12         r_stat_entities,
13         r_stat_entities_surfaces,
14         r_stat_entities_triangles,
15         r_stat_world_leafs,
16         r_stat_world_portals,
17         r_stat_world_surfaces,
18         r_stat_world_triangles,
19         r_stat_lightmapupdates,
20         r_stat_lightmapupdatepixels,
21         r_stat_particles,
22         r_stat_drawndecals,
23         r_stat_totaldecals,
24         r_stat_draws,
25         r_stat_draws_vertices,
26         r_stat_draws_elements,
27         r_stat_lights,
28         r_stat_lights_clears,
29         r_stat_lights_scissored,
30         r_stat_lights_lighttriangles,
31         r_stat_lights_shadowtriangles,
32         r_stat_lights_dynamicshadowtriangles,
33         r_stat_bouncegrid_lights,
34         r_stat_bouncegrid_particles,
35         r_stat_bouncegrid_traces,
36         r_stat_bouncegrid_hits,
37         r_stat_bouncegrid_splats,
38         r_stat_bouncegrid_bounces,
39         r_stat_photoncache_animated,
40         r_stat_photoncache_cached,
41         r_stat_photoncache_traced,
42         r_stat_bloom,
43         r_stat_bloom_copypixels,
44         r_stat_bloom_drawpixels,
45         r_stat_rendertargets_used,
46         r_stat_rendertargets_pixels,
47         r_stat_indexbufferuploadcount,
48         r_stat_indexbufferuploadsize,
49         r_stat_vertexbufferuploadcount,
50         r_stat_vertexbufferuploadsize,
51         r_stat_framedatacurrent,
52         r_stat_framedatasize,
53         r_stat_bufferdatacurrent_vertex, // R_BUFFERDATA_ types are added to this index
54         r_stat_bufferdatacurrent_index16,
55         r_stat_bufferdatacurrent_index32,
56         r_stat_bufferdatacurrent_uniform,
57         r_stat_bufferdatasize_vertex, // R_BUFFERDATA_ types are added to this index
58         r_stat_bufferdatasize_index16,
59         r_stat_bufferdatasize_index32,
60         r_stat_bufferdatasize_uniform,
61         r_stat_animcache_skeletal_count,
62         r_stat_animcache_skeletal_bones,
63         r_stat_animcache_skeletal_maxbones,
64         r_stat_animcache_shade_count,
65         r_stat_animcache_shade_vertices,
66         r_stat_animcache_shade_maxvertices,
67         r_stat_animcache_shape_count,
68         r_stat_animcache_shape_vertices,
69         r_stat_animcache_shape_maxvertices,
70         r_stat_batch_batches,
71         r_stat_batch_withgaps,
72         r_stat_batch_surfaces,
73         r_stat_batch_vertices,
74         r_stat_batch_triangles,
75         r_stat_batch_fast_batches,
76         r_stat_batch_fast_surfaces,
77         r_stat_batch_fast_vertices,
78         r_stat_batch_fast_triangles,
79         r_stat_batch_copytriangles_batches,
80         r_stat_batch_copytriangles_surfaces,
81         r_stat_batch_copytriangles_vertices,
82         r_stat_batch_copytriangles_triangles,
83         r_stat_batch_dynamic_batches,
84         r_stat_batch_dynamic_surfaces,
85         r_stat_batch_dynamic_vertices,
86         r_stat_batch_dynamic_triangles,
87         r_stat_batch_dynamicskeletal_batches,
88         r_stat_batch_dynamicskeletal_surfaces,
89         r_stat_batch_dynamicskeletal_vertices,
90         r_stat_batch_dynamicskeletal_triangles,
91         r_stat_batch_dynamic_batches_because_cvar,
92         r_stat_batch_dynamic_surfaces_because_cvar,
93         r_stat_batch_dynamic_vertices_because_cvar,
94         r_stat_batch_dynamic_triangles_because_cvar,
95         r_stat_batch_dynamic_batches_because_lightmapvertex,
96         r_stat_batch_dynamic_surfaces_because_lightmapvertex,
97         r_stat_batch_dynamic_vertices_because_lightmapvertex,
98         r_stat_batch_dynamic_triangles_because_lightmapvertex,
99         r_stat_batch_dynamic_batches_because_deformvertexes_autosprite,
100         r_stat_batch_dynamic_surfaces_because_deformvertexes_autosprite,
101         r_stat_batch_dynamic_vertices_because_deformvertexes_autosprite,
102         r_stat_batch_dynamic_triangles_because_deformvertexes_autosprite,
103         r_stat_batch_dynamic_batches_because_deformvertexes_autosprite2,
104         r_stat_batch_dynamic_surfaces_because_deformvertexes_autosprite2,
105         r_stat_batch_dynamic_vertices_because_deformvertexes_autosprite2,
106         r_stat_batch_dynamic_triangles_because_deformvertexes_autosprite2,
107         r_stat_batch_dynamic_batches_because_deformvertexes_normal,
108         r_stat_batch_dynamic_surfaces_because_deformvertexes_normal,
109         r_stat_batch_dynamic_vertices_because_deformvertexes_normal,
110         r_stat_batch_dynamic_triangles_because_deformvertexes_normal,
111         r_stat_batch_dynamic_batches_because_deformvertexes_wave,
112         r_stat_batch_dynamic_surfaces_because_deformvertexes_wave,
113         r_stat_batch_dynamic_vertices_because_deformvertexes_wave,
114         r_stat_batch_dynamic_triangles_because_deformvertexes_wave,
115         r_stat_batch_dynamic_batches_because_deformvertexes_bulge,
116         r_stat_batch_dynamic_surfaces_because_deformvertexes_bulge,
117         r_stat_batch_dynamic_vertices_because_deformvertexes_bulge,
118         r_stat_batch_dynamic_triangles_because_deformvertexes_bulge,
119         r_stat_batch_dynamic_batches_because_deformvertexes_move,
120         r_stat_batch_dynamic_surfaces_because_deformvertexes_move,
121         r_stat_batch_dynamic_vertices_because_deformvertexes_move,
122         r_stat_batch_dynamic_triangles_because_deformvertexes_move,
123         r_stat_batch_dynamic_batches_because_tcgen_lightmap,
124         r_stat_batch_dynamic_surfaces_because_tcgen_lightmap,
125         r_stat_batch_dynamic_vertices_because_tcgen_lightmap,
126         r_stat_batch_dynamic_triangles_because_tcgen_lightmap,
127         r_stat_batch_dynamic_batches_because_tcgen_vector,
128         r_stat_batch_dynamic_surfaces_because_tcgen_vector,
129         r_stat_batch_dynamic_vertices_because_tcgen_vector,
130         r_stat_batch_dynamic_triangles_because_tcgen_vector,
131         r_stat_batch_dynamic_batches_because_tcgen_environment,
132         r_stat_batch_dynamic_surfaces_because_tcgen_environment,
133         r_stat_batch_dynamic_vertices_because_tcgen_environment,
134         r_stat_batch_dynamic_triangles_because_tcgen_environment,
135         r_stat_batch_dynamic_batches_because_tcmod_turbulent,
136         r_stat_batch_dynamic_surfaces_because_tcmod_turbulent,
137         r_stat_batch_dynamic_vertices_because_tcmod_turbulent,
138         r_stat_batch_dynamic_triangles_because_tcmod_turbulent,
139         r_stat_batch_dynamic_batches_because_nogaps,
140         r_stat_batch_dynamic_surfaces_because_nogaps,
141         r_stat_batch_dynamic_vertices_because_nogaps,
142         r_stat_batch_dynamic_triangles_because_nogaps,
143         r_stat_batch_dynamic_batches_because_derived,
144         r_stat_batch_dynamic_surfaces_because_derived,
145         r_stat_batch_dynamic_vertices_because_derived,
146         r_stat_batch_dynamic_triangles_because_derived,
147         r_stat_batch_entitycache_count,
148         r_stat_batch_entitycache_surfaces,
149         r_stat_batch_entitycache_vertices,
150         r_stat_batch_entitycache_triangles,
151         r_stat_batch_entityanimate_count,
152         r_stat_batch_entityanimate_surfaces,
153         r_stat_batch_entityanimate_vertices,
154         r_stat_batch_entityanimate_triangles,
155         r_stat_batch_entityskeletal_count,
156         r_stat_batch_entityskeletal_surfaces,
157         r_stat_batch_entityskeletal_vertices,
158         r_stat_batch_entityskeletal_triangles,
159         r_stat_batch_entitystatic_count,
160         r_stat_batch_entitystatic_surfaces,
161         r_stat_batch_entitystatic_vertices,
162         r_stat_batch_entitystatic_triangles,
163         r_stat_batch_entitycustom_count,
164         r_stat_batch_entitycustom_surfaces,
165         r_stat_batch_entitycustom_vertices,
166         r_stat_batch_entitycustom_triangles,
167         r_stat_count // size of array
168 }
169 r_stat_t;
170
171 extern cvar_t r_speeds_graph;
172 extern cvar_t r_speeds_graph_filter[8];
173 extern cvar_t r_speeds_graph_length;
174 extern cvar_t r_speeds_graph_seconds;
175 extern cvar_t r_speeds_graph_x;
176 extern cvar_t r_speeds_graph_y;
177 extern cvar_t r_speeds_graph_width;
178 extern cvar_t r_speeds_graph_height;
179 extern cvar_t r_speeds_graph_maxtimedelta;
180 extern cvar_t r_speeds_graph_maxdefault;
181
182 void R_TimeReport(const char *name);
183 void R_TimeReport_BeginFrame(void);
184 void R_TimeReport_EndFrame(void);
185
186 #endif