diff options
| author | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-04-25 16:02:08 -0500 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-04-25 16:02:08 -0500 |
| commit | d11708e398c2f6377d9eac2b1f7248c62faab569 (patch) | |
| tree | 5778e794690c046ab4b0205d8f764960a5af168b /PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.h | |
| parent | PhysX 3.4, APEX 1.4 patch release @21821222 (diff) | |
| download | physx-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.h | 63 |
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 |