diff --git a/Extras/BulletMultiThreaded/Makefile b/Extras/BulletMultiThreaded/Makefile index 1eb5f8289..aae5ac8f3 100644 --- a/Extras/BulletMultiThreaded/Makefile +++ b/Extras/BulletMultiThreaded/Makefile @@ -43,8 +43,8 @@ PPU_LIBRARIES= -lstdc++ -lsupc++ -lgcc -lgcov -lspe2 -lpthread -L../../lib/ibmsd PPU_AR=/usr/bin/ar MakeOut : - rm -f -R $(OUTDIR) ; mkdir $(OUTDIR) - +# rm -f -R $(OUTDIR) ; mkdir $(OUTDIR) + @echo "usage: make spu, make ppu, make all, or make clean" # SPU SpuTaskFile : MakeOut $(SPU_GCC) $(SPU_DEFFLAGS) $(SPU_CFLAGS) $(SPU_INCLUDEDIR) -o $(OUTDIR)/SpuTaskFile.o $(SPU_TASKFILE).cpp diff --git a/Extras/BulletMultiThreaded/SpuFakeDma.h b/Extras/BulletMultiThreaded/SpuFakeDma.h index 45bec865b..03c347166 100644 --- a/Extras/BulletMultiThreaded/SpuFakeDma.h +++ b/Extras/BulletMultiThreaded/SpuFakeDma.h @@ -39,7 +39,7 @@ #include -//#define DEBUG_DMA +#define DEBUG_DMA #ifdef DEBUG_DMA #define dUASSERT(a,b) if (!(a)) { printf(b);} #ifdef USE_ADDR64 diff --git a/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp b/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp index a391d66ef..e7f911495 100644 --- a/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp +++ b/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp @@ -138,7 +138,8 @@ void SpuContactResult::writeDoubleBufferedManifold(btPersistentManifold* lsManif memcpy(g_manifoldDmaExport.getFront(),lsManifold,sizeof(btPersistentManifold)); g_manifoldDmaExport.swapBuffers(); - g_manifoldDmaExport.backBufferDmaPut((uint64_t)mmManifold, sizeof(btPersistentManifold), DMA_TAG(9)); + uint64_t mmAddr = (uint32_t)mmManifold; + g_manifoldDmaExport.backBufferDmaPut(mmAddr, sizeof(btPersistentManifold), DMA_TAG(9)); // Should there be any kind of wait here? What if somebody tries to use this tag again? What if we call this function again really soon? //no, the swapBuffers does the wait } diff --git a/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h b/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h index c84fc0856..05262d85e 100644 --- a/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h +++ b/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h @@ -54,6 +54,8 @@ void* createCollisionLocalStoreMemory(); #include #include +//#define DEBUG_LIBSPE2_SPU_TASK + int main(unsigned long long speid, addr64 argp, addr64 envp) @@ -82,8 +84,10 @@ int main(unsigned long long speid, addr64 argp, addr64 envp) if( btLikely( received_message == Spu_Mailbox_Event_Task )) { +#ifdef DEBUG_LIBSPE2_SPU_TASK printf("SPU: received Spu_Mailbox_Event_Task\n"); - +#endif //DEBUG_LIBSPE2_SPU_TASK + // refresh the status cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0); cellDmaWaitTagStatusAll(DMA_MASK(3)); @@ -92,14 +96,20 @@ int main(unsigned long long speid, addr64 argp, addr64 envp) cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuGatherAndProcessPairsTaskDesc), DMA_TAG(3), 0, 0); cellDmaWaitTagStatusAll(DMA_MASK(3)); - +#ifdef DEBUG_LIBSPE2_SPU_TASK printf("SPU:processCollisionTask\n"); +#endif //DEBUG_LIBSPE2_SPU_TASK processCollisionTask((void*)&taskDesc, taskDesc.m_lsMemory); + +#ifdef DEBUG_LIBSPE2_SPU_TASK printf("SPU:finished processCollisionTask\n"); +#endif //DEBUG_LIBSPE2_SPU_TASK } else { +#ifdef DEBUG_LIBSPE2_SPU_TASK printf("SPU: received ShutDown\n"); +#endif //DEBUG_LIBSPE2_SPU_TASK if( btLikely( received_message == Spu_Mailbox_Event_Shutdown ) ) { shutdown = true; @@ -117,6 +127,7 @@ int main(unsigned long long speid, addr64 argp, addr64 envp) } + printf("SPU: shutdown\n"); return 0; } diff --git a/Extras/BulletMultiThreaded/SpuSampleTaskProcess.h b/Extras/BulletMultiThreaded/SpuSampleTaskProcess.h index 24f380713..473f80489 100644 --- a/Extras/BulletMultiThreaded/SpuSampleTaskProcess.h +++ b/Extras/BulletMultiThreaded/SpuSampleTaskProcess.h @@ -93,6 +93,8 @@ public: void * SamplelsMemoryFunc(); void SampleThreadFunc(void* userPtr,void* lsMemory); +//#define DEBUG_LIBSPE2_MAINLOOP + int main(unsigned long long speid, addr64 argp, addr64 envp) { printf("SPU is up \n"); @@ -125,7 +127,9 @@ int main(unsigned long long speid, addr64 argp, addr64 envp) break; case Spu_Mailbox_Event_Task: // refresh the status +#ifdef DEBUG_LIBSPE2_MAINLOOP printf("SPU recieved Task \n"); +#endif //DEBUG_LIBSPE2_MAINLOOP cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0); cellDmaWaitTagStatusAll(DMA_MASK(3));