GPUCMD_FlushAndRun

This commit is contained in:
smea 2014-11-02 21:10:56 -08:00
parent 58a1f0c68e
commit 974b1094f3
2 changed files with 11 additions and 1 deletions

View File

@ -5,6 +5,7 @@ void GPU_Reset(u32* gxbuf, u32* gpuBuf, u32 gpuBufSize);
void GPUCMD_SetBuffer(u32* adr, u32 size, u32 offset); void GPUCMD_SetBuffer(u32* adr, u32 size, u32 offset);
void GPUCMD_Run(u32* gxbuf); void GPUCMD_Run(u32* gxbuf);
void GPUCMD_FlushAndRun(u32* gxbuf);
void GPUCMD_Add(u32 cmd, u32* param, u32 paramlength); void GPUCMD_Add(u32 cmd, u32* param, u32 paramlength);
void GPUCMD_AddSingleParam(u32 cmd, u32 param); void GPUCMD_AddSingleParam(u32 cmd, u32 param);
void GPUCMD_Finalize(); void GPUCMD_Finalize();

View File

@ -28,11 +28,20 @@ void GPUCMD_SetBuffer(u32* adr, u32 size, u32 offset)
void GPUCMD_Run(u32* gxbuf) void GPUCMD_Run(u32* gxbuf)
{ {
//should wait for some event here
GX_SetCommandList_First(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, NULL, 0, NULL, 0); GX_SetCommandList_First(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, NULL, 0, NULL, 0);
GX_SetCommandList_Last(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, 0x0); GX_SetCommandList_Last(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, 0x0);
} }
extern u32 __linear_heap_size;
extern u32* __linear_heap;
void GPUCMD_FlushAndRun(u32* gxbuf)
{
//take advantage of GX_SetCommandList_First to flush gsp heap
GX_SetCommandList_First(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, __linear_heap, __linear_heap_size, NULL, 0);
GX_SetCommandList_Last(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, 0x0);
}
void GPUCMD_Add(u32 cmd, u32* param, u32 paramlength) void GPUCMD_Add(u32 cmd, u32* param, u32 paramlength)
{ {
u32 zero=0x0; u32 zero=0x0;