SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
perf.h
Go to the documentation of this file.
1
#ifndef _DOLPHIN_PERF_H_
2
#define _DOLPHIN_PERF_H_
3
4
#include <
dolphin/types.h
>
5
6
#ifdef __cplusplus
7
extern
"C"
{
8
#endif
9
10
typedef
u8
PERFId
;
11
12
typedef
enum
13
{
14
PERF_CPU_EVENT
,
15
PERF_CPU_GP_EVENT
,
16
PERF_GP_EVENT
,
17
}
PerfType
;
18
19
struct
Frame
{
20
// total size: 0x10
21
struct
PerfSample
*
samples
;
// offset 0x0, size 0x4
22
long
lastSample
;
// offset 0x4, size 0x4
23
unsigned
long
end
;
// offset 0x8, size 0x4
24
unsigned
long
cachemisscycles
;
// offset 0xC, size 0x4
25
};
26
27
struct
PerfEvent
{
28
// total size: 0x10
29
char
*
name
;
// offset 0x0, size 0x4
30
PerfType
type
;
// offset 0x4, size 0x4
31
long
currSample
;
// offset 0x8, size 0x4
32
struct
_GXColor
color
;
// offset 0xC, size 0x4
33
};
34
35
typedef
struct
PerfSample
{
36
/* 0x00 */
u8
id
;
37
/* 0x04 */
u32
cpuTimeStampStart
;
38
/* 0x08 */
u32
cpuTimeStampEnd
;
39
/* 0x0C */
u32
gpTimeStampStart
;
40
/* 0x10 */
u32
gpTimeStampEnd
;
41
/* 0x14 */
int
interrupted
;
42
/* 0x18 */
u32
origcpuStart
;
43
/* 0x1C */
u32
origgpStart
;
44
/* 0x20 */
u32
cacheMisses
[4];
45
/* 0x30 */
u32
instructions
[4];
46
/* 0x40 */
u32
cpReq
[2];
47
/* 0x48 */
u32
tcReq
[2];
48
/* 0x50 */
u32
cpuRdReq
[2];
49
/* 0x58 */
u32
cpuWrReq
[2];
50
/* 0x60 */
u32
dspReq
[2];
51
/* 0x68 */
u32
ioReq
[2];
52
/* 0x70 */
u32
viReq
[2];
53
/* 0x78 */
u32
peReq
[2];
54
/* 0x80 */
u32
rfReq
[2];
55
/* 0x88 */
u32
fiReq
[2];
56
/* 0x90 */
u32
xfWaitIn
[2];
57
/* 0x98 */
u32
xfWaitOut
[2];
58
/* 0xA0 */
u32
rasBusy
[2];
59
/* 0xA8 */
u32
rasClocks
[2];
60
}
PerfSample
;
61
62
typedef
void
*(*PERFAllocator)(
u32
size);
63
typedef
void (*
PERFDeallocator
)(
void
*block);
64
typedef
void (*
PERFDrawCallback
)(void);
65
66
extern
void (*
GameDrawInit
)();
// size: 0x4, address: 0x14
67
68
u32
PERFInit
(
u32
numSamples,
u32
numFramesHistory,
u32
numTypes,
69
PERFAllocator
allocator,
PERFDeallocator
deallocator,
PERFDrawCallback
initDraw);
70
void
PERFEventStart
(
PERFId
id
);
71
void
PERFEventEnd
(
PERFId
id
);
72
void
PERFSetEvent
(
PERFId
id
,
char
*name,
PerfType
type);
73
void
PERFStartFrame
(
void
);
74
void
PERFEndFrame
(
void
);
75
void
PERFStartAutoSampling
(
f32
msInterval);
76
void
PERFStopAutoSampling
(
void
);
77
78
void
PERFPreDraw
();
79
void
PERFDumpScreen
();
80
void
PERFPostDraw
();
81
void
PERFSetDrawBWBarKey
(
int
tf);
82
void
PERFSetDrawBWBar
(
int
tf);
83
void
PERFSetDrawCPUBar
(
int
tf);
84
void
PERFSetDrawXFBars
(
int
tf);
85
void
PERFSetDrawRASBar
(
int
tf);
86
void
PERFToggleDrawBWBarKey
();
87
void
PERFToggleDrawBWBar
();
88
void
PERFToggleDrawCPUBar
();
89
void
PERFToggleDrawXFBars
();
90
void
PERFToggleDrawRASBar
();
91
92
extern
struct
Frame
*
PERFFrames
;
// size: 0x4, address: 0x0
93
extern
unsigned
long
PERFCurrFrame
;
// size: 0x4, address: 0x0
94
extern
struct
PerfEvent
*
PERFEvents
;
// size: 0x4, address: 0x0
95
96
#ifdef __cplusplus
97
}
98
#endif
99
100
#endif
PERFEventStart
void PERFEventStart(PERFId id)
PERFId
u8 PERFId
Definition
perf.h:10
PERFStopAutoSampling
void PERFStopAutoSampling(void)
GameDrawInit
void(* GameDrawInit)()
PERFToggleDrawBWBarKey
void PERFToggleDrawBWBarKey()
PERFToggleDrawBWBar
void PERFToggleDrawBWBar()
PerfType
PerfType
Definition
perf.h:13
PERF_CPU_EVENT
@ PERF_CPU_EVENT
Definition
perf.h:14
PERF_CPU_GP_EVENT
@ PERF_CPU_GP_EVENT
Definition
perf.h:15
PERF_GP_EVENT
@ PERF_GP_EVENT
Definition
perf.h:16
PERFInit
u32 PERFInit(u32 numSamples, u32 numFramesHistory, u32 numTypes, PERFAllocator allocator, PERFDeallocator deallocator, PERFDrawCallback initDraw)
PERFToggleDrawXFBars
void PERFToggleDrawXFBars()
PERFStartAutoSampling
void PERFStartAutoSampling(f32 msInterval)
PERFToggleDrawCPUBar
void PERFToggleDrawCPUBar()
PERFDrawCallback
void(* PERFDrawCallback)(void)
Definition
perf.h:64
PERFFrames
struct Frame * PERFFrames
PERFSetDrawBWBarKey
void PERFSetDrawBWBarKey(int tf)
PERFDumpScreen
void PERFDumpScreen()
PERFCurrFrame
unsigned long PERFCurrFrame
PERFPostDraw
void PERFPostDraw()
PERFStartFrame
void PERFStartFrame(void)
PERFSetDrawXFBars
void PERFSetDrawXFBars(int tf)
PERFSetDrawBWBar
void PERFSetDrawBWBar(int tf)
PERFEvents
struct PerfEvent * PERFEvents
PERFToggleDrawRASBar
void PERFToggleDrawRASBar()
PERFPreDraw
void PERFPreDraw()
PERFSetDrawRASBar
void PERFSetDrawRASBar(int tf)
PERFAllocator
void *(* PERFAllocator)(u32 size)
Definition
perf.h:62
PERFEndFrame
void PERFEndFrame(void)
PERFEventEnd
void PERFEventEnd(PERFId id)
PERFSetEvent
void PERFSetEvent(PERFId id, char *name, PerfType type)
PERFSetDrawCPUBar
void PERFSetDrawCPUBar(int tf)
PERFDeallocator
void(* PERFDeallocator)(void *block)
Definition
perf.h:63
types.h
u32
unsigned long u32
Definition
types.h:9
f32
float f32
Definition
types.h:13
u8
unsigned char u8
Definition
types.h:5
Frame
Definition
perf.h:19
Frame::lastSample
long lastSample
Definition
perf.h:22
Frame::end
unsigned long end
Definition
perf.h:23
Frame::cachemisscycles
unsigned long cachemisscycles
Definition
perf.h:24
Frame::samples
struct PerfSample * samples
Definition
perf.h:21
PerfEvent
Definition
perf.h:27
PerfEvent::currSample
long currSample
Definition
perf.h:31
PerfEvent::color
struct _GXColor color
Definition
perf.h:32
PerfEvent::type
PerfType type
Definition
perf.h:30
PerfEvent::name
char * name
Definition
perf.h:29
PerfSample
Definition
perf.h:35
PerfSample::rasBusy
u32 rasBusy[2]
Definition
perf.h:58
PerfSample::tcReq
u32 tcReq[2]
Definition
perf.h:47
PerfSample::viReq
u32 viReq[2]
Definition
perf.h:52
PerfSample::xfWaitOut
u32 xfWaitOut[2]
Definition
perf.h:57
PerfSample::origgpStart
u32 origgpStart
Definition
perf.h:43
PerfSample::rasClocks
u32 rasClocks[2]
Definition
perf.h:59
PerfSample::cpuTimeStampStart
u32 cpuTimeStampStart
Definition
perf.h:37
PerfSample::rfReq
u32 rfReq[2]
Definition
perf.h:54
PerfSample::dspReq
u32 dspReq[2]
Definition
perf.h:50
PerfSample::cpuTimeStampEnd
u32 cpuTimeStampEnd
Definition
perf.h:38
PerfSample::xfWaitIn
u32 xfWaitIn[2]
Definition
perf.h:56
PerfSample::cpuRdReq
u32 cpuRdReq[2]
Definition
perf.h:48
PerfSample::peReq
u32 peReq[2]
Definition
perf.h:53
PerfSample::gpTimeStampEnd
u32 gpTimeStampEnd
Definition
perf.h:40
PerfSample::fiReq
u32 fiReq[2]
Definition
perf.h:55
PerfSample::gpTimeStampStart
u32 gpTimeStampStart
Definition
perf.h:39
PerfSample::cpuWrReq
u32 cpuWrReq[2]
Definition
perf.h:49
PerfSample::ioReq
u32 ioReq[2]
Definition
perf.h:51
PerfSample::id
u8 id
Definition
perf.h:36
PerfSample::instructions
u32 instructions[4]
Definition
perf.h:45
PerfSample::cpReq
u32 cpReq[2]
Definition
perf.h:46
PerfSample::interrupted
int interrupted
Definition
perf.h:41
PerfSample::cacheMisses
u32 cacheMisses[4]
Definition
perf.h:44
PerfSample::origcpuStart
u32 origcpuStart
Definition
perf.h:42
extern
dolphin
include
dolphin
perf.h
Generated by
1.17.0