updated multi threading shared code on multiple platforms.

This commit is contained in:
ejcoumans
2007-06-15 02:06:56 +00:00
parent 718b73371f
commit ea4dfc15d5
12 changed files with 67 additions and 39 deletions

View File

@@ -23,13 +23,7 @@ subject to the following restrictions:
#ifdef WIN32
#include "SpuDoubleBuffer.h"
#else
#include "SPU_Common/SpuDefines.h"
#include "SPU_Common/SpuDoubleBuffer.h"
#include <spu_printf.h>
#endif //WIN32
#include "../SpuDoubleBuffer.h"
#include "LinearMath/btTransform.h"

View File

@@ -1,13 +1,13 @@
#include "SpuGatheringCollisionTask.h"
#include "SpuDoubleBuffer.h"
#include "../SpuDoubleBuffer.h"
#include "../SpuCollisionTaskProcess.h"
#include "../SpuGatheringCollisionDispatcher.h" //for SPU_BATCHSIZE_BROADPHASE_PAIRS
#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
#include "SpuContactManifoldCollisionAlgorithm.h"
#include "../SpuContactManifoldCollisionAlgorithm.h"
#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
#include "SpuContactResult.h"
#include "BulletCollision/CollisionShapes/btOptimizedBvh.h"
@@ -78,13 +78,23 @@ struct CollisionTask_LocalStoreMemory
#ifdef WIN32
void* createCollisionLocalStoreMemory()
{
return new CollisionTask_LocalStoreMemory;
};
#elif defined(__CELLOS_LV2__)
CollisionTask_LocalStoreMemory gLocalStoreMemory;
void* createCollisionLocalStoreMemory()
{
return &gLocalStoreMemory;
}
#endif
void ProcessSpuConvexConvexCollision(SpuCollisionPairInput* wuInput, CollisionTask_LocalStoreMemory* lsMemPtr, SpuContactResult& spuContacts);
@@ -654,6 +664,8 @@ void processCollisionTask(void* userPtr, void* lsMemPtr)
CollisionTask_LocalStoreMemory* colMemPtr = (CollisionTask_LocalStoreMemory*)lsMemPtr;
CollisionTask_LocalStoreMemory& lsMem = *(colMemPtr);
spu_printf("taskDescPtr=%llx\n",taskDescPtr);
SpuContactResult spuContacts;
uint64_t dmaInPtr = taskDesc.inPtr;
@@ -667,6 +679,7 @@ void processCollisionTask(void* userPtr, void* lsMemPtr)
for (unsigned int i = 0; i < numPages; i++)
{
// wait for back buffer dma and swap buffers
unsigned char *inputPtr = lsMem.g_workUnitTaskBuffers.swapBuffers();
@@ -688,6 +701,8 @@ void processCollisionTask(void* userPtr, void* lsMemPtr)
for (j = 0; j < numOnPage; j++)
{
spu_printf("numOnPage=%d\n",numOnPage);
#ifdef DEBUG_SPU_COLLISION_DETECTION
printMidphaseInput(&wuInputs[j]);
#endif //DEBUG_SPU_COLLISION_DETECTION

View File

@@ -18,6 +18,7 @@ subject to the following restrictions:
#include "SpuLocalSupport.h"
#if defined(DEBUG) || defined (_DEBUG)
#include <stdio.h> //for debug printf
#ifdef __SPU__