74 lines
2.4 KiB
C
74 lines
2.4 KiB
C
/****************************************************************************
|
|
*
|
|
* Copyright (c) 2005 - 2023 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)
|
|
|
|
/* HAL statistics information. */
|
|
typedef struct _gcsSTATISTICS_EARLYZ {
|
|
gctUINT switchBackCount;
|
|
gctUINT nextCheckPoint;
|
|
gctBOOL disabled;
|
|
} gcsSTATISTICS_EARLYZ;
|
|
|
|
/* HAL statistics information. */
|
|
typedef struct _gcsSTATISTICS {
|
|
gctUINT64 frameTime[VIV_STAT_FRAME_BUFFER_SIZE];
|
|
gctUINT64 previousFrameTime;
|
|
gctUINT frame;
|
|
gcsSTATISTICS_EARLYZ earlyZ;
|
|
} 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 dynamic HZ is disabled or not .*/
|
|
void
|
|
gcfSTATISTICS_DisableDynamicEarlyZ(IN gctBOOL Disabled);
|
|
|
|
#endif /*__gc_hal_statistics_h_ */
|
|
|
|
|