u32 gpuCmdBufSize;
u32 gpuCmdBufOffset;
+extern Handle gspEvent;
+
void GPU_Init(Handle *gsphandle)
{
gpuCmdBuf=NULL;
void GPUCMD_Run(u32* gxbuf)
{
+ //should wait for some event here
GX_SetCommandList_First(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, NULL, 0, NULL, 0);
GX_SetCommandList_Last(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, 0x0);
}
void GPUCMD_Finalize()
{
- GPUCMD_AddSingleParam(0x000F0111, 0x00000001);
- GPUCMD_AddSingleParam(0x000F0110, 0x00000001);
GPUCMD_AddSingleParam(0x000F0010, 0x12345678);
}
GPUCMD_AddSingleParam(0x000F022E, 0x00000001);
GPUCMD_AddSingleParam(0x00010245, 0x00000001);
GPUCMD_AddSingleParam(0x000F0231, 0x00000001);
+
+ GPUCMD_AddSingleParam(0x000F0111, 0x00000001);
+ GPUCMD_AddSingleParam(0x000F0110, 0x00000001);
}
void GPU_DrawElements(GPU_Primitive_t primitive, u32* indexArray, u32 n)
{
if(!sharedGspCmdBuf || !gxCommand)return -1;
- svcWaitSynchronization(gspEvent, 0x55bcb0);
- svcClearEvent(gspEvent);
-
u32 cmdBufHeader;
__asm__ __volatile__ ("ldrex %[result], [%[adr]]" : [result] "=r" (cmdBufHeader) : [adr] "r" (sharedGspCmdBuf));