Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

312 lines
6.2 KiB

//========== Copyright © Valve Corporation, All rights reserved. ========
#if !defined( VJOBS_JOBPARAMS_SHARED_HDR ) && defined( _PS3 )
#define VJOBS_JOBPARAMS_SHARED_HDR
#include "ps3/spu_job_shared.h"
// these structure belong in its own headers in public/vjobs, but they're small and I don't want to pollute public with such trivialities
namespace job_ctxflush
{
struct JobParams_t
{
uint32 m_nUsefulCmdBytes;
uint32 m_nNewPcbringEnd;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, CellSpursJob128 >( pJob );
}
}
namespace job_gcmstateflush
{
typedef CellSpursJob128 JobDescriptor_t;
struct JobParams_t
{
uint32 m_nSpuDrawQueueSignal;
uint16 m_nSizeofDrawQueueUploadWords; // this may be unaligned, and it counts bytes from the unaligned start
uint16 m_nSkipDrawQueueWords;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
namespace job_hello
{
struct ALIGN128 Exchange_t
{
uint32 m_numSpusJoined;
uint32 m_nStage;
uint64 m_nIncrementer[2];
} ALIGN128_POST;
}
namespace job_zpass
{
typedef CellSpursJob128 JobDescriptor_t;
enum ConstEnum_t
{
PHASE_ZPREPASS,
PHASE_RENDER,
PHASE_END
};
struct JobParams_t
{
uint8 m_nPhase;
uint8 m_nDebuggerBreak;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
struct CellMP3Context;
// Edge Zlib compression job
namespace job_zlibdeflate
{
typedef CellSpursJob128 JobDescriptor_t;
struct JobParams_t
{
uint16 IsDone()const { return *(volatile uint16*)&m_nStatus; }
void * m_eaOutputCompressedData;
uint32 m_nMaxCompressedOutputSize;
void * m_eaInputUncompressedData;
uint32 m_nUncompressedSize;
uint32 m_nError;
// 0 : compressed data was larger than uncompressed or compression error, store uncompressed
// the MSB is set when data is compressed
uint32 m_nCompressedSizeOut;
uint16 m_nStatus; // will be non-0 when the job is done
uint16 m_nDebuggerBreak;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
// Edge Zlib decompression job
namespace job_zlibinflate
{
typedef CellSpursJob128 JobDescriptor_t;
struct JobParams_t
{
uint16 IsDone()const { return *(volatile uint16*)&m_nStatus; }
void *m_eaUncompressedOutput;
uint32 m_nExpectedUncompressedSize;
void *m_eaCompressed;
uint32 m_nCompressedSize;
// 0 : decompressed without error
uint32 m_nError;
uint16 m_nStatus; // will be non-0 when the job is done
uint16 m_nDebuggerBreak;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
namespace job_edgemlaa
{
typedef CellSpursJob128 JobDescriptor_t;
struct JobParams_t
{
uint32 m_nDebuggerBreakMask;
uint32 *m_eaJts; // patch this with RETURN
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
namespace job_buildindices
{
typedef CellSpursJob128 JobDescriptor_t;
struct JobParams_t
{
int m_testInt_IN;
int m_testInt_OUT;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
namespace job_buildrenderables
{
typedef CellSpursJob128 JobDescriptor_t;
struct JobParams_t
{
int m_testInt_IN;
int m_testInt_OUT;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
namespace job_buildworldlists
{
typedef CellSpursJob256 JobDescriptor_t;
struct JobParams_t
{
uint32 m_nDebugBreak;
uint32 m_eaWorldNodes;
int m_visframecount;
uint32 m_pSurfaces2;
uint32 m_pmarksurfaces;
uint32 m_pLeafs;
float m_ModelOrg[4];
bool m_bViewerInSolidSpace;
uint32 m_Disp_ParentSurfID_offset;
uint32 m_Disp_BB_offset;
uint32 m_Disp_Info_Size;
uint32 m_pDispInfos;
uint32 m_eaFrustum;
uint32 m_nAreaFrustum;
uint32 m_eaAreaFrustum;
uint32 m_eaRenderAreaBits;
uint32 m_eaDispInfoReferences;
uint32 m_nMaxVisitSurfaces;
uint32 m_nNumSortID;
bool m_bShadowDepth;
bool m_bDrawTopView;
bool m_bTopViewNoBackfaceCulling;
bool m_bTopViewNoVisCheck;
uint32 m_eaVolumeCuller;
float m_orthoCenter[2];
float m_orthoHalfDi[2];
int m_DrawFlags;
int m_buildViewID;
// inout
uint32 m_eaInfo;
uint32 m_eaRenderListLeaves;
// addr of output DMA structure
uint32 m_eaDMAOut;
// offset for CUtlVector Count
uint32 m_nUtlCountOffset;
};
struct ALIGN128 buildWorldListsDMAOut
{
// m_SortList
uint32 m_pSortList_m_list;
uint32 m_pSortList_m_groupsShared;
uint32 m_pSortList_m_groupIndices;
uint32 m_pSortList_m_sortGroupLists[4];
uint32 m_pSortList_m_listUtlPtr;
uint32 m_pSortList_m_groupsSharedUtlPtr;
uint32 m_pSortList_m_groupIndicesUtlPtr;
uint32 m_pSortList_m_sortGroupListsUtlPtr[4];
// m_DispSortList
uint32 m_pDispSortList_m_list;
uint32 m_pDispSortList_m_groupsShared;
uint32 m_pDispSortList_m_groupIndices;
uint32 m_pDispSortList_m_sortGroupLists[4];
uint32 m_pDispSortList_m_listUtlPtr;
uint32 m_pDispSortList_m_groupsSharedUtlPtr;
uint32 m_pDispSortList_m_groupIndicesUtlPtr;
uint32 m_pDispSortList_m_sortGroupListsUtlPtr[4];
// m_AlphaSurfaces
uint32 m_pAlphaSurfaces;
uint32 m_pAlphaSurfacesUtlPtr;
// m_DlightSurfaces
uint32 m_pDlightSurfaces[4];
uint32 m_pDlightSurfacesUtlPtr[4];
// m_PaintedSurfaces
uint32 m_pPaintedSurfaces[4];
uint32 m_pPaintedSurfacesUtlPtr[4];
// m_leaves
uint32 m_pLeaves;
uint32 m_pLeavesUtlPtr;
// m_VisitedSurfs
uint32 m_pVisitedSurfs;
// decal surf list
uint32 m_pDecalSurfsToAdd;
uint32 m_pDecalSurfsToAddUtlPtr;
// m_bSkyVisible
uint32 m_pSkyVisible;
// m_bWaterVisible
uint32 m_pWaterVisible;
} ALIGN128_POST;
struct decalSurfPair
{
uint32 m_surfID;
int m_renderGroup;
};
inline JobParams_t * GetJobParams( void *pJob )
{
return VjobGetJobParams< JobParams_t, JobDescriptor_t >( pJob );
}
}
#endif