Home

Resume

Blog

Teikitu


/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
/*  »Project«   Teikitu Gaming System (TgS) (∂)
    »File«      TgS Kernel - Internal - Data.h
    »Author«    Andrew Aye (EMail: mailto:andrew.aye@gmail.com, Web: http://www.andrewaye.com)
    »Version«   4.51 / »GUID« A9981407-3EC9-42AF-8B6F-8BE6DD919615                                                                                                        */
/*   -------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
/*  Copyright: © 2002-2017, Andrew Aye.  All Rights Reserved.
    This software is free for non-commercial use.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
      following conditions are met:
        Redistribution of source code must retain this copyright notice, this list of conditions and the following disclaimers.
        Redistribution in binary form must reproduce this copyright notice, this list of conditions and the following disclaimers in the documentation and other materials
          provided with the distribution.
    The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
    The intellectual property rights of the algorithms used reside with Andrew Aye.
    You may not use this software, in whole or in part, in support of any commercial product without the express written consent of the author.
    There is no warranty or other guarantee of fitness of this software for any purpose. It is provided solely "as is".                                                   */
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
#if !defined(TGS_KERNEL_INTERNAL_DATA_H)
#define TGS_KERNEL_INTERNAL_DATA_H
#pragma once

#if !defined(TGS_PLATFORM_KERNEL_INTERNAL_H)
#error This file should not be included directly - use the correct platform include wrapper
#endif

#include "TgS Kernel - Internal - Type.h"


/* == Kernel ============================================================================================================================================================ */

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Private Data                                                                                                                                                          */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */

TgEXTN STg2_KN_Notify                       g_asKN_Notify_Data[KTgKN_MAX_NOTIFY_ENTRIES];
TgEXTN TgUINT32                             g_auiKN_Notify_MSG[KTgKN_MAX_NOTIFY_ENTRIES];
TgEXTN TgSINT32                             g_aiKN_Notify_Next[KTgKN_MAX_NOTIFY_ENTRIES];
TgEXTN TgKN_NOTIFY_ID                       g_atiKN_Notify[KTgKN_MAX_NOTIFY_ENTRIES];
TgEXTN TgSINT32                             g_aiKN_Notify_List[KTgHASH_MD_SIZE];
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Notfiy_Lock;
TgEXTN TgSINT32                             g_iKN_Notfiy_Free_Index;

TgEXTN STg2_KN_File_System                  g_asKN_FS[KTgKN_MAX_FILE_SYSTEM];
TgEXTN TgSINT32                             g_niKN_FS;
TgEXTN STg2_KN_FS_Mount                     g_asKN_FS_Mount[KTgKN_MAX_FILE_SYSTEM_MOUNT];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_FS_Mount__Free_Stack; /* Atomic Stack to acquire a new file */
TgEXTN STg2_KN_File_Info                    g_asKN_File_Info[KTgKN_MAX_FILE_OPEN];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_File_Info__Free_Stack; /* Atomic Stack to acquire a new file */
TgEXTN STg2_KN_File_Job                     g_asKN_File_Job[KTgKN_MAX_FILE_JOB];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_File_Job__Free_Stack; /* Atomic Stack to acquire a new job */

TgEXTN TgKN_FILE_SYSTEM_ID                  g_tiKN_FS_HDD;


/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Private GPU Data                                                                                                                                                      */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
#if defined(TgCOMPILE_GPU_SUPPORT)
TgEXTN STg2_KN_GPU_Adapter                  g_asKN_GPU_Adapter[KTgKN_GPU_MAX_ADAPTER];
TgEXTN TgSINT32                             g_niKN_GPU_Adapter;
TgEXTN STg2_KN_GPU_Context__Device          g_asKN_GPU_Context_Device[KTgKN_GPU_MAX_DEVC_CONTEXT]; /* #IMPLEMENT */
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_GPU_Context_Device__Free_Stack;
TgEXTN STg2_KN_GPU_Context__Output          g_asKN_GPU_Context_Output[KTgKN_GPU_MAX_OUTPUT]; /* #IMPLEMENT */
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_GPU_Context_Output__Free_Stack;
TgEXTN STg2_KN_GPU_Context__Resource        g_asKN_GPU_Context_Resource[KTgKN_GPU_MAX_RESOURCE_CONTEXT]; /* #IMPLEMENT */
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_GPU_Context_Resource__Free_Stack;
TgEXTN STg2_KN_GPU_Context__External        g_asKN_GPU_Context_External[KTgKN_GPU_MAX_RESOURCE_CONTEXT]; /* #IMPLEMENT */
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_GPU_Context_External__Free_Stack;
TgEXTN STg2_KN_GPU_Context                  g_asKN_GPU_Context[KTgKN_GPU_MAX_CONTEXT]; /* #IMPLEMENT */
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_GPU_Context__Free_Stack;
/*# defined(TgCOMPILE_GPU_SUPPORT) */
#endif


/* ---- GPU Resource - Shader ------------------------------------------------------------------------------------------------------------------------------------------- */
#if defined(TgCOMPILE_GPU_SUPPORT)

TgEXTN TgUINTXX                             g_asKN_Lib_CS_Hash[KTgKN_GPU_MAX_CS];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_CS_RS[KTgKN_GPU_MAX_CS];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_CS_Ref[KTgKN_GPU_MAX_CS];
TgEXTN STg2_KN_GPU_CS_DATA                  g_asKN_Lib_CS_Data[KTgKN_GPU_MAX_CS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_CS;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_CS_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_CS_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_CS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_CS];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_CS[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_CS];
TgEXTN volatile TgSINT32                    g_aiCXT_CS_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_CS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_CS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_CS_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

TgEXTN TgUINTXX                             g_asKN_Lib_HS_Hash[KTgKN_GPU_MAX_HS];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_HS_RS[KTgKN_GPU_MAX_HS];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_HS_Ref[KTgKN_GPU_MAX_HS];
TgEXTN STg2_KN_GPU_HS_DATA                  g_asKN_Lib_HS_Data[KTgKN_GPU_MAX_HS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_HS;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_HS_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_HS_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_HS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_HS];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_HS[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_HS];
TgEXTN volatile TgSINT32                    g_aiCXT_HS_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_HS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_HS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_HS_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

TgEXTN TgUINTXX                             g_asKN_Lib_DS_Hash[KTgKN_GPU_MAX_DS];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_DS_RS[KTgKN_GPU_MAX_DS];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_DS_Ref[KTgKN_GPU_MAX_DS];
TgEXTN STg2_KN_GPU_DS_DATA                  g_asKN_Lib_DS_Data[KTgKN_GPU_MAX_DS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_DS;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_DS_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_DS_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_DS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_DS];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_DS[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_DS];
TgEXTN volatile TgSINT32                    g_aiCXT_DS_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_DS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_DS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_DS_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

TgEXTN TgUINTXX                             g_asKN_Lib_VS_Hash[KTgKN_GPU_MAX_VS];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_VS_RS[KTgKN_GPU_MAX_VS];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_VS_Ref[KTgKN_GPU_MAX_VS];
TgEXTN STg2_KN_GPU_VS_DATA                  g_asKN_Lib_VS_Data[KTgKN_GPU_MAX_VS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_VS;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_VS_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_VS_DESC;

TgEXTN TgUINTXX                             g_asKN_Lib_GS_Hash[KTgKN_GPU_MAX_GS];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_GS_RS[KTgKN_GPU_MAX_GS];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_GS_Ref[KTgKN_GPU_MAX_GS];
TgEXTN STg2_KN_GPU_GS_DATA                  g_asKN_Lib_GS_Data[KTgKN_GPU_MAX_GS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_GS;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_GS_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_GS_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_GS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_GS];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_GS[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_GS];
TgEXTN volatile TgSINT32                    g_aiCXT_GS_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_GS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_GS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_GS_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

TgEXTN TgUINTXX                             g_asKN_Lib_PS_Hash[KTgKN_GPU_MAX_PS];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_PS_RS[KTgKN_GPU_MAX_PS];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_PS_Ref[KTgKN_GPU_MAX_PS];
TgEXTN STg2_KN_GPU_PS_DATA                  g_asKN_Lib_PS_Data[KTgKN_GPU_MAX_PS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_PS;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_PS_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_PS_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_PS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_PS];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_PS[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_PS];
TgEXTN volatile TgSINT32                    g_aiCXT_PS_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_PS];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_PS_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_PS_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

/*# defined(TgCOMPILE_GPU_SUPPORT) */
#endif


/* ---- GPU Resource - Input -------------------------------------------------------------------------------------------------------------------------------------------- */
#if defined(TgCOMPILE_GPU_SUPPORT)

TgEXTN TgUINTXX                             g_asKN_Lib_VT_Hash[KTgKN_GPU_MAX_VT];
TgEXTN TgKN_GPU_RS_ID                       g_aniKN_Lib_VT_RS[KTgKN_GPU_MAX_VT];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_VT_Ref[KTgKN_GPU_MAX_VT];
TgEXTN STg2_KN_GPU_VT_Element               g_asKN_Lib_VT_Data[KTgKN_GPU_MAX_VT][KTgKN_GPU_MAX_VT_ELEMENT];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_VT;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_VT_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_VT_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_IL[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_IL];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_IL_VS[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_IL];
TgEXTN volatile TgSINT32                    g_aiCXT_IL_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_IL];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_IL[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_IL_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

/*# defined(TgCOMPILE_GPU_SUPPORT) */
#endif


/* ---- GPU Resource - Texture ------------------------------------------------------------------------------------------------------------------------------------------ */
#if defined(TgCOMPILE_GPU_SUPPORT)

TgEXTN TgUINTXX                             g_asKN_Lib_TX_IMG_Hash[KTgKN_GPU_MAX_TX_IMG];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_TX_IMG_RS[KTgKN_GPU_MAX_TX_IMG];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_TX_IMG_Ref[KTgKN_GPU_MAX_TX_IMG];
TgEXTN STg2_KN_GPU_TX_IMG_DATA              g_asKN_Lib_TX_IMG_Data[KTgKN_GPU_MAX_TX_IMG];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_TX_IMG;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_TX_IMG_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_TX_IMG_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_TX_IMG_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_IMG];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_TX_IMG[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_IMG];
TgEXTN volatile TgSINT32                    g_aiCXT_TX_IMG_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_IMG];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_TX_IMG_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_TX_IMG_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

TgEXTN TgUINTXX                             g_asKN_Lib_TX_CBE_Hash[KTgKN_GPU_MAX_TX_CBE];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_TX_CBE_RS[KTgKN_GPU_MAX_TX_CBE];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_TX_CBE_Ref[KTgKN_GPU_MAX_TX_CBE];
TgEXTN STg2_KN_GPU_TX_CBE_DATA              g_asKN_Lib_TX_CBE_Data[KTgKN_GPU_MAX_TX_CBE];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_TX_CBE;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_TX_CBE_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_TX_CBE_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_TX_CBE_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_CBE];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_TX_CBE[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_CBE];
TgEXTN volatile TgSINT32                    g_aiCXT_TX_CBE_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_CBE];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_TX_CBE_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_TX_CBE_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

TgEXTN TgUINTXX                             g_asKN_Lib_TX_VOL_Hash[KTgKN_GPU_MAX_TX_VOL];
TgEXTN TgKN_GPU_RS_ID                       g_atiKN_Lib_TX_VOL_RS[KTgKN_GPU_MAX_TX_VOL];
TgEXTN volatile TgSINT32                    g_aiKN_Lib_TX_VOL_Ref[KTgKN_GPU_MAX_TX_VOL];
TgEXTN STg2_KN_GPU_TX_VOL_DATA              g_asKN_Lib_TX_VOL_Data[KTgKN_GPU_MAX_TX_VOL];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sKN_Lib_TX_VOL;
TgEXTN STg2_UTM_SN_ISO                      g_sKN_Lib_TX_VOL_Lock;
TgEXTN STg2_KN_GPU_RS_LIB_DESC              g_sKN_Lib_TX_VOL_DESC;

TgEXTN TgKN_GPU_RSI_ID                      g_atiCXT_TX_VOL_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_VOL];
TgEXTN TgKN_GPU_RS_ID                       g_atiCXT_TX_VOL[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_VOL];
TgEXTN volatile TgSINT32                    g_aiCXT_TX_VOL_Inst_Ref[KTgKN_GPU_MAX_RESOURCE_CONTEXT][KTgKN_GPU_MAX_TX_VOL];
TgEXTN STg2_UTM_AM_ST_ISO                   g_sCXT_TX_VOL_Inst[KTgKN_GPU_MAX_RESOURCE_CONTEXT];
TgEXTN STg2_UTM_SN_ISO                      g_sCXT_TX_VOL_Inst_Lock[KTgKN_GPU_MAX_RESOURCE_CONTEXT];

                                            /* Platform specific values (constants) corresponding to their respective TgS enumerations */
TgEXTN C_TgUINT32                           g_auiKN_PM_TX_AM[ETgKN_GPU_TX_ADDRESS__MAX];
TgEXTN C_TgUINT32                           g_auiKN_PM_TX_Filter[ETgKN_GPU_TX_FILTER__MAX];
TgEXTN C_TgUINT32                           g_auiKN_PM_TX_MIP_Filter[ETgKN_GPU_TX_FILTER__MAX][ETgKN_GPU_TX_FILTER__MAX];

/*# defined(TgCOMPILE_GPU_SUPPORT) */
#endif


/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Private State | Debug Data                                                                                                                                            */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */

/* ---- Stat ------------------------------------------------------------------------------------------------------------------------------------------------------------ */
#if TgS_STAT_KERNEL || TgS_DEBUG_KERNEL

#if defined(TgCOMPILE_GPU_SUPPORT)
TgEXTN TgUINT32                             g_uiKN_Stats_Loaded_Mesh_Vertex; /* #IMPLEMENT */
TgEXTN TgUINT32                             g_uiKN_Stats_Loaded_Mesh_Face; /* #IMPLEMENT */
TgEXTN TgSIZE                               g_uiKN_Stats_Memory_Buffer; /* #IMPLEMENT */
TgEXTN TgSIZE                               g_uiKN_Stats_Memory_Mesh; /* #IMPLEMENT */
TgEXTN TgSIZE                               g_uiKN_Stats_Memory_Mesh_Collision; /* #IMPLEMENT */

TgEXTN TgSIZE                               g_uiKN_Size_GPU_CS[KTgKN_GPU_MAX_CS];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_HS[KTgKN_GPU_MAX_HS];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_DS[KTgKN_GPU_MAX_DS];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_VS[KTgKN_GPU_MAX_VS];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_GS[KTgKN_GPU_MAX_GS];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_PS[KTgKN_GPU_MAX_PS];

TgEXTN TgSIZE                               g_uiKN_Size_GPU_TX_IMG[KTgKN_GPU_MAX_TX_IMG];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_TX_CBE[KTgKN_GPU_MAX_TX_CBE];
TgEXTN TgSIZE                               g_uiKN_Size_GPU_TX_VOL[KTgKN_GPU_MAX_TX_VOL];
/*# defined(TgCOMPILE_GPU_SUPPORT) */
#endif
/*# TgS_STAT_KERNEL || TgS_DEBUG_KERNEL */
#endif


/* ---- Debug ----------------------------------------------------------------------------------------------------------------------------------------------------------- */
#if TgS_DEBUG_KERNEL

#if defined(TgCOMPILE_GPU_SUPPORT)
TgEXTN TgCHAR                               g_szKN_GPU_CS[KTgKN_GPU_MAX_CS][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_HS[KTgKN_GPU_MAX_HS][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_DS[KTgKN_GPU_MAX_DS][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_VS[KTgKN_GPU_MAX_VS][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_GS[KTgKN_GPU_MAX_GS][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_PS[KTgKN_GPU_MAX_PS][KTgMAX_FILE_NAME];

TgEXTN TgCHAR                               g_szKN_GPU_VT[KTgKN_GPU_MAX_VT][KTgMAX_FILE_NAME];

TgEXTN TgCHAR                               g_szKN_GPU_TX_IMG[KTgKN_GPU_MAX_TX_IMG][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_TX_CBE[KTgKN_GPU_MAX_TX_CBE][KTgMAX_FILE_NAME];
TgEXTN TgCHAR                               g_szKN_GPU_TX_VOL[KTgKN_GPU_MAX_TX_VOL][KTgMAX_FILE_NAME];
/*# defined(TgCOMPILE_GPU_SUPPORT) */
#endif

/*# TgS_DEBUG_KERNEL */
#endif


/* ====================================================================================================================================================================== */
#endif