/****************************************************************************
*
*    The MIT License (MIT)
*
*    Copyright (c) 2014 - 2018 Vivante Corporation
*
*    Permission is hereby granted, free of charge, to any person obtaining a
*    copy of this software and associated documentation files (the "Software"),
*    to deal in the Software without restriction, including without limitation
*    the rights to use, copy, modify, merge, publish, distribute, sublicense,
*    and/or sell copies of the Software, and to permit persons to whom the
*    Software is furnished to do so, subject to the following conditions:
*
*    The above copyright notice and this permission notice shall be included in
*    all copies or substantial portions of the Software.
*
*    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
*    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
*    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
*    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
*    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
*    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
*    DEALINGS IN THE SOFTWARE.
*
*****************************************************************************
*
*    The GPL License (GPL)
*
*    Copyright (C) 2014 - 2018 Vivante Corporation
*
*    This program is free software; you can redistribute it and/or
*    modify it under the terms of the GNU General Public License
*    as published by the Free Software Foundation; either version 2
*    of the License, or (at your option) any later version.
*
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with this program; if not, write to the Free Software Foundation,
*    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*****************************************************************************
*
*    Note: This software is released under dual MIT and GPL licenses. A
*    recipient may use this file under the terms of either the MIT license or
*    GPL License. If you wish to use only one license not the other, you can
*    indicate your decision by deleting one of the above license notices in your
*    version of this file.
*
*****************************************************************************/


#ifndef __gc_hal_profiler_h_
#define __gc_hal_profiler_h_

#ifdef __cplusplus
extern "C" {
#endif

#define GLVERTEX_OBJECT 10
#define GLVERTEX_OBJECT_BYTES 11

#define GLINDEX_OBJECT 20
#define GLINDEX_OBJECT_BYTES 21

#define GLTEXTURE_OBJECT 30
#define GLTEXTURE_OBJECT_BYTES 31

#define GLBUFOBJ_OBJECT 40
#define GLBUFOBJ_OBJECT_BYTES 41

#define    ES11_CALLS              151
#define    ES11_DRAWCALLS          (ES11_CALLS             + 1)
#define    ES11_STATECHANGECALLS   (ES11_DRAWCALLS         + 1)
#define    ES11_POINTCOUNT         (ES11_STATECHANGECALLS  + 1)
#define    ES11_LINECOUNT          (ES11_POINTCOUNT        + 1)
#define    ES11_TRIANGLECOUNT      (ES11_LINECOUNT         + 1)

#define    ES30_CALLS              159
#define    ES30_DRAWCALLS          (ES30_CALLS             + 1)
#define    ES30_STATECHANGECALLS   (ES30_DRAWCALLS         + 1)
#define    ES30_POINTCOUNT         (ES30_STATECHANGECALLS  + 1)
#define    ES30_LINECOUNT          (ES30_POINTCOUNT        + 1)
#define    ES30_TRIANGLECOUNT      (ES30_LINECOUNT         + 1)

#define    VG11_CALLS              88
#define    VG11_DRAWCALLS          (VG11_CALLS              + 1)
#define    VG11_STATECHANGECALLS   (VG11_DRAWCALLS          + 1)
#define    VG11_FILLCOUNT          (VG11_STATECHANGECALLS   + 1)
#define    VG11_STROKECOUNT        (VG11_FILLCOUNT          + 1)
/* End of Driver API ID Definitions. */

/* HAL & MISC IDs. */
#define HAL_VERTBUFNEWBYTEALLOC    1
#define HAL_VERTBUFTOTALBYTEALLOC  (HAL_VERTBUFNEWBYTEALLOC     + 1)
#define HAL_VERTBUFNEWOBJALLOC     (HAL_VERTBUFTOTALBYTEALLOC   + 1)
#define HAL_VERTBUFTOTALOBJALLOC   (HAL_VERTBUFNEWOBJALLOC      + 1)
#define HAL_INDBUFNEWBYTEALLOC     (HAL_VERTBUFTOTALOBJALLOC    + 1)
#define HAL_INDBUFTOTALBYTEALLOC   (HAL_INDBUFNEWBYTEALLOC      + 1)
#define HAL_INDBUFNEWOBJALLOC      (HAL_INDBUFTOTALBYTEALLOC    + 1)
#define HAL_INDBUFTOTALOBJALLOC    (HAL_INDBUFNEWOBJALLOC       + 1)
#define HAL_TEXBUFNEWBYTEALLOC     (HAL_INDBUFTOTALOBJALLOC     + 1)
#define HAL_TEXBUFTOTALBYTEALLOC   (HAL_TEXBUFNEWBYTEALLOC      + 1)
#define HAL_TEXBUFNEWOBJALLOC      (HAL_TEXBUFTOTALBYTEALLOC    + 1)
#define HAL_TEXBUFTOTALOBJALLOC    (HAL_TEXBUFNEWOBJALLOC       + 1)

#define GPU_CYCLES           1
#define GPU_READ64BYTE       (GPU_CYCLES         + 1)
#define GPU_WRITE64BYTE      (GPU_READ64BYTE     + 1)
#define GPU_TOTALCYCLES      (GPU_WRITE64BYTE    + 1)
#define GPU_IDLECYCLES       (GPU_TOTALCYCLES    + 1)

#define VS_INSTCOUNT          1
#define VS_BRANCHINSTCOUNT    (VS_INSTCOUNT          + 1)
#define VS_TEXLDINSTCOUNT     (VS_BRANCHINSTCOUNT    + 1)
#define VS_RENDEREDVERTCOUNT  (VS_TEXLDINSTCOUNT     + 1)
#define VS_SOURCE             (VS_RENDEREDVERTCOUNT  + 1)
#define VS_NONIDLESTARVECOUNT (VS_SOURCE             + 1)
#define VS_STARVELCOUNT       (VS_NONIDLESTARVECOUNT + 1)
#define VS_STALLCOUNT         (VS_STARVELCOUNT       + 1)
#define VS_PROCESSCOUNT       (VS_STALLCOUNT         + 1)

#define PS_INSTCOUNT          1
#define PS_BRANCHINSTCOUNT    (PS_INSTCOUNT          + 1)
#define PS_TEXLDINSTCOUNT     (PS_BRANCHINSTCOUNT    + 1)
#define PS_RENDEREDPIXCOUNT   (PS_TEXLDINSTCOUNT     + 1)
#define PS_SOURCE             (PS_RENDEREDPIXCOUNT   + 1)
#define PS_NONIDLESTARVECOUNT (PS_SOURCE             + 1)
#define PS_STARVELCOUNT       (PS_NONIDLESTARVECOUNT + 1)
#define PS_STALLCOUNT         (PS_STARVELCOUNT       + 1)
#define PS_PROCESSCOUNT       (PS_STALLCOUNT         + 1)
#define PS_SHADERCYCLECOUNT   (PS_PROCESSCOUNT       + 1)

#define PA_INVERTCOUNT        1
#define PA_INPRIMCOUNT        (PA_INVERTCOUNT      + 1)
#define PA_OUTPRIMCOUNT       (PA_INPRIMCOUNT      + 1)
#define PA_DEPTHCLIPCOUNT     (PA_OUTPRIMCOUNT     + 1)
#define PA_TRIVIALREJCOUNT    (PA_DEPTHCLIPCOUNT   + 1)
#define PA_CULLCOUNT          (PA_TRIVIALREJCOUNT  + 1)
#define PA_NONIDLESTARVECOUNT (PA_CULLCOUNT        + 1)
#define PA_STARVELCOUNT       (PA_NONIDLESTARVECOUNT + 1)
#define PA_STALLCOUNT         (PA_STARVELCOUNT     + 1)
#define PA_PROCESSCOUNT       (PA_STALLCOUNT       + 1)

#define SE_TRIANGLECOUNT        1
#define SE_LINECOUNT            (SE_TRIANGLECOUNT        + 1)
#define SE_STARVECOUNT          (SE_LINECOUNT            + 1)
#define SE_STALLCOUNT           (SE_STARVECOUNT          + 1)
#define SE_RECEIVETRIANGLECOUNT (SE_STALLCOUNT           + 1)
#define SE_SENDTRIANGLECOUNT    (SE_RECEIVETRIANGLECOUNT + 1)
#define SE_RECEIVELINESCOUNT    (SE_SENDTRIANGLECOUNT    + 1)
#define SE_SENDLINESCOUNT       (SE_RECEIVELINESCOUNT    + 1)
#define SE_NONIDLESTARVECOUNT   (SE_SENDLINESCOUNT       + 1)
#define SE_PROCESSCOUNT         (SE_NONIDLESTARVECOUNT   + 1)

#define RA_VALIDPIXCOUNT      1
#define RA_TOTALQUADCOUNT     (RA_VALIDPIXCOUNT      + 1)
#define RA_VALIDQUADCOUNTEZ   (RA_TOTALQUADCOUNT     + 1)
#define RA_TOTALPRIMCOUNT     (RA_VALIDQUADCOUNTEZ   + 1)
#define RA_PIPECACHEMISSCOUNT (RA_TOTALPRIMCOUNT     + 1)
#define RA_PREFCACHEMISSCOUNT (RA_PIPECACHEMISSCOUNT + 1)
#define RA_EEZCULLCOUNT       (RA_PREFCACHEMISSCOUNT + 1)
#define RA_NONIDLESTARVECOUNT (RA_EEZCULLCOUNT       + 1)
#define RA_STARVELCOUNT       (RA_NONIDLESTARVECOUNT + 1)
#define RA_STALLCOUNT         (RA_STARVELCOUNT       + 1)
#define RA_PROCESSCOUNT       (RA_STALLCOUNT         + 1)

#define TX_TOTBILINEARREQ     1
#define TX_TOTTRILINEARREQ    (TX_TOTBILINEARREQ      + 1)
#define TX_TOTDISCARDTEXREQ   (TX_TOTTRILINEARREQ     + 1)
#define TX_TOTTEXREQ          (TX_TOTDISCARDTEXREQ    + 1)
#define TX_MEMREADCOUNT       (TX_TOTTEXREQ           + 1)
#define TX_MEMREADIN8BCOUNT   (TX_MEMREADCOUNT        + 1)
#define TX_CACHEMISSCOUNT     (TX_MEMREADIN8BCOUNT    + 1)
#define TX_CACHEHITTEXELCOUNT (TX_CACHEMISSCOUNT      + 1)
#define TX_CACHEMISSTEXELCOUNT (TX_CACHEHITTEXELCOUNT + 1)
#define TX_NONIDLESTARVECOUNT  (TX_CACHEMISSTEXELCOUNT+ 1)
#define TX_STARVELCOUNT        (TX_NONIDLESTARVECOUNT + 1)
#define TX_STALLCOUNT          (TX_STARVELCOUNT       + 1)
#define TX_PROCESSCOUNT        (TX_STALLCOUNT         + 1)

#define PE_KILLEDBYCOLOR      1
#define PE_KILLEDBYDEPTH      (PE_KILLEDBYCOLOR    + 1)
#define PE_DRAWNBYCOLOR       (PE_KILLEDBYDEPTH    + 1)
#define PE_DRAWNBYDEPTH       (PE_DRAWNBYCOLOR     + 1)

#define MC_READREQ8BPIPE      1
#define MC_READREQ8BIP        (MC_READREQ8BPIPE    + 1)
#define MC_WRITEREQ8BPIPE     (MC_READREQ8BIP      + 1)
#define MC_AXIMINLATENCY      (MC_WRITEREQ8BPIPE   + 1)
#define MC_AXIMAXLATENCY      (MC_AXIMINLATENCY    + 1)
#define MC_AXITOTALLATENCY    (MC_AXIMAXLATENCY    + 1)
#define MC_AXISAMPLECOUNT     (MC_AXITOTALLATENCY  + 1)

#define AXI_READREQSTALLED    1
#define AXI_WRITEREQSTALLED   (AXI_READREQSTALLED  + 1)
#define AXI_WRITEDATASTALLED  (AXI_WRITEREQSTALLED + 1)

#define FE_DRAWCOUNT    1
#define FE_OUTVERTEXCOUNT     (FE_DRAWCOUNT  + 1)
#define FE_STALLCOUNT         (FE_OUTVERTEXCOUNT + 1)
#define FE_STARVECOUNT        (FE_STALLCOUNT + 1)

#define PVS_INSTRCOUNT        1
#define PVS_ALUINSTRCOUNT     (PVS_INSTRCOUNT      + 1)
#define PVS_TEXINSTRCOUNT     (PVS_ALUINSTRCOUNT   + 1)
#define PVS_ATTRIBCOUNT       (PVS_TEXINSTRCOUNT   + 1)
#define PVS_UNIFORMCOUNT      (PVS_ATTRIBCOUNT     + 1)
#define PVS_FUNCTIONCOUNT     (PVS_UNIFORMCOUNT    + 1)
#define PVS_SOURCE            (PVS_FUNCTIONCOUNT   + 1)

#define PPS_INSTRCOUNT       1
#define PPS_ALUINSTRCOUNT    (PPS_INSTRCOUNT       + 1)
#define PPS_TEXINSTRCOUNT    (PPS_ALUINSTRCOUNT    + 1)
#define PPS_ATTRIBCOUNT      (PPS_TEXINSTRCOUNT    + 1)
#define PPS_UNIFORMCOUNT     (PPS_ATTRIBCOUNT      + 1)
#define PPS_FUNCTIONCOUNT    (PPS_UNIFORMCOUNT     + 1)
#define PPS_SOURCE           (PPS_FUNCTIONCOUNT    + 1)
/* End of MISC Counter IDs. */


/* Category Constants. */
#define VPHEADER        0x010000
#define VPG_INFO        0x020000
#define VPG_TIME        0x030000
#define VPG_MEM         0x040000
#define VPG_ES11        0x050000
#define VPG_ES30        0x060000
#define VPG_VG11        0x070000
#define VPG_HAL         0x080000
#define VPG_HW          0x090000
#define VPG_GPU         0x0a0000
#define VPG_VS          0x0b0000
#define VPG_PS          0x0c0000
#define VPG_PA          0x0d0000
#define VPG_SETUP       0x0e0000
#define VPG_RA          0x0f0000
#define VPG_TX          0x100000
#define VPG_PE          0x110000
#define VPG_MC          0x120000
#define VPG_AXI         0x130000
#define VPG_PROG        0x140000
#define VPG_PVS         0x150000
#define VPG_PPS         0x160000
#define VPG_ES11_TIME   0x170000
#define VPG_ES30_TIME   0x180000
#define VPG_FRAME       0x190000
#define VPG_ES11_DRAW   0x200000
#define VPG_ES30_DRAW   0x210000
#define VPG_VG11_TIME   0x220000
#define VPG_FE          0x230000
#define VPG_MULTI_GPU   0x240000
#define VPNG_FE         0x250000
#define VPNG_VS         0x260000
#define VPNG_PS         0x270000
#define VPNG_PA         0x280000
#define VPNG_SETUP      0x290000
#define VPNG_RA         0x2a0000
#define VPNG_TX         0x2b0000
#define VPNG_PE         0x2c0000
#define VPNG_MCC        0x2d0000
#define VPNG_MCZ        0x2e0000
#define VPNG_HI         0x2f0000
#define VPNG_L2         0x300000
#define VPG_FINISH      0x310000
#define VPG_END         0xff0000

/* Info. */
#define VPC_INFOCOMPANY         (VPG_INFO + 1)
#define VPC_INFOVERSION         (VPC_INFOCOMPANY + 1)
#define VPC_INFORENDERER        (VPC_INFOVERSION + 1)
#define VPC_INFOREVISION        (VPC_INFORENDERER + 1)
#define VPC_INFODRIVER          (VPC_INFOREVISION + 1)
#define VPC_INFODRIVERMODE      (VPC_INFODRIVER + 1)
#define VPC_INFOSCREENSIZE      (VPC_INFODRIVERMODE + 1)

/* Counter Constants. */
#define VPC_ELAPSETIME          (VPG_TIME + 1)
#define VPC_CPUTIME             (VPC_ELAPSETIME + 1)

#define VPC_MEMMAXRES           (VPG_MEM + 1)
#define VPC_MEMSHARED           (VPC_MEMMAXRES + 1)
#define VPC_MEMUNSHAREDDATA     (VPC_MEMSHARED + 1)
#define VPC_MEMUNSHAREDSTACK    (VPC_MEMUNSHAREDDATA + 1)

/* OpenGL ES11 Statics Counter IDs. */
#define    VPC_ES11CALLS            (VPG_ES11 +    ES11_CALLS)
#define    VPC_ES11DRAWCALLS        (VPG_ES11 +    ES11_DRAWCALLS)
#define    VPC_ES11STATECHANGECALLS (VPG_ES11 +    ES11_STATECHANGECALLS)
#define    VPC_ES11POINTCOUNT       (VPG_ES11 +    ES11_POINTCOUNT)
#define    VPC_ES11LINECOUNT        (VPG_ES11 +    ES11_LINECOUNT)
#define    VPC_ES11TRIANGLECOUNT    (VPG_ES11 +    ES11_TRIANGLECOUNT)

/* OpenGL ES30 Statistics Counter IDs. */
#define    VPC_ES30CALLS            (VPG_ES30 +    ES30_CALLS)
#define    VPC_ES30DRAWCALLS        (VPG_ES30 +    ES30_DRAWCALLS)
#define    VPC_ES30STATECHANGECALLS (VPG_ES30 +    ES30_STATECHANGECALLS)
#define    VPC_ES30POINTCOUNT       (VPG_ES30 +    ES30_POINTCOUNT)
#define    VPC_ES30LINECOUNT        (VPG_ES30 +    ES30_LINECOUNT)
#define    VPC_ES30TRIANGLECOUNT    (VPG_ES30 +    ES30_TRIANGLECOUNT)

/* OpenVG Statistics Counter IDs. */
#define    VPC_VG11CALLS            (VPG_VG11 +    VG11_CALLS)
#define    VPC_VG11DRAWCALLS        (VPG_VG11 +    VG11_DRAWCALLS)
#define    VPC_VG11STATECHANGECALLS (VPG_VG11 +    VG11_STATECHANGECALLS)
#define    VPC_VG11FILLCOUNT        (VPG_VG11 +    VG11_FILLCOUNT)
#define    VPC_VG11STROKECOUNT      (VPG_VG11 +    VG11_STROKECOUNT)

/* HAL Counters. */
#define VPC_HALVERTBUFNEWBYTEALLOC      (VPG_HAL + HAL_VERTBUFNEWBYTEALLOC)
#define VPC_HALVERTBUFTOTALBYTEALLOC    (VPG_HAL + HAL_VERTBUFTOTALBYTEALLOC)
#define VPC_HALVERTBUFNEWOBJALLOC       (VPG_HAL + HAL_VERTBUFNEWOBJALLOC)
#define VPC_HALVERTBUFTOTALOBJALLOC     (VPG_HAL + HAL_VERTBUFTOTALOBJALLOC)
#define VPC_HALINDBUFNEWBYTEALLOC       (VPG_HAL + HAL_INDBUFNEWBYTEALLOC)
#define VPC_HALINDBUFTOTALBYTEALLOC     (VPG_HAL + HAL_INDBUFTOTALBYTEALLOC)
#define VPC_HALINDBUFNEWOBJALLOC        (VPG_HAL + HAL_INDBUFNEWOBJALLOC)
#define VPC_HALINDBUFTOTALOBJALLOC      (VPG_HAL + HAL_INDBUFTOTALOBJALLOC)
#define VPC_HALTEXBUFNEWBYTEALLOC       (VPG_HAL + HAL_TEXBUFNEWBYTEALLOC)
#define VPC_HALTEXBUFTOTALBYTEALLOC     (VPG_HAL + HAL_TEXBUFTOTALBYTEALLOC)
#define VPC_HALTEXBUFNEWOBJALLOC        (VPG_HAL + HAL_TEXBUFNEWOBJALLOC)
#define VPC_HALTEXBUFTOTALOBJALLOC      (VPG_HAL + HAL_TEXBUFTOTALOBJALLOC)

/* HW: GPU Counters. */
#define VPC_GPUCYCLES                   (VPG_GPU + GPU_CYCLES)
#define VPC_GPUREAD64BYTE               (VPG_GPU + GPU_READ64BYTE)
#define VPC_GPUWRITE64BYTE              (VPG_GPU + GPU_WRITE64BYTE)
#define VPC_GPUTOTALCYCLES              (VPG_GPU + GPU_TOTALCYCLES)
#define VPC_GPUIDLECYCLES               (VPG_GPU + GPU_IDLECYCLES)

/* HW: Shader Counters. */
#define VPC_VSINSTCOUNT                 (VPG_VS + VS_INSTCOUNT)
#define VPC_VSBRANCHINSTCOUNT           (VPG_VS + VS_BRANCHINSTCOUNT)
#define VPC_VSTEXLDINSTCOUNT            (VPG_VS + VS_TEXLDINSTCOUNT)
#define VPC_VSRENDEREDVERTCOUNT         (VPG_VS + VS_RENDEREDVERTCOUNT)
#define VPC_VSNONIDLESTARVECOUNT        (VPG_VS + VS_NONIDLESTARVECOUNT)
#define VPC_VSSTARVELCOUNT              (VPG_VS + VS_STARVELCOUNT)
#define VPC_VSSTALLCOUNT                (VPG_VS + VS_STALLCOUNT)
#define VPC_VSPROCESSCOUNT              (VPG_VS + VS_PROCESSCOUNT)
/* HW: PS Count. */
#define VPC_PSINSTCOUNT                 (VPG_PS + PS_INSTCOUNT)
#define VPC_PSBRANCHINSTCOUNT           (VPG_PS + PS_BRANCHINSTCOUNT)
#define VPC_PSTEXLDINSTCOUNT            (VPG_PS + PS_TEXLDINSTCOUNT)
#define VPC_PSRENDEREDPIXCOUNT          (VPG_PS + PS_RENDEREDPIXCOUNT)
#define VPC_PSNONIDLESTARVECOUNT        (VPG_PS + PS_NONIDLESTARVECOUNT)
#define VPC_PSSTARVELCOUNT              (VPG_PS + PS_STARVELCOUNT)
#define VPC_PSSTALLCOUNT                (VPG_PS + PS_STALLCOUNT)
#define VPC_PSPROCESSCOUNT              (VPG_PS + PS_PROCESSCOUNT)
#define VPC_PSSHADERCYCLECOUNT          (VPG_PS + PS_SHADERCYCLECOUNT)

/* HW: PA Counters. */
#define VPC_PAINVERTCOUNT               (VPG_PA + PA_INVERTCOUNT)
#define VPC_PAINPRIMCOUNT               (VPG_PA + PA_INPRIMCOUNT)
#define VPC_PAOUTPRIMCOUNT              (VPG_PA + PA_OUTPRIMCOUNT)
#define VPC_PADEPTHCLIPCOUNT            (VPG_PA + PA_DEPTHCLIPCOUNT)
#define VPC_PATRIVIALREJCOUNT           (VPG_PA + PA_TRIVIALREJCOUNT)
#define VPC_PACULLCOUNT                 (VPG_PA + PA_CULLCOUNT)
#define VPC_PANONIDLESTARVECOUNT        (VPG_PA + PA_NONIDLESTARVECOUNT)
#define VPC_PASTARVELCOUNT              (VPG_PA + PA_STARVELCOUNT)
#define VPC_PASTALLCOUNT                (VPG_PA + PA_STALLCOUNT)
#define VPC_PAPROCESSCOUNT              (VPG_PA + PA_PROCESSCOUNT)

/* HW: Setup Counters. */
#define VPC_SETRIANGLECOUNT             (VPG_SETUP + SE_TRIANGLECOUNT)
#define VPC_SELINECOUNT                 (VPG_SETUP + SE_LINECOUNT)
#define VPC_SESTARVECOUNT               (VPG_SETUP + SE_STARVECOUNT)
#define VPC_SESTALLCOUNT                (VPG_SETUP + SE_STALLCOUNT)
#define VPC_SERECEIVETRIANGLECOUNT      (VPG_SETUP + SE_RECEIVETRIANGLECOUNT)
#define VPC_SESENDTRIANGLECOUNT         (VPG_SETUP + SE_SENDTRIANGLECOUNT)
#define VPC_SERECEIVELINESCOUNT         (VPG_SETUP + SE_RECEIVELINESCOUNT)
#define VPC_SESENDLINESCOUNT            (VPG_SETUP + SE_SENDLINESCOUNT)
#define VPC_SENONIDLESTARVECOUNT        (VPG_SETUP + SE_NONIDLESTARVECOUNT)
#define VPC_SEPROCESSCOUNT              (VPG_SETUP + SE_PROCESSCOUNT)

/* HW: RA Counters. */
#define VPC_RAVALIDPIXCOUNT             (VPG_RA + RA_VALIDPIXCOUNT)
#define VPC_RATOTALQUADCOUNT            (VPG_RA + RA_TOTALQUADCOUNT)
#define VPC_RAVALIDQUADCOUNTEZ          (VPG_RA + RA_VALIDQUADCOUNTEZ)
#define VPC_RATOTALPRIMCOUNT            (VPG_RA + RA_TOTALPRIMCOUNT)
#define VPC_RAPIPECACHEMISSCOUNT        (VPG_RA + RA_PIPECACHEMISSCOUNT)
#define VPC_RAPREFCACHEMISSCOUNT        (VPG_RA + RA_PREFCACHEMISSCOUNT)
#define VPC_RAEEZCULLCOUNT              (VPG_RA + RA_EEZCULLCOUNT)
#define VPC_RANONIDLESTARVECOUNT        (VPG_RA + RA_NONIDLESTARVECOUNT)
#define VPC_RASTARVELCOUNT              (VPG_RA + RA_STARVELCOUNT)
#define VPC_RASTALLCOUNT                (VPG_RA + RA_STALLCOUNT)
#define VPC_RAPROCESSCOUNT              (VPG_RA + RA_PROCESSCOUNT)

/* HW: TEX Counters. */
#define VPC_TXTOTBILINEARREQ            (VPG_TX + TX_TOTBILINEARREQ)
#define VPC_TXTOTTRILINEARREQ           (VPG_TX + TX_TOTTRILINEARREQ)
#define VPC_TXTOTDISCARDTEXREQ          (VPG_TX + TX_TOTDISCARDTEXREQ)
#define VPC_TXTOTTEXREQ                 (VPG_TX + TX_TOTTEXREQ)
#define VPC_TXMEMREADCOUNT              (VPG_TX + TX_MEMREADCOUNT)
#define VPC_TXMEMREADIN8BCOUNT          (VPG_TX + TX_MEMREADIN8BCOUNT)
#define VPC_TXCACHEMISSCOUNT            (VPG_TX + TX_CACHEMISSCOUNT)
#define VPC_TXCACHEHITTEXELCOUNT        (VPG_TX + TX_CACHEHITTEXELCOUNT)
#define VPC_TXCACHEMISSTEXELCOUNT       (VPG_TX + TX_CACHEMISSTEXELCOUNT)
#define VPC_TXNONIDLESTARVECOUNT        (VPG_TX + TX_NONIDLESTARVECOUNT)
#define VPC_TXSTARVELCOUNT              (VPG_TX + TX_STARVELCOUNT)
#define VPC_TXSTALLCOUNT                (VPG_TX + TX_STALLCOUNT)
#define VPC_TXPROCESSCOUNT              (VPG_TX + TX_PROCESSCOUNT)

/* HW: PE Counters. */
#define VPC_PEKILLEDBYCOLOR             (VPG_PE + PE_KILLEDBYCOLOR)
#define VPC_PEKILLEDBYDEPTH             (VPG_PE + PE_KILLEDBYDEPTH)
#define VPC_PEDRAWNBYCOLOR              (VPG_PE + PE_DRAWNBYCOLOR)
#define VPC_PEDRAWNBYDEPTH              (VPG_PE + PE_DRAWNBYDEPTH)

/* HW: MC Counters. */
#define VPC_MCREADREQ8BPIPE             (VPG_MC + MC_READREQ8BPIPE)
#define VPC_MCREADREQ8BIP               (VPG_MC + MC_READREQ8BIP)
#define VPC_MCWRITEREQ8BPIPE            (VPG_MC + MC_WRITEREQ8BPIPE)
#define VPC_MCAXIMINLATENCY             (VPG_MC + MC_AXIMINLATENCY)
#define VPC_MCAXIMAXLATENCY             (VPG_MC + MC_AXIMAXLATENCY)
#define VPC_MCAXITOTALLATENCY           (VPG_MC + MC_AXITOTALLATENCY)
#define VPC_MCAXISAMPLECOUNT            (VPG_MC + MC_AXISAMPLECOUNT)

/* HW: AXI Counters. */
#define VPC_AXIREADREQSTALLED           (VPG_AXI + AXI_READREQSTALLED)
#define VPC_AXIWRITEREQSTALLED          (VPG_AXI + AXI_WRITEREQSTALLED)
#define VPC_AXIWRITEDATASTALLED         (VPG_AXI + AXI_WRITEDATASTALLED)

/* HW: FE Counters. */
#define VPC_FEDRAWCOUNT                 (VPG_FE + FE_DRAWCOUNT)
#define VPC_FEOUTVERTEXCOUNT            (VPG_FE + FE_OUTVERTEXCOUNT)
#define VPC_FESTALLCOUNT                (VPG_FE + FE_STALLCOUNT)
#define VPC_FESTARVECOUNT               (VPG_FE + FE_STARVECOUNT)

/* HW: Shader Counters. */
#define VPNC_VSINSTCOUNT                 (VPNG_VS + 1)
#define VPNC_VSBRANCHINSTCOUNT           (VPNG_VS + 2)
#define VPNC_VSTEXLDINSTCOUNT            (VPNG_VS + 3)
#define VPNC_VSRENDEREDVERTCOUNT         (VPNG_VS + 4)
#define VPNC_VSNONIDLESTARVECOUNT        (VPNG_VS + 5)
#define VPNC_VSSTARVELCOUNT              (VPNG_VS + 6)
#define VPNC_VSSTALLCOUNT                (VPNG_VS + 7)
#define VPNC_VSPROCESSCOUNT              (VPNG_VS + 8)
#define VPNC_VSSHADERCYCLECOUNT          (VPNG_VS + 9)
#define VPNC_VS_COUNT                    VPNC_VSSHADERCYCLECOUNT - VPNG_VS

/* HW: PS Count. */
#define VPNC_PSINSTCOUNT                 (VPNG_PS + 1)
#define VPNC_PSBRANCHINSTCOUNT           (VPNG_PS + 2)
#define VPNC_PSTEXLDINSTCOUNT            (VPNG_PS + 3)
#define VPNC_PSRENDEREDPIXCOUNT          (VPNG_PS + 4)
#define VPNC_PSNONIDLESTARVECOUNT        (VPNG_PS + 5)
#define VPNC_PSSTARVELCOUNT              (VPNG_PS + 6)
#define VPNC_PSSTALLCOUNT                (VPNG_PS + 7)
#define VPNC_PSPROCESSCOUNT              (VPNG_PS + 8)
#define VPNC_PSSHADERCYCLECOUNT          (VPNG_PS + 9)
#define VPNC_PS_COUNT                    VPNC_PSSHADERCYCLECOUNT - VPNG_PS

/* HW: PA Counters. */
#define VPNC_PAINVERTCOUNT               (VPNG_PA + 1)
#define VPNC_PAINPRIMCOUNT               (VPNG_PA + 2)
#define VPNC_PAOUTPRIMCOUNT              (VPNG_PA + 3)
#define VPNC_PADEPTHCLIPCOUNT            (VPNG_PA + 4)
#define VPNC_PATRIVIALREJCOUNT           (VPNG_PA + 5)
#define VPNC_PACULLPRIMCOUNT             (VPNG_PA + 6)
#define VPNC_PADROPPRIMCOUNT             (VPNG_PA + 7)
#define VPNC_PAFRCLIPPRIMCOUNT           (VPNG_PA + 8)
#define VPNC_PAFRCLIPDROPPRIMCOUNT       (VPNG_PA + 9)
#define VPNC_PANONIDLESTARVECOUNT        (VPNG_PA + 10)
#define VPNC_PASTARVELCOUNT              (VPNG_PA + 11)
#define VPNC_PASTALLCOUNT                (VPNG_PA + 12)
#define VPNC_PAPROCESSCOUNT              (VPNG_PA + 13)
#define VPNC_PA_COUNT                    VPNC_PAPROCESSCOUNT - VPNG_PA

/* HW: Setup Counters. */
#define VPNC_SECULLTRIANGLECOUNT         (VPNG_SETUP + 1)
#define VPNC_SECULLLINECOUNT             (VPNG_SETUP + 2)
#define VPNC_SECLIPTRIANGLECOUNT         (VPNG_SETUP + 3)
#define VPNC_SECLIPLINECOUNT             (VPNG_SETUP + 4)
#define VPNC_SESTARVECOUNT               (VPNG_SETUP + 5)
#define VPNC_SESTALLCOUNT                (VPNG_SETUP + 6)
#define VPNC_SERECEIVETRIANGLECOUNT      (VPNG_SETUP + 7)
#define VPNC_SESENDTRIANGLECOUNT         (VPNG_SETUP + 8)
#define VPNC_SERECEIVELINESCOUNT         (VPNG_SETUP + 9)
#define VPNC_SESENDLINESCOUNT            (VPNG_SETUP + 10)
#define VPNC_SENONIDLESTARVECOUNT        (VPNG_SETUP + 11)
#define VPNC_SETRIVIALREJLINECOUNT       (VPNG_SETUP + 12)
#define VPNC_SEPROCESSCOUNT              (VPNG_SETUP + 13)
#define VPNC_SE_COUNT                    VPNC_SEPROCESSCOUNT - VPNG_SETUP

/* HW: RA Counters. */
#define VPNC_RAVALIDPIXCOUNT             (VPNG_RA + 1)
#define VPNC_RATOTALQUADCOUNT            (VPNG_RA + 2)
#define VPNC_RAVALIDQUADCOUNTEZ          (VPNG_RA + 3)
#define VPNC_RAINPUTPRIMCOUNT            (VPNG_RA + 4)
#define VPNC_RAPIPECACHEMISSCOUNT        (VPNG_RA + 5)
#define VPNC_RAPREFCACHEMISSCOUNT        (VPNG_RA + 6)
#define VPNC_RAPIPEHZCACHEMISSCOUNT      (VPNG_RA + 7)
#define VPNC_RAPREFHZCACHEMISSCOUNT      (VPNG_RA + 8)
#define VPNC_RAOUTPUTQUADCOUNT           (VPNG_RA + 9)
#define VPNC_RAOUTPUTPIXELCOUNT          (VPNG_RA + 10)
#define VPNC_RAEEZCULLCOUNT              (VPNG_RA + 11)
#define VPNC_RANONIDLESTARVECOUNT        (VPNG_RA + 12)
#define VPNC_RASTARVELCOUNT              (VPNG_RA + 13)
#define VPNC_RASTALLCOUNT                (VPNG_RA + 14)
#define VPNC_RAPROCESSCOUNT              (VPNG_RA + 15)
#define VPNC_RA_COUNT                    VPNC_RAPROCESSCOUNT - VPNG_RA

/* HW: TEX Counters. */
#define VPNC_TXTOTBILINEARREQ            (VPNG_TX + 1)
#define VPNC_TXTOTTRILINEARREQ           (VPNG_TX + 2)
#define VPNC_TXTOTDISCARDTEXREQ          (VPNG_TX + 3)
#define VPNC_TXTOTTEXREQ                 (VPNG_TX + 4)
#define VPNC_TXMC0MISSCOUNT              (VPNG_TX + 5)
#define VPNC_TXMC0REQCOUNT               (VPNG_TX + 6)
#define VPNC_TXMC1MISSCOUNT              (VPNG_TX + 7)
#define VPNC_TXMC1REQCOUNT               (VPNG_TX + 8)
#define VPNC_TX_COUNT                    VPNC_TXMC1REQCOUNT - VPNG_TX

/* HW: PE Counters. */
#define VPNC_PE0KILLEDBYCOLOR             (VPNG_PE + 1)
#define VPNC_PE0KILLEDBYDEPTH             (VPNG_PE + 2)
#define VPNC_PE0DRAWNBYCOLOR              (VPNG_PE + 3)
#define VPNC_PE0DRAWNBYDEPTH              (VPNG_PE + 4)
#define VPNC_PE1KILLEDBYCOLOR             (VPNG_PE + 5)
#define VPNC_PE1KILLEDBYDEPTH             (VPNG_PE + 6)
#define VPNC_PE1DRAWNBYCOLOR              (VPNG_PE + 7)
#define VPNC_PE1DRAWNBYDEPTH              (VPNG_PE + 8)
#define VPNC_PE_COUNT                     VPNC_PE1DRAWNBYDEPTH - VPNG_PE

/* HW: MCC Counters. */
#define VPNC_MCCREADREQ8BCOLORPIPE        (VPNG_MCC + 1)
#define VPNC_MCCREADREQ8BSOCOLORPIPE      (VPNG_MCC + 2)
#define VPNC_MCCWRITEREQ8BCOLORPIPE       (VPNG_MCC + 3)
#define VPNC_MCCREADREQSOCOLORPIPE        (VPNG_MCC + 4)
#define VPNC_MCCWRITEREQCOLORPIPE         (VPNG_MCC + 5)
#define VPNC_MCCREADREQ8BDEPTHPIPE        (VPNG_MCC + 6)
#define VPNC_MCCREADREQ8BSFDEPTHPIPE      (VPNG_MCC + 7)
#define VPNC_MCCWRITEREQ8BDEPTHPIPE       (VPNG_MCC + 8)
#define VPNC_MCCREADREQSFDEPTHPIPE        (VPNG_MCC + 9)
#define VPNC_MCCWRITEREQDEPTHPIPE         (VPNG_MCC + 10)
#define VPNC_MCCREADREQ8BOTHERPIPE        (VPNG_MCC + 11)
#define VPNC_MCCWRITEREQ8BOTHERPIPE       (VPNG_MCC + 12)
#define VPNC_MCCREADREQOTHERPIPE          (VPNG_MCC + 13)
#define VPNC_MCCWRITEREQOTHERPIPE         (VPNG_MCC + 14)
#define VPNC_MCCAXIMINLATENCY             (VPNG_MCC + 15)
#define VPNC_MCCAXIMAXLATENCY             (VPNG_MCC + 16)
#define VPNC_MCCAXITOTALLATENCY           (VPNG_MCC + 17)
#define VPNC_MCCAXISAMPLECOUNT            (VPNG_MCC + 18)
#define VPNC_MCCFEREADBANDWIDTH           (VPNG_MCC + 19)
#define VPNC_MCCMMUREADBANDWIDTH          (VPNG_MCC + 20)
#define VPNC_MCCBLTREADBANDWIDTH          (VPNG_MCC + 21)
#define VPNC_MCCSH0READBANDWIDTH          (VPNG_MCC + 22)
#define VPNC_MCCSH1READBANDWIDTH          (VPNG_MCC + 23)
#define VPNC_MCCPEWRITEBANDWIDTH          (VPNG_MCC + 24)
#define VPNC_MCCBLTWRITEBANDWIDTH         (VPNG_MCC + 25)
#define VPNC_MCCSH0WRITEBANDWIDTH         (VPNG_MCC + 26)
#define VPNC_MCCSH1WRITEBANDWIDTH         (VPNG_MCC + 27)
#define VPNC_MCC_COUNT                    VPNC_MCCSH1WRITEBANDWIDTH - VPNG_MCC

/* HW: MCZ Counters. */
#define VPNC_MCZREADREQ8BCOLORPIPE        (VPNG_MCZ + 1)
#define VPNC_MCZREADREQ8BSOCOLORPIPE      (VPNG_MCZ + 2)
#define VPNC_MCZWRITEREQ8BCOLORPIPE       (VPNG_MCZ + 3)
#define VPNC_MCZREADREQSOCOLORPIPE        (VPNG_MCZ + 4)
#define VPNC_MCZWRITEREQCOLORPIPE         (VPNG_MCZ + 5)
#define VPNC_MCZREADREQ8BDEPTHPIPE        (VPNG_MCZ + 6)
#define VPNC_MCZREADREQ8BSFDEPTHPIPE      (VPNG_MCZ + 7)
#define VPNC_MCZWRITEREQ8BDEPTHPIPE       (VPNG_MCZ + 8)
#define VPNC_MCZREADREQSFDEPTHPIPE        (VPNG_MCZ + 9)
#define VPNC_MCZWRITEREQDEPTHPIPE         (VPNG_MCZ + 10)
#define VPNC_MCZREADREQ8BOTHERPIPE        (VPNG_MCZ + 11)
#define VPNC_MCZWRITEREQ8BOTHERPIPE       (VPNG_MCZ + 12)
#define VPNC_MCZREADREQOTHERPIPE          (VPNG_MCZ + 13)
#define VPNC_MCZWRITEREQOTHERPIPE         (VPNG_MCZ + 14)
#define VPNC_MCZAXIMINLATENCY             (VPNG_MCZ + 15)
#define VPNC_MCZAXIMAXLATENCY             (VPNG_MCZ + 16)
#define VPNC_MCZAXITOTALLATENCY           (VPNG_MCZ + 17)
#define VPNC_MCZAXISAMPLECOUNT            (VPNG_MCZ + 18)
#define VPNC_MCZ_COUNT                    VPNC_MCZAXISAMPLECOUNT - VPNG_MCZ

/* HW: HI Counters. */
#define VPNC_HI0READ8BYTE                (VPNG_HI + 1)
#define VPNC_HI0WRITE8BYTE               (VPNG_HI + 2)
#define VPNC_HI0READREQ                  (VPNG_HI + 3)
#define VPNC_HI0WRITEREQ                 (VPNG_HI + 4)
#define VPNC_HI0AXIREADREQSTALL          (VPNG_HI + 5)
#define VPNC_HI0AXIWRITEREQSTALL         (VPNG_HI + 6)
#define VPNC_HI0AXIWRITEDATASTALL        (VPNG_HI + 7)
#define VPNC_HI1READ8BYTE                (VPNG_HI + 8)
#define VPNC_HI1WRITE8BYTE               (VPNG_HI + 9)
#define VPNC_HI1READREQ                  (VPNG_HI + 10)
#define VPNC_HI1WRITEREQ                 (VPNG_HI + 11)
#define VPNC_HI1AXIREADREQSTALL          (VPNG_HI + 12)
#define VPNC_HI1AXIWRITEREQSTALL         (VPNG_HI + 13)
#define VPNC_HI1AXIWRITEDATASTALL        (VPNG_HI + 14)
#define VPNC_HITOTALCYCLES               (VPNG_HI + 15)
#define VPNC_HIIDLECYCLES                (VPNG_HI + 16)
#define VPNC_HIREAD8BYTE                 (VPNG_HI + 17)
#define VPNC_HIWRITE8BYTE                (VPNG_HI + 18)
#define VPNC_HI_COUNT                    VPNC_HIWRITE8BYTE - VPNG_HI

/* HW: L2 Counters. */
#define VPNC_L2AXI0READREQCOUNT          (VPNG_L2 + 1)
#define VPNC_L2AXI1READREQCOUNT          (VPNG_L2 + 2)
#define VPNC_L2AXI0WRITEREQCOUNT         (VPNG_L2 + 3)
#define VPNC_L2AXI1WRITEREQCOUNT         (VPNG_L2 + 4)
#define VPNC_L2READTRANSREQBYAXI0        (VPNG_L2 + 5)
#define VPNC_L2READTRANSREQBYAXI1        (VPNG_L2 + 6)
#define VPNC_L2WRITETRANSREQBYAXI0       (VPNG_L2 + 7)
#define VPNC_L2WRITETRANSREQBYAXI1       (VPNG_L2 + 8)
#define VPNC_L2AXI0MINLATENCY            (VPNG_L2 + 9)
#define VPNC_L2AXI0MAXLATENCY            (VPNG_L2 + 10)
#define VPNC_L2AXI0TOTLATENCY            (VPNG_L2 + 11)
#define VPNC_L2AXI0TOTREQCOUNT           (VPNG_L2 + 12)
#define VPNC_L2AXI1MINLATENCY            (VPNG_L2 + 13)
#define VPNC_L2AXI1MAXLATENCY            (VPNG_L2 + 14)
#define VPNC_L2AXI1TOTLATENCY            (VPNG_L2 + 15)
#define VPNC_L2AXI1TOTREQCOUNT           (VPNG_L2 + 16)
#define VPNC_L2_COUNT                    VPNC_L2AXI1TOTREQCOUNT - VPNG_L2

/* HW: FE Counters. */
#define VPNC_FEDRAWCOUNT                 (VPNG_FE + 1)
#define VPNC_FEOUTVERTEXCOUNT            (VPNG_FE + 2)
#define VPNC_FECACHEMISSCOUNT            (VPNG_FE + 3)
#define VPNC_FECACHELKCOUNT              (VPNG_FE + 4)
#define VPNC_FESTALLCOUNT                (VPNG_FE + 5)
#define VPNC_FESTARVECOUNT               (VPNG_FE + 6)
#define VPNC_FEPROCESSCOUNT              (VPNG_FE + 7)
#define VPNC_FE_COUNT                    VPNC_FEPROCESSCOUNT - VPNG_FE

#define TOTAL_COUNTER_NUMBER             (VPNC_FE_COUNT + VPNC_VS_COUNT + VPNC_PA_COUNT + VPNC_SE_COUNT + VPNC_RA_COUNT \
                                          + VPNC_PS_COUNT + VPNC_TX_COUNT + VPNC_PE_COUNT + VPNC_MCC_COUNT + VPNC_MCZ_COUNT \
                                          + VPNC_HI_COUNT + VPNC_L2_COUNT)

#define TOTAL_MODULE_NUMBER              12

/* PROGRAM: Shader program counters. */
#define VPC_PVSINSTRCOUNT           (VPG_PVS + PVS_INSTRCOUNT)
#define VPC_PVSALUINSTRCOUNT        (VPG_PVS + PVS_ALUINSTRCOUNT)
#define VPC_PVSTEXINSTRCOUNT        (VPG_PVS + PVS_TEXINSTRCOUNT)
#define VPC_PVSATTRIBCOUNT          (VPG_PVS + PVS_ATTRIBCOUNT)
#define VPC_PVSUNIFORMCOUNT         (VPG_PVS + PVS_UNIFORMCOUNT)
#define VPC_PVSFUNCTIONCOUNT        (VPG_PVS + PVS_FUNCTIONCOUNT)
#define VPC_PVSSOURCE               (VPG_PVS + PVS_SOURCE)

#define VPC_PPSINSTRCOUNT           (VPG_PPS + PPS_INSTRCOUNT)
#define VPC_PPSALUINSTRCOUNT        (VPG_PPS + PPS_ALUINSTRCOUNT)
#define VPC_PPSTEXINSTRCOUNT        (VPG_PPS + PPS_TEXINSTRCOUNT)
#define VPC_PPSATTRIBCOUNT          (VPG_PPS + PPS_ATTRIBCOUNT)
#define VPC_PPSUNIFORMCOUNT         (VPG_PPS + PPS_UNIFORMCOUNT)
#define VPC_PPSFUNCTIONCOUNT        (VPG_PPS + PPS_FUNCTIONCOUNT)
#define VPC_PPSSOURCE               (VPG_PPS + PPS_SOURCE)

#define VPC_PROGRAMHANDLE           (VPG_PROG + 1)

#define VPC_ES30_DRAW_NO            (VPG_ES30_DRAW + 1)
#define VPC_ES11_DRAW_NO            (VPG_ES11_DRAW + 1)
#define VPC_ES30_GPU_NO             (VPG_MULTI_GPU + 1)


#define   MODULE_FRONT_END_COUNTER_NUM                    0x5
#define   MODULE_VERTEX_SHADER_COUNTER_NUM                0x9
#define   MODULE_PRIMITIVE_ASSEMBLY_COUNTER_NUM           0xC
#define   MODULE_SETUP_COUNTER_NUM                        0xD
#define   MODULE_RASTERIZER_COUNTER_NUM                   0xE
#define   MODULE_PIXEL_SHADER_COUNTER_NUM                 0x9
#define   MODULE_TEXTURE_COUNTER_NUM                      0x8
#define   MODULE_PIXEL_ENGINE_COUNTER_NUM                 0x8
#define   MODULE_MEMORY_CONTROLLER_COLOR_COUNTER_NUM      0xC
#define   MODULE_MEMORY_CONTROLLER_DEPTH_COUNTER_NUM      0xC
#define   MODULE_HOST_INTERFACE0_COUNTER_NUM              0x9
#define   MODULE_HOST_INTERFACE1_COUNTER_NUM              0x7
#define   MODULE_GPUL2_CACHE_COUNTER_NUM                  0xE
#define   TOTAL_PROBE_NUMBER (MODULE_FRONT_END_COUNTER_NUM + MODULE_VERTEX_SHADER_COUNTER_NUM + MODULE_PRIMITIVE_ASSEMBLY_COUNTER_NUM \
                              + MODULE_SETUP_COUNTER_NUM + MODULE_RASTERIZER_COUNTER_NUM + MODULE_PIXEL_SHADER_COUNTER_NUM \
                              + MODULE_TEXTURE_COUNTER_NUM + MODULE_PIXEL_ENGINE_COUNTER_NUM + MODULE_MEMORY_CONTROLLER_COLOR_COUNTER_NUM \
                              + MODULE_MEMORY_CONTROLLER_DEPTH_COUNTER_NUM + MODULE_HOST_INTERFACE0_COUNTER_NUM + MODULE_HOST_INTERFACE1_COUNTER_NUM \
                              + MODULE_GPUL2_CACHE_COUNTER_NUM)


#ifdef ANDROID
#define DEFAULT_PROFILE_FILE_NAME   "/sdcard/vprofiler.vpd"
#else
#define DEFAULT_PROFILE_FILE_NAME   "vprofiler.vpd"
#endif

#if gcdENDIAN_BIG
#define BIG_ENDIAN_TRANS_INT(x) ((gctUINT32)(\
        (((gctUINT32)(x) & (gctUINT32)0x000000FFUL) << 24) | \
        (((gctUINT32)(x) & (gctUINT32)0x0000FF00UL) << 8)  | \
        (((gctUINT32)(x) & (gctUINT32)0x00FF0000UL) >> 8)  | \
        (((gctUINT32)(x) & (gctUINT32)0xFF000000UL) >> 24)))
#else
#define BIG_ENDIAN_TRANS_INT(x) x
#endif

/* Write a data value. */
#define gcmWRITE_VALUE(IntData) \
    do \
    { \
        gceSTATUS status; \
        gctINT32 value = IntData; \
        value = BIG_ENDIAN_TRANS_INT(value); \
        gcmERR_BREAK(gcoPROFILER_Write(Profiler, gcmSIZEOF(value), &value)); \
    } \
    while (gcvFALSE)

#define gcmWRITE_CONST(Const) \
    do \
    { \
        gceSTATUS status; \
        gctINT32 data = Const; \
        data = BIG_ENDIAN_TRANS_INT(data); \
        gcmERR_BREAK(gcoPROFILER_Write(Profiler, gcmSIZEOF(data), &data)); \
    } \
    while (gcvFALSE)

#define gcmWRITE_COUNTER(Counter, Value) \
    gcmWRITE_CONST(Counter); \
    gcmWRITE_VALUE(Value)

/* Write a data value. */
#define gcmRECORD_VALUE(IntData) \
    do \
    { \
        gctINT32 value = IntData; \
        value = BIG_ENDIAN_TRANS_INT(value); \
        counterData[counterIndex++] = value; \
    } \
    while (gcvFALSE)

#define gcmRECORD_CONST(Const) \
    do \
    { \
        gctINT32 data = Const; \
        data = BIG_ENDIAN_TRANS_INT(data); \
        counterData[counterIndex++] = data; \
    } \
    while (gcvFALSE)

#define gcmRECORD_COUNTER(Counter, Value) \
    gcmRECORD_CONST(Counter); \
    gcmRECORD_VALUE(Value)

/* Write a string value (char*). */
#define gcmWRITE_STRING(String) \
    do \
    { \
        gceSTATUS status; \
        gctINT32 length; \
        length = (gctINT32) gcoOS_StrLen((gctSTRING)String, gcvNULL); \
        length = BIG_ENDIAN_TRANS_INT(length); \
        gcmERR_BREAK(gcoPROFILER_Write(Profiler, gcmSIZEOF(length), &length)); \
        gcmERR_BREAK(gcoPROFILER_Write(Profiler, length, String)); \
    } \
    while (gcvFALSE)

#define gcmWRITE_BUFFER(Size, Buffer) \
    do \
    { \
        gceSTATUS status; \
        gcmERR_BREAK(gcoPROFILER_Write(Profiler, Size, Buffer)); \
    } \
    while (gcvFALSE)

#define gcmGET_COUNTER(counter, counterId) \
    do \
    { \
        if ((gctUINT32)*(memory + counterId + offset) == 0xdeaddead) \
        { \
            counter = 0xdeaddead; \
        } \
        else \
        { \
            gctUINT64_PTR Memory = memory; \
            Memory += TOTAL_PROBE_NUMBER * CoreId; \
            counter = (gctUINT32)*(Memory + counterId + offset); \
        } \
    } \
    while (gcvFALSE)

#define gcmGET_LATENCY_COUNTER(minLatency, maxLatency, counterId) \
    do \
    { \
        if ((gctUINT32)*(memory + counterId + offset) == 0xdeaddead) \
        { \
            minLatency = maxLatency = 0xdeaddead; \
        } \
        else \
        { \
            gctUINT64_PTR Memory = memory; \
            Memory += TOTAL_PROBE_NUMBER * CoreId; \
            maxLatency = (((gctUINT32)*(Memory + counterId + offset) & 0xfff000) >> 12); \
            minLatency = ((gctUINT32)*(Memory + counterId + offset) & 0x000fff); \
            if (minLatency == 4095) \
                minLatency = 0; \
        } \
    } \
    while (gcvFALSE)

typedef enum _gceCOUNTER
{
    gcvCOUNTER_FRONT_END,
    gcvCOUNTER_VERTEX_SHADER,
    gcvCOUNTER_PRIMITIVE_ASSEMBLY,
    gcvCOUNTER_SETUP,
    gcvCOUNTER_RASTERIZER,
    gcvCOUNTER_PIXEL_SHADER,
    gcvCOUNTER_TEXTURE,
    gcvCOUNTER_PIXEL_ENGINE,
    gcvCOUNTER_MEMORY_CONTROLLER_COLOR,
    gcvCOUNTER_MEMORY_CONTROLLER_DEPTH,
    gcvCOUNTER_HOST_INTERFACE0,
    gcvCOUNTER_HOST_INTERFACE1,
    gcvCOUNTER_GPUL2_CACHE,
    gcvCOUNTER_COUNT
}
gceCOUNTER;

typedef enum _gceProfilerClient
{
    gcvCLIENT_OPENGLES11 = 1,
    gcvCLIENT_OPENGLES,
    gcvCLIENT_OPENGL,
    gcvCLIENT_OPENVG,
    gcvCLIENT_OPENCL,
    gcvCLIENT_OPENVX,
    gcvCLIENT_OPENVK,
}
gceProfilerClient;

/* HW profile information. */
typedef struct _gcsPROFILER_COUNTERS_PART1
{
    gctUINT32       gpuTotalRead64BytesPerFrame;
    gctUINT32       gpuTotalWrite64BytesPerFrame;

    /* FE */
    gctUINT32       fe_draw_count;
    gctUINT32       fe_out_vertex_count;
    gctUINT32       fe_cache_miss_count;
    gctUINT32       fe_cache_lk_count;
    gctUINT32       fe_stall_count;
    gctUINT32       fe_starve_count;
    gctUINT32       fe_process_count;

    /* PE */
    gctUINT32       pe0_pixel_count_killed_by_color_pipe;
    gctUINT32       pe0_pixel_count_killed_by_depth_pipe;
    gctUINT32       pe0_pixel_count_drawn_by_color_pipe;
    gctUINT32       pe0_pixel_count_drawn_by_depth_pipe;
    gctUINT32       pe1_pixel_count_killed_by_color_pipe;
    gctUINT32       pe1_pixel_count_killed_by_depth_pipe;
    gctUINT32       pe1_pixel_count_drawn_by_color_pipe;
    gctUINT32       pe1_pixel_count_drawn_by_depth_pipe;

    /* SH */
    gctUINT32       shader_cycle_count;
    gctUINT32       vs_shader_cycle_count;
    gctUINT32       ps_shader_cycle_count;
    gctUINT32       ps_inst_counter;
    gctUINT32       ps_rendered_pixel_counter;
    gctUINT32       vs_inst_counter;
    gctUINT32       vs_rendered_vertice_counter;
    gctUINT32       vs_branch_inst_counter;
    gctUINT32       vs_texld_inst_counter;
    gctUINT32       ps_branch_inst_counter;
    gctUINT32       ps_texld_inst_counter;
    gctUINT32       vs_non_idle_starve_count;
    gctUINT32       vs_starve_count;
    gctUINT32       vs_stall_count;
    gctUINT32       vs_process_count;
    gctUINT32       ps_non_idle_starve_count;
    gctUINT32       ps_starve_count;
    gctUINT32       ps_stall_count;
    gctUINT32       ps_process_count;

    /* PA */
    gctUINT32       pa_input_vtx_counter;
    gctUINT32       pa_input_prim_counter;
    gctUINT32       pa_output_prim_counter;
    gctUINT32       pa_depth_clipped_counter;
    gctUINT32       pa_trivial_rejected_counter;
    gctUINT32       pa_culled_prim_counter;
    gctUINT32       pa_droped_prim_counter;
    gctUINT32       pa_frustum_clipped_prim_counter;
    gctUINT32       pa_frustum_clipdroped_prim_counter;
    gctUINT32       pa_non_idle_starve_count;
    gctUINT32       pa_starve_count;
    gctUINT32       pa_stall_count;
    gctUINT32       pa_process_count;

    /* SE */
    gctUINT32       se_culled_triangle_count;
    gctUINT32       se_culled_lines_count;
    gctUINT32       se_clipped_triangle_count;
    gctUINT32       se_clipped_line_count;
    gctUINT32       se_starve_count;
    gctUINT32       se_stall_count;
    gctUINT32       se_receive_triangle_count;
    gctUINT32       se_send_triangle_count;
    gctUINT32       se_receive_lines_count;
    gctUINT32       se_send_lines_count;
    gctUINT32       se_process_count;
    gctUINT32       se_trivial_rejected_line_count;
    gctUINT32       se_non_idle_starve_count;

    /* RA */
    gctUINT32       ra_input_prim_count;
    gctUINT32       ra_total_quad_count;
    gctUINT32       ra_valid_quad_count_after_early_z;
    gctUINT32       ra_valid_pixel_count_to_render;
    gctUINT32       ra_output_valid_quad_count;
    gctUINT32       ra_output_valid_pixel_count;
    gctUINT32       ra_pipe_cache_miss_counter;
    gctUINT32       ra_pipe_hz_cache_miss_counter;
    gctUINT32       ra_prefetch_cache_miss_counter;
    gctUINT32       ra_prefetch_hz_cache_miss_counter;
    gctUINT32       ra_eez_culled_counter;
    gctUINT32       ra_non_idle_starve_count;
    gctUINT32       ra_starve_count;
    gctUINT32       ra_stall_count;
    gctUINT32       ra_process_count;

    /* TX */
    gctUINT32       tx_total_bilinear_requests;
    gctUINT32       tx_total_trilinear_requests;
    gctUINT32       tx_total_discarded_texture_requests;
    gctUINT32       tx_total_texture_requests;
    gctUINT32       tx_mc0_miss_count;
    gctUINT32       tx_mc0_request_byte_count;
    gctUINT32       tx_mc1_miss_count;
    gctUINT32       tx_mc1_request_byte_count;
    gctUINT32       tx_non_idle_starve_count;
    gctUINT32       tx_starve_count;
    gctUINT32       tx_stall_count;
    gctUINT32       tx_process_count;
}
gcsPROFILER_COUNTERS_PART1;

typedef struct _gcsPROFILER_COUNTERS_PART2
{
    /* MCC */
    gctUINT32       mcc_total_read_req_8B_from_colorpipe;
    gctUINT32       mcc_total_read_req_8B_sentout_from_colorpipe;
    gctUINT32       mcc_total_write_req_8B_from_colorpipe;
    gctUINT32       mcc_total_read_req_sentout_from_colorpipe;
    gctUINT32       mcc_total_write_req_from_colorpipe;
    gctUINT32       mcc_total_read_req_8B_from_depthpipe;
    gctUINT32       mcc_total_read_req_8B_sentout_from_depthpipe;
    gctUINT32       mcc_total_write_req_8B_from_depthpipe;
    gctUINT32       mcc_total_read_req_sentout_from_depthpipe;
    gctUINT32       mcc_total_write_req_from_depthpipe;
    gctUINT32       mcc_total_read_req_8B_from_others;
    gctUINT32       mcc_total_write_req_8B_from_others;
    gctUINT32       mcc_total_read_req_from_others;
    gctUINT32       mcc_total_write_req_from_others;
    gctUINT32       mcc_axi_total_latency;
    gctUINT32       mcc_axi_sample_count;
    gctUINT32       mcc_axi_max_latency;
    gctUINT32       mcc_axi_min_latency;
    gctUINT32       mc_fe_read_bandwidth;
    gctUINT32       mc_mmu_read_bandwidth;
    gctUINT32       mc_blt_read_bandwidth;
    gctUINT32       mc_sh0_read_bandwidth;
    gctUINT32       mc_sh1_read_bandwidth;
    gctUINT32       mc_pe_write_bandwidth;
    gctUINT32       mc_blt_write_bandwidth;
    gctUINT32       mc_sh0_write_bandwidth;
    gctUINT32       mc_sh1_write_bandwidth;

    /* MCZ */
    gctUINT32       mcz_total_read_req_8B_from_colorpipe;
    gctUINT32       mcz_total_read_req_8B_sentout_from_colorpipe;
    gctUINT32       mcz_total_write_req_8B_from_colorpipe;
    gctUINT32       mcz_total_read_req_sentout_from_colorpipe;
    gctUINT32       mcz_total_write_req_from_colorpipe;
    gctUINT32       mcz_total_read_req_8B_from_depthpipe;
    gctUINT32       mcz_total_read_req_8B_sentout_from_depthpipe;
    gctUINT32       mcz_total_write_req_8B_from_depthpipe;
    gctUINT32       mcz_total_read_req_sentout_from_depthpipe;
    gctUINT32       mcz_total_write_req_from_depthpipe;
    gctUINT32       mcz_total_read_req_8B_from_others;
    gctUINT32       mcz_total_write_req_8B_from_others;
    gctUINT32       mcz_total_read_req_from_others;
    gctUINT32       mcz_total_write_req_from_others;
    gctUINT32       mcz_axi_total_latency;
    gctUINT32       mcz_axi_sample_count;
    gctUINT32       mcz_axi_max_latency;
    gctUINT32       mcz_axi_min_latency;

    /* HI */
    gctUINT32       hi0_total_read_8B_count;
    gctUINT32       hi0_total_write_8B_count;
    gctUINT32       hi0_total_read_request_count;
    gctUINT32       hi0_total_write_request_count;
    gctUINT32       hi0_axi_cycles_read_request_stalled;
    gctUINT32       hi0_axi_cycles_write_request_stalled;
    gctUINT32       hi0_axi_cycles_write_data_stalled;
    gctUINT32       hi1_total_read_8B_count;
    gctUINT32       hi1_total_write_8B_count;
    gctUINT32       hi1_total_read_request_count;
    gctUINT32       hi1_total_write_request_count;
    gctUINT32       hi1_axi_cycles_read_request_stalled;
    gctUINT32       hi1_axi_cycles_write_request_stalled;
    gctUINT32       hi1_axi_cycles_write_data_stalled;
    gctUINT32       hi_total_cycle_count;
    gctUINT32       hi_total_idle_cycle_count;
    gctUINT32       hi_total_read_8B_count;
    gctUINT32       hi_total_write_8B_count;

    /* L2 */
    gctUINT32       l2_total_axi0_read_request_count;
    gctUINT32       l2_total_axi1_read_request_count;
    gctUINT32       l2_total_axi0_write_request_count;
    gctUINT32       l2_total_axi1_write_request_count;
    gctUINT32       l2_total_read_transactions_request_by_axi0;
    gctUINT32       l2_total_read_transactions_request_by_axi1;
    gctUINT32       l2_total_write_transactions_request_by_axi0;
    gctUINT32       l2_total_write_transactions_request_by_axi1;
    gctUINT32       l2_axi0_minmax_latency;
    gctUINT32       l2_axi0_min_latency;
    gctUINT32       l2_axi0_max_latency;
    gctUINT32       l2_axi0_total_latency;
    gctUINT32       l2_axi0_total_request_count;
    gctUINT32       l2_axi1_minmax_latency;
    gctUINT32       l2_axi1_min_latency;
    gctUINT32       l2_axi1_max_latency;
    gctUINT32       l2_axi1_total_latency;
    gctUINT32       l2_axi1_total_request_count;
}
gcsPROFILER_COUNTERS_PART2;

typedef struct _gcsPROFILER_COUNTERS
{
    gcsPROFILER_COUNTERS_PART1 counters_part1;
    gcsPROFILER_COUNTERS_PART2 counters_part2;
}
gcsPROFILER_COUNTERS;

#define NumOfPerFrameBuf        16
#define NumOfPerDrawBuf         128

typedef enum _gceCOUNTER_OPTYPE
{
    gcvCOUNTER_OP_DRAW = 0,
    gcvCOUNTER_OP_BLT = 1,
    gcvCOUNTER_OP_COMPUTE = 2,
    gcvCOUNTER_OP_RS = 3,
    gcvCOUNTER_OP_FINISH = 4,
    gcvCOUNTER_OP_FRAME = 5,
    gcvCOUNTER_OP_NONE = 6
}
gceCOUNTER_OPTYPE;

typedef struct gcsCounterBuffer * gcsCounterBuffer_PTR;

struct gcsCounterBuffer
{
    gcsPROFILER_COUNTERS        *counters;
    gctHANDLE                   couterBufobj;
    gctUINT32                   probeAddress;
    gctPOINTER                  logicalAddress;
    gceCOUNTER_OPTYPE           opType;
    gctUINT32                   opID;
    gctUINT32                   startPos;
    gctUINT32                   endPos;
    gctUINT32                   dataSize;
    gctBOOL                     available;
    gctBOOL                     needDump;
    gcsCounterBuffer_PTR        next;
    gcsCounterBuffer_PTR        prev;
};

typedef struct _gcoPROFILER *        gcoPROFILER;

struct _gcoPROFILER
{
    gctBOOL                     enable;
    gctBOOL                     enablePrint;
    gctBOOL                     disableProbe;
    gctBOOL                     probeMode;

    gctFILE                     file;
    gctCHAR*                    fileName;

    gcsCounterBuffer_PTR        counterBuf;
    gctUINT32                   bufferCount;

    gctBOOL                     perDrawMode;
    gctBOOL                     needDump;
    gctBOOL                     counterEnable;

    gceProfilerClient           profilerClient;

    /*query some features from hw*/
    gctUINT32                   coreCount;
    gctUINT32                   shaderCoreCount;
    gctBOOL                     bHalti4;
    gctBOOL                     psRenderPixelFix;
    gctBOOL                     axiBus128bits;
};

typedef enum _gceProbeStatus
{
    gcvPROBE_Disabled = 0,
    gcvPROBE_Paused = 1,
    gcvPROBE_Enabled = 2,
}
gceProbeStatus;

typedef enum _gceProbeCmd
{
    gcvPROBECMD_BEGIN = 0,
    gcvPROBECMD_PAUSE = 1,
    gcvPROBECMD_RESUME = 2,
    gcvPROBECMD_END = 3,
}
gceProbeCmd;

typedef struct _gcsPROBESTATES
{
    gceProbeStatus              status;
    gctUINT32                   probeAddress;
}gcsPROBESTATES;

/* Construct a Profiler object per context. */
gceSTATUS
gcoPROFILER_Construct(
    OUT gcoPROFILER * Profiler
    );

gceSTATUS
gcoPROFILER_Destroy(
    IN gcoPROFILER Profiler
    );

gceSTATUS
gcoPROFILER_Enable(
    IN gcoPROFILER Profiler
    );

gceSTATUS
gcoPROFILER_Disable(
    void
    );

gceSTATUS
gcoPROFILER_Begin(
    IN gcoPROFILER Profiler,
    IN gceCOUNTER_OPTYPE operationType
    );

gceSTATUS
gcoPROFILER_End(
    IN gcoPROFILER Profiler,
    IN gceCOUNTER_OPTYPE operationType,
    IN gctUINT32 OpID
    );

gceSTATUS
gcoPROFILER_Write(
    IN gcoPROFILER Profiler,
    IN gctSIZE_T ByteCount,
    IN gctCONST_POINTER Data
    );

gceSTATUS
gcoPROFILER_Flush(
    IN gcoPROFILER Profiler
    );
#ifdef __cplusplus
}
#endif

#endif /* __gc_hal_profiler_h_ */


