📄 metrics.h
字号:
/**************************************************************************
* Name : metrics.h
* Created : 22/09/2004
*
* Copyright : 2004 by Imagination Technologies Limited. All rights reserved.
* : No part of this software, either material or conceptual
* : may be copied or distributed, transmitted, transcribed,
* : stored in a retrieval system or translated into any
* : human or computer language in any form by any means,
* : electronic, mechanical, manual or other-wise, or
* : disclosed to third parties without the express written
* : permission of Imagination Technologies Limited, Unit 8, HomePark
* : Industrial Estate, King's Langley, Hertfordshire,
* : WD4 8LZ, U.K.
*
* Platform : ANSI
*
* $Log: metrics.h $
**************************************************************************/
#ifndef _METRICS_
#define _METRICS_
#if defined (__cplusplus)
extern "C" {
#endif
#if defined(DEBUG) || defined(TIMING)
typedef struct
{
IMG_UINT32 ui32Start;
IMG_UINT32 ui32Stop;
IMG_UINT32 ui32Total;
IMG_UINT32 ui32Count;
} Temporal_Data;
extern Temporal_Data asTimers[];
extern IMG_UINT32 PVRSRVTimeNow(IMG_VOID);
extern IMG_VOID PVRSRVSetupMetricTimers(PPVRSRV_DEV_INFO psDevInfo);
extern IMG_VOID PVRSRVOutputMetricTotals(IMG_VOID);
#define PVRSRV_TIMER_DUMMY 0
#define PVRSRV_TIMER_EXAMPLE_1 1
#define PVRSRV_TIMER_EXAMPLE_2 2
#define PVRSRV_NUM_TIMERS (PVRSRV_TIMER_EXAMPLE_2 + 1)
#define PVRSRV_TIME_START(X) { \
asTimers[X].ui32Count += 1; \
asTimers[X].ui32Count |= 0x80000000L; \
asTimers[X].ui32Start = PVRSRVTimeNow(); \
asTimers[X].ui32Stop = 0; \
}
#define PVRSRV_TIME_SUSPEND(X) { \
asTimers[X].ui32Stop += PVRSRVTimeNow() - asTimers[X].ui32Start; \
}
#define PVRSRV_TIME_RESUME(X) { \
asTimers[X].ui32Start = PVRSRVTimeNow(); \
}
#define PVRSRV_TIME_STOP(X) { \
asTimers[X].ui32Stop += PVRSRVTimeNow() - asTimers[X].ui32Start; \
asTimers[X].ui32Total += asTimers[X].ui32Stop; \
asTimers[X].ui32Count &= 0x7FFFFFFFL; \
}
#define PVRSRV_TIME_RESET(X) { \
asTimers[X].ui32Start = 0; \
asTimers[X].ui32Stop = 0; \
asTimers[X].ui32Total = 0; \
asTimers[X].ui32Count = 0; \
}
#else /* DLL_METRIC */
#define PVRSRV_TIME_START(X)
#define PVRSRV_TIME_SUSPEND(X)
#define PVRSRV_TIME_RESUME(X)
#define PVRSRV_TIME_STOP(X)
#define PVRSRV_TIME_RESET(X)
#define PVRSRVSetupMetricTimers(X)
#define PVRSRVOutputMetricTotals()
#endif /* defined(DEBUG) || defined(TIMING) */
#if defined(__cplusplus)
}
#endif
#endif /* _METRICS_ */
/**************************************************************************
End of file (metrics.h)
**************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -