aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h
diff options
context:
space:
mode:
authorSheikh Dawood Abdul Ajees <[email protected]>2017-04-25 16:02:08 -0500
committerSheikh Dawood Abdul Ajees <[email protected]>2017-04-25 16:02:08 -0500
commitd11708e398c2f6377d9eac2b1f7248c62faab569 (patch)
tree5778e794690c046ab4b0205d8f764960a5af168b /PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h
parentPhysX 3.4, APEX 1.4 patch release @21821222 (diff)
downloadphysx-3.4-d11708e398c2f6377d9eac2b1f7248c62faab569.tar.xz
physx-3.4-d11708e398c2f6377d9eac2b1f7248c62faab569.zip
PhysX 3.4, APEX 1.4 patch release @22017166
Diffstat (limited to 'PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h')
-rw-r--r--PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h63
1 files changed, 37 insertions, 26 deletions
diff --git a/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h b/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h
index 69369c6b..902241e1 100644
--- a/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h
+++ b/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h
@@ -37,6 +37,8 @@
#include "PsSList.h"
#include "PxDefaultCpuDispatcher.h"
#include "ExtSharedQueueEntryPool.h"
+#include "foundation/PxProfiler.h"
+#include "task/PxTask.h"
namespace physx
{
@@ -55,50 +57,59 @@ namespace Ext
friend class TaskQueueHelper;
private:
- DefaultCpuDispatcher() : mQueueEntryPool(0) {}
- ~DefaultCpuDispatcher();
-
+ DefaultCpuDispatcher() : mQueueEntryPool(0) {}
+ ~DefaultCpuDispatcher();
public:
- DefaultCpuDispatcher(PxU32 numThreads, PxU32* affinityMasks);
+ DefaultCpuDispatcher(PxU32 numThreads, PxU32* affinityMasks);
//---------------------------------------------------------------------------------
- // physx::CpuDispatcher implementation
+ // PxCpuDispatcher implementation
//---------------------------------------------------------------------------------
- virtual void submitTask(PxBaseTask& task);
- virtual PxU32 getWorkerCount() const;
+ virtual void submitTask(PxBaseTask& task);
+ virtual PxU32 getWorkerCount() const { return mNumThreads; }
//---------------------------------------------------------------------------------
// PxDefaultCpuDispatcher implementation
//---------------------------------------------------------------------------------
- virtual void release();
+ virtual void release();
- virtual void setRunProfiled(bool runProfiled) { mRunProfiled = runProfiled; }
+ virtual void setRunProfiled(bool runProfiled) { mRunProfiled = runProfiled; }
- virtual bool getRunProfiled() const { return mRunProfiled; }
+ virtual bool getRunProfiled() const { return mRunProfiled; }
//---------------------------------------------------------------------------------
// DefaultCpuDispatcher
//---------------------------------------------------------------------------------
- PxBaseTask* getJob();
- PxBaseTask* stealJob();
- PxBaseTask* fetchNextTask();
- void runTask(PxBaseTask& task);
-
- void waitForWork() { mWorkReady.wait(); }
- void resetWakeSignal();
+ PxBaseTask* getJob();
+ PxBaseTask* stealJob();
+ PxBaseTask* fetchNextTask();
+ PX_FORCE_INLINE void runTask(PxBaseTask& task)
+ {
+#if PX_SUPPORT_PXTASK_PROFILING
+ if(mRunProfiled)
+ {
+ PX_PROFILE_ZONE(task.getName(), task.getContextId());
+ task.run();
+ }
+ else
+#endif
+ task.run();
+ }
- static void getAffinityMasks(PxU32* affinityMasks, PxU32 threadCount);
+ void waitForWork() { mWorkReady.wait(); }
+ void resetWakeSignal();
+ static void getAffinityMasks(PxU32* affinityMasks, PxU32 threadCount);
protected:
- CpuWorkerThread* mWorkerThreads;
- SharedQueueEntryPool<> mQueueEntryPool;
- Ps::SList mJobList;
- Ps::Sync mWorkReady;
- PxU8* mThreadNames;
- PxU32 mNumThreads;
- bool mShuttingDown;
- bool mRunProfiled;
+ CpuWorkerThread* mWorkerThreads;
+ SharedQueueEntryPool<> mQueueEntryPool;
+ Ps::SList mJobList;
+ Ps::Sync mWorkReady;
+ PxU8* mThreadNames;
+ PxU32 mNumThreads;
+ bool mShuttingDown;
+ bool mRunProfiled;
};
#if PX_VC