]> Chaos Git - corbenik/ctrulib.git/commitdiff
some GSP and GPU fixes
authorsmea <smealum@gmail.com>
Fri, 29 Aug 2014 05:53:45 +0000 (22:53 -0700)
committersmea <smealum@gmail.com>
Fri, 29 Aug 2014 05:53:45 +0000 (22:53 -0700)
libctru/source/gpu/gpu.c
libctru/source/services/gsp.c

index 5c995f8f09dd978e2f151ac896275f1782a65bca..d6685e3ad6c2bd233d01111afa9d93229f1fa067 100644 (file)
@@ -10,6 +10,8 @@ u32* gpuCmdBuf;
 u32 gpuCmdBufSize;
 u32 gpuCmdBufOffset;
 
+extern Handle gspEvent;
+
 void GPU_Init(Handle *gsphandle)
 {
        gpuCmdBuf=NULL;
@@ -26,6 +28,7 @@ void GPUCMD_SetBuffer(u32* adr, u32 size, u32 offset)
 
 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);
 }
@@ -62,8 +65,6 @@ void GPUCMD_AddSingleParam(u32 cmd, u32 param)
 
 void GPUCMD_Finalize()
 {
-       GPUCMD_AddSingleParam(0x000F0111, 0x00000001);
-       GPUCMD_AddSingleParam(0x000F0110, 0x00000001);
        GPUCMD_AddSingleParam(0x000F0010, 0x12345678);
 }
 
@@ -382,6 +383,9 @@ void GPU_DrawArray(GPU_Primitive_t primitive, u32 n)
        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)
index f0f72d3c9dc9af562aeea9f099c46900d9f6f639..bd76035f27e984b9a392cacc2b4bb98e74613349 100644 (file)
@@ -354,9 +354,6 @@ Result GSPGPU_SubmitGxCommand(u32* sharedGspCmdBuf, u32 gxCommand[0x8], Handle*
 {
        if(!sharedGspCmdBuf || !gxCommand)return -1;
        
-       svcWaitSynchronization(gspEvent, 0x55bcb0);
-       svcClearEvent(gspEvent);
-
        u32 cmdBufHeader;
        __asm__ __volatile__ ("ldrex %[result], [%[adr]]" : [result] "=r" (cmdBufHeader) : [adr] "r" (sharedGspCmdBuf));