RetroArch
Macros
Performance counter 0 metric

Macros

#define GX_PERF0_VERTICES   0
 
#define GX_PERF0_CLIP_VTX   1
 
#define GX_PERF0_CLIP_CLKS   2
 
#define GX_PERF0_XF_WAIT_IN   3
 
#define GX_PERF0_XF_WAIT_OUT   4
 
#define GX_PERF0_XF_XFRM_CLKS   5
 
#define GX_PERF0_XF_LIT_CLKS   6
 
#define GX_PERF0_XF_BOT_CLKS   7
 
#define GX_PERF0_XF_REGLD_CLKS   8
 
#define GX_PERF0_XF_REGRD_CLKS   9
 
#define GX_PERF0_CLIP_RATIO   10
 
#define GX_PERF0_TRIANGLES   11
 
#define GX_PERF0_TRIANGLES_CULLED   12
 
#define GX_PERF0_TRIANGLES_PASSED   13
 
#define GX_PERF0_TRIANGLES_SCISSORED   14
 
#define GX_PERF0_TRIANGLES_0TEX   15
 
#define GX_PERF0_TRIANGLES_1TEX   16
 
#define GX_PERF0_TRIANGLES_2TEX   17
 
#define GX_PERF0_TRIANGLES_3TEX   18
 
#define GX_PERF0_TRIANGLES_4TEX   19
 
#define GX_PERF0_TRIANGLES_5TEX   20
 
#define GX_PERF0_TRIANGLES_6TEX   21
 
#define GX_PERF0_TRIANGLES_7TEX   22
 
#define GX_PERF0_TRIANGLES_8TEX   23
 
#define GX_PERF0_TRIANGLES_0CLR   24
 
#define GX_PERF0_TRIANGLES_1CLR   25
 
#define GX_PERF0_TRIANGLES_2CLR   26
 
#define GX_PERF0_QUAD_0CVG   27
 
#define GX_PERF0_QUAD_NON0CVG   28
 
#define GX_PERF0_QUAD_1CVG   29
 
#define GX_PERF0_QUAD_2CVG   30
 
#define GX_PERF0_QUAD_3CVG   31
 
#define GX_PERF0_QUAD_4CVG   32
 
#define GX_PERF0_AVG_QUAD_CNT   33
 
#define GX_PERF0_CLOCKS   34
 
#define GX_PERF0_NONE   35
 

Detailed Description

Performance counter 0 is used to measure attributes dealing with geometry and primitives, such as triangle counts and clipping ratios.

Note
GX_PERF0_XF_* measure how many GP cycles are spent in each stage of the XF.

The triangle metrics (GX_PERF0_TRIANGLES_*) allow counting triangles under specific conditions or with specific attributes.

GX_PERF0_TRIANGLES_*TEX count triangles based on the number of texture coordinates supplied; GX_PERF0_TRIANGLES_*CLR count triangles based on the number of colors supplied.

The quad metrics allow you to count the number of quads (2x2 pixels) the GP processes. The term coverage is used to indicate how many pixels in the quad are actually part of the triangle being rasterized. For example, a coverage of 4 means all pixels in the quad intersect the triangle. A coverage of 1 indicates that only 1 pixel in the quad intersected the triangle.

Macro Definition Documentation

◆ GX_PERF0_AVG_QUAD_CNT

#define GX_PERF0_AVG_QUAD_CNT   33

Average quad count; average based on what is unknown

◆ GX_PERF0_CLIP_CLKS

#define GX_PERF0_CLIP_CLKS   2

Number of GP clocks spent clipping.

◆ GX_PERF0_CLIP_RATIO

#define GX_PERF0_CLIP_RATIO   10

◆ GX_PERF0_CLIP_VTX

#define GX_PERF0_CLIP_VTX   1

Number of vertices that were clipped by the GP.

◆ GX_PERF0_CLOCKS

#define GX_PERF0_CLOCKS   34

Number of GP clocks that have elapsed since the previous call to GX_ReadGP0Metric().

◆ GX_PERF0_NONE

#define GX_PERF0_NONE   35

Disables performance measurement for perf0 and resets the counter.

◆ GX_PERF0_QUAD_0CVG

#define GX_PERF0_QUAD_0CVG   27

Number of quads having zero coverage.

◆ GX_PERF0_QUAD_1CVG

#define GX_PERF0_QUAD_1CVG   29

Number of quads with 1 pixel coverage.

◆ GX_PERF0_QUAD_2CVG

#define GX_PERF0_QUAD_2CVG   30

Number of quads with 2 pixel coverage.

◆ GX_PERF0_QUAD_3CVG

#define GX_PERF0_QUAD_3CVG   31

Number of quads with 3 pixel coverage.

◆ GX_PERF0_QUAD_4CVG

#define GX_PERF0_QUAD_4CVG   32

Number of quads with 4 pixel coverage.

◆ GX_PERF0_QUAD_NON0CVG

#define GX_PERF0_QUAD_NON0CVG   28

Number of quads having coverage greater than zero.

◆ GX_PERF0_TRIANGLES

#define GX_PERF0_TRIANGLES   11

Number of triangles.

◆ GX_PERF0_TRIANGLES_0CLR

#define GX_PERF0_TRIANGLES_0CLR   24

◆ GX_PERF0_TRIANGLES_0TEX

#define GX_PERF0_TRIANGLES_0TEX   15

◆ GX_PERF0_TRIANGLES_1CLR

#define GX_PERF0_TRIANGLES_1CLR   25

◆ GX_PERF0_TRIANGLES_1TEX

#define GX_PERF0_TRIANGLES_1TEX   16

◆ GX_PERF0_TRIANGLES_2CLR

#define GX_PERF0_TRIANGLES_2CLR   26

◆ GX_PERF0_TRIANGLES_2TEX

#define GX_PERF0_TRIANGLES_2TEX   17

◆ GX_PERF0_TRIANGLES_3TEX

#define GX_PERF0_TRIANGLES_3TEX   18

◆ GX_PERF0_TRIANGLES_4TEX

#define GX_PERF0_TRIANGLES_4TEX   19

◆ GX_PERF0_TRIANGLES_5TEX

#define GX_PERF0_TRIANGLES_5TEX   20

◆ GX_PERF0_TRIANGLES_6TEX

#define GX_PERF0_TRIANGLES_6TEX   21

◆ GX_PERF0_TRIANGLES_7TEX

#define GX_PERF0_TRIANGLES_7TEX   22

◆ GX_PERF0_TRIANGLES_8TEX

#define GX_PERF0_TRIANGLES_8TEX   23

◆ GX_PERF0_TRIANGLES_CULLED

#define GX_PERF0_TRIANGLES_CULLED   12

Number of triangles that failed the front-face/back-face culling test.

◆ GX_PERF0_TRIANGLES_PASSED

#define GX_PERF0_TRIANGLES_PASSED   13

Number of triangles that passed the front-face/back-face culling test.

◆ GX_PERF0_TRIANGLES_SCISSORED

#define GX_PERF0_TRIANGLES_SCISSORED   14

Number of triangles that are scissored.

◆ GX_PERF0_VERTICES

#define GX_PERF0_VERTICES   0

Number of vertices processed by the GP.

◆ GX_PERF0_XF_BOT_CLKS

#define GX_PERF0_XF_BOT_CLKS   7

Number of cycles the bottom of the pipe (result combiner) is busy.

◆ GX_PERF0_XF_LIT_CLKS

#define GX_PERF0_XF_LIT_CLKS   6

Number of cycles the lighting engine is busy.

◆ GX_PERF0_XF_REGLD_CLKS

#define GX_PERF0_XF_REGLD_CLKS   8

Number of cycles are spent loading XF state registers.

◆ GX_PERF0_XF_REGRD_CLKS

#define GX_PERF0_XF_REGRD_CLKS   9

Number of cycles the XF reads the state registers.

◆ GX_PERF0_XF_WAIT_IN

#define GX_PERF0_XF_WAIT_IN   3

Number of cycles the XF is waiting on input. If the XF is waiting a large percentage of the total time, it may indicate that the CPU is not supplying data fast enough to keep the GP busy.

◆ GX_PERF0_XF_WAIT_OUT

#define GX_PERF0_XF_WAIT_OUT   4

Number of cycles the XF waits to send its output to the rest of the GP pipeline. If the XF cannot output, it may indicate that the GP is currently fill-rate limited.

◆ GX_PERF0_XF_XFRM_CLKS

#define GX_PERF0_XF_XFRM_CLKS   5

Number of cycles the transform engine is busy.