blob: 394223380dcf4e6093a3ecb1d7b8d760e21cf105 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
// Copyright 2008 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <array>
struct Statistics
{
int num_pixel_shaders_created;
int num_pixel_shaders_alive;
int num_vertex_shaders_created;
int num_vertex_shaders_alive;
int num_textures_created;
int num_textures_uploaded;
int num_textures_alive;
int num_vertex_loaders;
std::array<float, 6> proj;
std::array<float, 16> gproj;
std::array<float, 16> g2proj;
struct ThisFrame
{
int num_bp_loads;
int num_cp_loads;
int num_xf_loads;
int num_bp_loads_in_dl;
int num_cp_loads_in_dl;
int num_xf_loads_in_dl;
int num_prims;
int num_dl_prims;
int num_shader_changes;
int num_primitive_joins;
int num_draw_calls;
int num_dlists_called;
int bytes_vertex_streamed;
int bytes_index_streamed;
int bytes_uniform_streamed;
int num_triangles_clipped;
int num_triangles_in;
int num_triangles_rejected;
int num_triangles_culled;
int num_drawn_objects;
int rasterized_pixels;
int num_triangles_drawn;
int num_vertices_loaded;
int tev_pixels_in;
int tev_pixels_out;
int num_efb_peeks;
int num_efb_pokes;
};
ThisFrame this_frame;
void ResetFrame();
void SwapDL();
void Display() const;
void DisplayProj() const;
};
extern Statistics g_stats;
#define STATISTICS
#ifdef STATISTICS
#define INCSTAT(a) (a)++;
#define ADDSTAT(a, b) (a) += (b);
#define SETSTAT(a, x) (a) = (int)(x);
#else
#define INCSTAT(a) ;
#define ADDSTAT(a, b) ;
#define SETSTAT(a, x) ;
#endif
|