blob: f6f531cb23afeb2836eb6a372bb1197888acc561 (
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/****************************************************************************
*
* Copyright (c) 2005 - 2012 by Vivante Corp. All rights reserved.
*
* The material in this file is confidential and contains trade secrets
* of Vivante Corporation. This is proprietary information owned by
* Vivante Corporation. No part of this work may be disclosed,
* reproduced, copied, transmitted, or used in any way for any purpose,
* without the express written permission of Vivante Corporation.
*
*****************************************************************************/
#ifndef __gc_hal_statistics_h_
#define __gc_hal_statistics_h_
#define VIV_STAT_ENABLE_STATISTICS 0
/* Toal number of frames for which the frame time is accounted. We have storage
to keep frame times for last this many frames.
*/
#define VIV_STAT_FRAME_BUFFER_SIZE 30
/*
Total number of frames sampled for a mode. This means
# of frames for HZ Current : VIV_STAT_EARLY_Z_SAMPLE_FRAMES
# of frames for HZ Switched : VIV_STAT_EARLY_Z_SAMPLE_FRAMES
+
--------------------------------------------------------
: (2 * VIV_STAT_EARLY_Z_SAMPLE_FRAMES) frames needed
IMPORTANT: This total must be smaller than VIV_STAT_FRAME_BUFFER_SIZE
*/
#define VIV_STAT_EARLY_Z_SAMPLE_FRAMES 7
#define VIV_STAT_EARLY_Z_LATENCY_FRAMES 2
/* Multiplication factor for previous Hz off mode. Make it more than 1.0 to advertise HZ on.*/
#define VIV_STAT_EARLY_Z_FACTOR (1.05f)
/* Defines the statistical data keys monitored by the statistics module */
typedef enum _gceSTATISTICS
{
gcvFRAME_FPS = 1,
}
gceSTATISTICS;
/* HAL statistics information. */
typedef struct _gcsSTATISTICS_EARLYZ
{
gctUINT switchBackCount;
gctUINT nextCheckPoint;
gctBOOL disabled;
}
gcsSTATISTICS_EARLYZ;
/* Defines the statistical data keys monitored by the statistics module */
typedef enum _gceSTATISTICS_Call
{
gcvSTAT_ES11_GLDRAWELEMENTS = 1,
}
gceSTATISTICS_Call;
/* HAL statistics information. */
typedef struct _gcsSTATISTICS
{
gctUINT64 frameTime[VIV_STAT_FRAME_BUFFER_SIZE];
gctUINT64 previousFrameTime;
gctUINT frame;
gcsSTATISTICS_EARLYZ earlyZ;
gctUINT ES11_drawElementsCount;
gctBOOL applyRTestVAFix;
}
gcsSTATISTICS;
/* Add a frame based data into current statistics. */
void
gcfSTATISTICS_AddData(
IN gceSTATISTICS Key,
IN gctUINT Value
);
/* Marks the frame end and triggers statistical calculations and decisions.*/
void
gcfSTATISTICS_MarkFrameEnd (
void
);
/* Sets whether the dynmaic HZ is disabled or not .*/
void
gcfSTATISTICS_DisableDynamicEarlyZ (
IN gctBOOL Disabled
);
/* Checks whether or not glDrawArray function call will be discarded */
gctBOOL
gcfSTATISTICS_DiscardCall(
gceSTATISTICS_Call Function
);
#endif /*__gc_hal_statistics_h_ */
|