From d30d5283c676926ae833bfdb5f87bc7d7e51e042 Mon Sep 17 00:00:00 2001 From: smea Date: Mon, 25 Aug 2014 21:48:00 -0700 Subject: [PATCH] GSP/GFX stuff --- libctru/source/gfx.c | 2 -- libctru/source/services/gsp.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libctru/source/gfx.c b/libctru/source/gfx.c index bbc0dd8..e3c78c4 100644 --- a/libctru/source/gfx.c +++ b/libctru/source/gfx.c @@ -26,8 +26,6 @@ u8* gspHeap; u32* gxCmdBuf; extern u32 __gsp_heap_size; - - // TODO: this function is not thread-safe and you cannot 'free' this memory. void* gfxAllocLinear(size_t size) { diff --git a/libctru/source/services/gsp.c b/libctru/source/services/gsp.c index af95c0f..377547a 100644 --- a/libctru/source/services/gsp.c +++ b/libctru/source/services/gsp.c @@ -356,6 +356,9 @@ Result GSPGPU_RestoreVramSysArea(Handle* handle) Result GSPGPU_SubmitGxCommand(u32* sharedGspCmdBuf, u32 gxCommand[0x8], Handle* handle) { if(!sharedGspCmdBuf || !gxCommand)return -1; + + svcWaitSynchronization(gspEvent, 0x55bcb0); + svcClearEvent(gspEvent); u32 cmdBufHeader; __asm__ ("ldrex %[result], [%[adr]]" : [result] "=r" (cmdBufHeader) : [adr] "r" (sharedGspCmdBuf));