diff --git a/Demos3/BasicGpuDemo/BasicGpuDemo.cpp b/Demos3/BasicGpuDemo/BasicGpuDemo.cpp index 1022513e1..080755df4 100644 --- a/Demos3/BasicGpuDemo/BasicGpuDemo.cpp +++ b/Demos3/BasicGpuDemo/BasicGpuDemo.cpp @@ -182,6 +182,10 @@ BasicGpuDemo::~BasicGpuDemo() void BasicGpuDemo::initPhysics() { + //use the Bullet 2.x btQuickprof for profiling of Bullet 3.x + b3SetCustomEnterProfileZoneFunc(CProfileManager::Start_Profile); + b3SetCustomLeaveProfileZoneFunc(CProfileManager::Stop_Profile); + setTexturing(true); setShadows(false);//too slow with many objects diff --git a/Demos3/GpuDemos/ParticleDemo.cpp b/Demos3/GpuDemos/ParticleDemo.cpp index cf8d95908..bbaaae7c7 100644 --- a/Demos3/GpuDemos/ParticleDemo.cpp +++ b/Demos3/GpuDemos/ParticleDemo.cpp @@ -19,7 +19,6 @@ static char* particleKernelsString = #include "GpuDemoInternalData.h" -#include "Bullet3Common/b3Quickprof.h" //1000000 particles //#define NUM_PARTICLES_X 100 diff --git a/Demos3/GpuDemos/broadphase/PairBench.cpp b/Demos3/GpuDemos/broadphase/PairBench.cpp index f3d2077e6..2cae268e9 100644 --- a/Demos3/GpuDemos/broadphase/PairBench.cpp +++ b/Demos3/GpuDemos/broadphase/PairBench.cpp @@ -1,5 +1,4 @@ #include "PairBench.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" #include "Bullet3Common/b3Quaternion.h" @@ -10,6 +9,7 @@ #include "OpenGLWindow/OpenGLInclude.h" #include "OpenGLWindow/GLInstanceRendererInternalData.h" #include "Bullet3OpenCL/ParallelPrimitives/b3LauncherCL.h" +#include "../../../btgui/Timing/b3Quickprof.h" static b3KeyboardCallback oldCallback = 0; extern bool gReset; @@ -172,7 +172,10 @@ void PairBench::initPhysics(const ConstructionInfo& ci) m_instancingRenderer = ci.m_instancingRenderer; +#ifndef B3_NO_PROFILE b3ProfileManager::CleanupMemory(); +#endif //B3_NO_PROFILE + int strideInBytes = 9*sizeof(float); int numVertices = sizeof(cube_vertices)/strideInBytes; int numIndices = sizeof(cube_vertices)/sizeof(int); diff --git a/Demos3/GpuDemos/main_opengl3core.cpp b/Demos3/GpuDemos/main_opengl3core.cpp index c6745cbe4..336fb8611 100644 --- a/Demos3/GpuDemos/main_opengl3core.cpp +++ b/Demos3/GpuDemos/main_opengl3core.cpp @@ -21,7 +21,6 @@ #include "OpenGLWindow/GLPrimitiveRenderer.h" #include "OpenGLWindow/GLInstancingRenderer.h" //#include "OpenGL3CoreRenderer.h" -#include "Bullet3Common/b3Quickprof.h" //#include "b3GpuDynamicsWorld.h" #include #include @@ -37,6 +36,9 @@ #include "rigidbody/GpuSphereScene.h" #include "rigidbody/Bullet2FileDemo.h" #include "softbody/GpuSoftBodyDemo.h" +#include "../btgui/Timing/b3Quickprof.h" + + //#include "BroadphaseBenchmark.h" @@ -412,6 +414,10 @@ int main(int argc, char* argv[]) { //b3OpenCLUtils::setCachePath("/Users/erwincoumans/develop/mycache"); + b3SetCustomEnterProfileZoneFunc(b3ProfileManager::Start_Profile); + b3SetCustomLeaveProfileZoneFunc(b3ProfileManager::Stop_Profile); + + b3SetCustomPrintfFunc(myprintf); b3Vector3 test(1,2,3); test.x = 1; @@ -456,7 +462,7 @@ int main(int argc, char* argv[]) - #ifndef B3_NO_PROFILE +#ifndef B3_NO_PROFILE b3ProfileManager::Reset(); #endif //B3_NO_PROFILE diff --git a/Demos3/GpuDemos/premake4.lua b/Demos3/GpuDemos/premake4.lua index 75e5f26c6..5d3076077 100644 --- a/Demos3/GpuDemos/premake4.lua +++ b/Demos3/GpuDemos/premake4.lua @@ -63,6 +63,10 @@ function createProject(vendor) "../../btgui/FontFiles/OpenSans.cpp", "../../btgui/stb_image/stb_image.cpp", "../../btgui/stb_image/stb_image.h", + "../../btgui/Timing/b3Quickprof.cpp", + "../../btgui/Timing/b3Quickprof.h", + "../../btgui/Timing/b3Clock.cpp", + "../../btgui/Timing/b3Clock.h", } if os.is("Windows") then diff --git a/Demos3/GpuDemos/rigidbody/BulletDataExtractor.cpp b/Demos3/GpuDemos/rigidbody/BulletDataExtractor.cpp index 4dfbd362d..b187cf20d 100644 --- a/Demos3/GpuDemos/rigidbody/BulletDataExtractor.cpp +++ b/Demos3/GpuDemos/rigidbody/BulletDataExtractor.cpp @@ -19,7 +19,6 @@ extern bool enableExperimentalCpuConcaveCollision; #include "OpenGLWindow/GLInstancingRenderer.h" -//#include "LinearMath/b3Quickprof.h" #include "Bullet3Common/b3Quaternion.h" #include "Bullet3Common/b3Matrix3x3.h" #include "Bullet3OpenCL/NarrowphaseCollision/b3ConvexUtility.h" diff --git a/Demos3/GpuDemos/rigidbody/ConcaveScene.cpp b/Demos3/GpuDemos/rigidbody/ConcaveScene.cpp index 092e6f260..abe0d8654 100644 --- a/Demos3/GpuDemos/rigidbody/ConcaveScene.cpp +++ b/Demos3/GpuDemos/rigidbody/ConcaveScene.cpp @@ -1,6 +1,5 @@ #include "ConcaveScene.h" #include "GpuRigidBodyDemo.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" diff --git a/Demos3/GpuDemos/rigidbody/GpuCompoundScene.cpp b/Demos3/GpuDemos/rigidbody/GpuCompoundScene.cpp index 0a2fa4543..f9977811d 100644 --- a/Demos3/GpuDemos/rigidbody/GpuCompoundScene.cpp +++ b/Demos3/GpuDemos/rigidbody/GpuCompoundScene.cpp @@ -1,6 +1,5 @@ #include "GpuCompoundScene.h" #include "GpuRigidBodyDemo.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" diff --git a/Demos3/GpuDemos/rigidbody/GpuConvexScene.cpp b/Demos3/GpuDemos/rigidbody/GpuConvexScene.cpp index 7e08e1c99..d531d4f92 100644 --- a/Demos3/GpuDemos/rigidbody/GpuConvexScene.cpp +++ b/Demos3/GpuDemos/rigidbody/GpuConvexScene.cpp @@ -1,6 +1,5 @@ #include "GpuConvexScene.h" #include "GpuRigidBodyDemo.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" diff --git a/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp b/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp index 3f8cc9a63..a46a01648 100644 --- a/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp +++ b/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp @@ -1,5 +1,4 @@ #include "GpuRigidBodyDemo.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" #include "Bullet3Common/b3Quaternion.h" diff --git a/Demos3/GpuDemos/rigidbody/GpuSphereScene.cpp b/Demos3/GpuDemos/rigidbody/GpuSphereScene.cpp index e6d9cf616..d4daa77ce 100644 --- a/Demos3/GpuDemos/rigidbody/GpuSphereScene.cpp +++ b/Demos3/GpuDemos/rigidbody/GpuSphereScene.cpp @@ -1,6 +1,5 @@ #include "GpuSphereScene.h" #include "GpuRigidBodyDemo.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" #include "Bullet3Common/b3Quaternion.h" diff --git a/Demos3/GpuDemos/softbody/GpuSoftBodyDemo.cpp b/Demos3/GpuDemos/softbody/GpuSoftBodyDemo.cpp index 3c566a50e..67304eaee 100644 --- a/Demos3/GpuDemos/softbody/GpuSoftBodyDemo.cpp +++ b/Demos3/GpuDemos/softbody/GpuSoftBodyDemo.cpp @@ -1,5 +1,4 @@ #include "GpuSoftBodyDemo.h" -#include "Bullet3Common/b3Quickprof.h" #include "OpenGLWindow/ShapeData.h" #include "OpenGLWindow/GLInstancingRenderer.h" #include "Bullet3Common/b3Quaternion.h" diff --git a/Demos3/GpuGuiInitialize/main.cpp b/Demos3/GpuGuiInitialize/main.cpp index 6692c93e1..0aac120fa 100644 --- a/Demos3/GpuGuiInitialize/main.cpp +++ b/Demos3/GpuGuiInitialize/main.cpp @@ -11,7 +11,6 @@ #include "OpenGLWindow/GLPrimitiveRenderer.h" #include "OpenGLWindow/GLInstancingRenderer.h" //#include "OpenGL3CoreRenderer.h" -#include "Bullet3Common/b3Quickprof.h" //#include "b3GpuDynamicsWorld.h" #include #include @@ -19,7 +18,7 @@ #include "OpenGLTrueTypeFont/opengl_fontstashcallbacks.h" #include "OpenGLWindow/GwenOpenGL3CoreRenderer.h" - +#include "../btgui/Timing/b3Quickprof.h" #include "Gwen/Gwen.h" #include "Gwen/Controls/Button.h" diff --git a/Demos3/GpuGuiInitialize/premake4.lua b/Demos3/GpuGuiInitialize/premake4.lua index 47915e1e7..e20ea04d7 100644 --- a/Demos3/GpuGuiInitialize/premake4.lua +++ b/Demos3/GpuGuiInitialize/premake4.lua @@ -49,10 +49,12 @@ function createProject(vendor) "../../src/Bullet3Geometry/b3ConvexHullComputer.cpp", "../../src/Bullet3Geometry/b3ConvexHullComputer.h", "../../src/Bullet3Common/b3AlignedAllocator.cpp", - "../../src/Bullet3Common/b3Quickprof.cpp", - "../../src/Bullet3Common/b3Quickprof.h", - "../../src/Bullet3Common/b3Logging.cpp", - "../../src/Bullet3Common/b3Logging.h", + "../../src/Bullet3Common/b3logging.cpp", + "../../src/Bullet3Common/b3logging.h", + "../../btgui/Timing/b3Quickprof.cpp", + "../../btgui/Timing/b3Quickprof.h", + "../../btgui/Timing/b3Clock.cpp", + "../../btgui/Timing/b3Clock.h", } diff --git a/btgui/GwenOpenGLTest/premake4.lua b/btgui/GwenOpenGLTest/premake4.lua index 484be8ba9..8146c80b7 100644 --- a/btgui/GwenOpenGLTest/premake4.lua +++ b/btgui/GwenOpenGLTest/premake4.lua @@ -42,8 +42,10 @@ "../../src/Bullet3Common/b3Logging.h", "../../src/Bullet3Common/b3Logging.cpp", "../../src/Bullet3Common/b3AlignedAllocator.cpp", - "../../src/Bullet3Common/b3Quickprof.cpp", - "../../src/Bullet3Common/b3Quickprof.h", + "../../btgui/Timing/b3Quickprof.cpp", + "../../btgui/Timing/b3Quickprof.h", + "../../btgui/Timing/b3Clock.cpp", + "../../btgui/Timing/b3Clock.h", "**.cpp", "**.h", } diff --git a/btgui/OpenGLTrueTypeFont/premake4.lua b/btgui/OpenGLTrueTypeFont/premake4.lua index 024def253..c941569c4 100644 --- a/btgui/OpenGLTrueTypeFont/premake4.lua +++ b/btgui/OpenGLTrueTypeFont/premake4.lua @@ -24,8 +24,10 @@ "../OpenGLWindow/LoadShader.cpp", "../OpenGLWindow/LoadShader.h", "../../src/Bullet3Common/b3AlignedAllocator.cpp", - "../../src/Bullet3Common/b3Quickprof.cpp", - "../../src/Bullet3Common/b3Quickprof.h" , + "../Timing/b3Quickprof.cpp", + "../Timing/b3Quickprof.h" , + "../Timing/b3Clock.cpp", + "../Timing/b3Clock.h" , "fontstash.cpp", "fontstash.h", "opengl_fontstashcallbacks.cpp", diff --git a/btgui/OpenGLWindow/GLInstancingRenderer.cpp b/btgui/OpenGLWindow/GLInstancingRenderer.cpp index 597d1ee0a..c69ef242e 100644 --- a/btgui/OpenGLWindow/GLInstancingRenderer.cpp +++ b/btgui/OpenGLWindow/GLInstancingRenderer.cpp @@ -29,7 +29,6 @@ subject to the following restrictions: #include #include "Bullet3Common/b3Vector3.h" #include "Bullet3Common/b3Quaternion.h" -#include "Bullet3Common/b3Quickprof.h" #include "Bullet3Common/b3Matrix3x3.h" #include "LoadShader.h" diff --git a/btgui/OpenGLWindow/premake4.lua b/btgui/OpenGLWindow/premake4.lua index de648d5d6..b50702eda 100644 --- a/btgui/OpenGLWindow/premake4.lua +++ b/btgui/OpenGLWindow/premake4.lua @@ -44,8 +44,10 @@ "../../src/Bullet3Geometry/b3ConvexHullComputer.cpp", "../../src/Bullet3Geometry/b3ConvexHullComputer.h", "../../src/Bullet3Common/b3AlignedAllocator.cpp", - "../../src/Bullet3Common/b3Quickprof.cpp", - "../../src/Bullet3Common/b3Quickprof.h" + "../Timing/b3Quickprof.cpp", + "../Timing/b3Quickprof.h", + "../Timing/b3Clock.cpp", + "../Timing/b3Clock.h", } if os.is("Windows") then diff --git a/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvh.cpp b/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvh.cpp index 2f755abba..1b13be75e 100644 --- a/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvh.cpp +++ b/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvh.cpp @@ -651,7 +651,7 @@ void b3DynamicBvh::extractLeaves(const b3DbvtNode* node,b3AlignedObjectArray #include -#include "LinearMath/b3QuickProf.h" + /* q6600,2.4ghz diff --git a/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvhBroadphase.h b/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvhBroadphase.h index 7685290ed..c06612bf6 100644 --- a/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvhBroadphase.h +++ b/src/Bullet3Collision/BroadPhaseCollision/b3DynamicBvhBroadphase.h @@ -36,7 +36,7 @@ subject to the following restrictions: #if B3_DBVT_BP_PROFILE #define B3_DBVT_BP_PROFILING_RATE 256 -#include "LinearMath/b3Quickprof.h" + #endif diff --git a/src/Bullet3Common/b3Logging.cpp b/src/Bullet3Common/b3Logging.cpp index 01965a0a2..5c647d313 100644 --- a/src/Bullet3Common/b3Logging.cpp +++ b/src/Bullet3Common/b3Logging.cpp @@ -82,6 +82,37 @@ void b3OutputErrorMessageVarArgsInternal(const char *str, ...) va_end(argList); } + + +void b3EnterProfileZoneDefault(const char* name) +{ +} +void b3LeaveProfileZoneDefault() +{ +} +static b3EnterProfileZoneFunc* b3s_enterFunc = b3EnterProfileZoneDefault; +static b3LeaveProfileZoneFunc* b3s_leaveFunc = b3LeaveProfileZoneDefault; +void b3EnterProfileZone(const char* name) +{ + (b3s_enterFunc)(name); +} +void b3LeaveProfileZone() +{ + (b3s_leaveFunc)(); +} + +void b3SetCustomEnterProfileZoneFunc(b3EnterProfileZoneFunc* enterFunc) +{ + b3s_enterFunc = enterFunc; +} +void b3SetCustomLeaveProfileZoneFunc(b3LeaveProfileZoneFunc* leaveFunc) +{ + b3s_leaveFunc = leaveFunc; +} + + + + #ifndef _WIN32 #undef vsprintf_s #endif diff --git a/src/Bullet3Common/b3Logging.h b/src/Bullet3Common/b3Logging.h index a366c58c6..8d8ad4dcb 100644 --- a/src/Bullet3Common/b3Logging.h +++ b/src/Bullet3Common/b3Logging.h @@ -2,21 +2,6 @@ #ifndef B3_LOGGING_H #define B3_LOGGING_H - -typedef void (b3PrintfFunc)(const char* msg); -typedef void (b3WarningMessageFunc)(const char* msg); -typedef void (b3ErrorMessageFunc)(const char* msg); - -///The developer can route b3Printf output using their own implementation -void b3SetCustomPrintfFunc(b3PrintfFunc* printfFunc); -void b3SetCustomWarningMessageFunc(b3WarningMessageFunc* warningMsgFunc); -void b3SetCustomErrorMessageFunc(b3ErrorMessageFunc* errorMsgFunc); - -///Don't use those internal functions directly, use the b3Printf or b3SetCustomPrintfFunc instead (or warning/error version) -void b3OutputPrintfVarArgsInternal(const char *str, ...); -void b3OutputWarningMessageVarArgsInternal(const char *str, ...); -void b3OutputErrorMessageVarArgsInternal(const char *str, ...); - ///We add the do/while so that the statement "if (condition) b3Printf("test"); else {...}" would fail ///You can also customize the message by uncommenting out a different line below #define b3Printf(...) b3OutputPrintfVarArgsInternal(__VA_ARGS__) @@ -28,4 +13,57 @@ void b3OutputErrorMessageVarArgsInternal(const char *str, ...); #define b3Warning(...) do {b3OutputWarningMessageVarArgsInternal("b3Warning[%s,%d]:\n",__FILE__,__LINE__);b3OutputWarningMessageVarArgsInternal(__VA_ARGS__); }while(0) #define b3Error(...) do {b3OutputErrorMessageVarArgsInternal("b3Error[%s,%d]:\n",__FILE__,__LINE__);b3OutputErrorMessageVarArgsInternal(__VA_ARGS__); } while(0) + +#ifndef B3_NO_PROFILE + +void b3EnterProfileZone(const char* name); +void b3LeaveProfileZone(); + +class b3ProfileZone +{ +public: + b3ProfileZone(const char* name) + { + b3EnterProfileZone( name ); + } + + ~b3ProfileZone() + { + b3LeaveProfileZone(); + } +}; + +#define B3_PROFILE( name ) b3ProfileZone __profile( name ) + +#else //B3_NO_PROFILE + +#define B3_PROFILE( name ) +#define b3StartProfile(a) +#define b3StopProfile + +#endif //#ifndef B3_NO_PROFILE + + +typedef void (b3PrintfFunc)(const char* msg); +typedef void (b3WarningMessageFunc)(const char* msg); +typedef void (b3ErrorMessageFunc)(const char* msg); +typedef void (b3EnterProfileZoneFunc)(const char* msg); +typedef void (b3LeaveProfileZoneFunc)(); + +///The developer can route b3Printf output using their own implementation +void b3SetCustomPrintfFunc(b3PrintfFunc* printfFunc); +void b3SetCustomWarningMessageFunc(b3WarningMessageFunc* warningMsgFunc); +void b3SetCustomErrorMessageFunc(b3ErrorMessageFunc* errorMsgFunc); + +///Set custom profile zone functions (zones can be nested) +void b3SetCustomEnterProfileZoneFunc(b3EnterProfileZoneFunc* enterFunc); +void b3SetCustomLeaveProfileZoneFunc(b3LeaveProfileZoneFunc* leaveFunc); + +///Don't use those internal functions directly, use the b3Printf or b3SetCustomPrintfFunc instead (or warning/error version) +void b3OutputPrintfVarArgsInternal(const char *str, ...); +void b3OutputWarningMessageVarArgsInternal(const char *str, ...); +void b3OutputErrorMessageVarArgsInternal(const char *str, ...); + + + #endif//B3_LOGGING_H \ No newline at end of file diff --git a/src/Bullet3Common/b3Quickprof.cpp b/src/Bullet3Common/b3Quickprof.cpp deleted file mode 100644 index 466e4536c..000000000 --- a/src/Bullet3Common/b3Quickprof.cpp +++ /dev/null @@ -1,643 +0,0 @@ -/* -Copyright (c) 2003-2013 Erwin Coumans http://bulletphysics.org - -This software is provided 'as-is', without any express or implied warranty. -In no event will the authors be held liable for any damages arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -*/ - -/* - -*************************************************************************************************** -** -** profile.cpp -** -** Real-Time Hierarchical Profiling for Game Programming Gems 3 -** -** by Greg Hjelstrom & Byon Garrabrant -** -***************************************************************************************************/ - -// Credits: The Clock class was inspired by the Timer classes in -// Ogre (www.ogre3d.org). - -#include "b3Quickprof.h" -#include "b3MinMax.h" - -#ifndef B3_NO_PROFILE - - -static b3Clock b3s_profileClock; - - -#ifdef __CELLOS_LV2__ -#include -#include -#include -#endif - -#if defined (SUNOS) || defined (__SUNOS__) -#include -#endif - -#if defined(WIN32) || defined(_WIN32) - -#define B3_USE_WINDOWS_TIMERS -#define WIN32_LEAN_AND_MEAN -#define NOWINRES -#define NOMCX -#define NOIME - -#ifdef _XBOX - #include -#else //_XBOX - #include -#endif //_XBOX - -#include - - -#else //_WIN32 -#include -#endif //_WIN32 - - - -struct b3ClockData -{ - -#ifdef B3_USE_WINDOWS_TIMERS - LARGE_INTEGER mClockFrequency; - DWORD mStartTick; - LONGLONG mPrevElapsedTime; - LARGE_INTEGER mStartTime; -#else -#ifdef __CELLOS_LV2__ - uint64_t mStartTime; -#else - struct timeval mStartTime; -#endif -#endif //__CELLOS_LV2__ - -}; - -///The b3Clock is a portable basic clock that measures accurate time in seconds, use for profiling. -b3Clock::b3Clock() -{ - m_data = new b3ClockData; -#ifdef B3_USE_WINDOWS_TIMERS - QueryPerformanceFrequency(&m_data->mClockFrequency); -#endif - reset(); -} - -b3Clock::~b3Clock() -{ - delete m_data; -} - -b3Clock::b3Clock(const b3Clock& other) -{ - m_data = new b3ClockData; - *m_data = *other.m_data; -} - -b3Clock& b3Clock::operator=(const b3Clock& other) -{ - *m_data = *other.m_data; - return *this; -} - - - /// Resets the initial reference time. -void b3Clock::reset() -{ -#ifdef B3_USE_WINDOWS_TIMERS - QueryPerformanceCounter(&m_data->mStartTime); - m_data->mStartTick = GetTickCount(); - m_data->mPrevElapsedTime = 0; -#else -#ifdef __CELLOS_LV2__ - - typedef uint64_t ClockSize; - ClockSize newTime; - //__asm __volatile__( "mftb %0" : "=r" (newTime) : : "memory"); - SYS_TIMEBASE_GET( newTime ); - m_data->mStartTime = newTime; -#else - gettimeofday(&m_data->mStartTime, 0); -#endif -#endif -} - -/// Returns the time in ms since the last call to reset or since -/// the b3Clock was created. -unsigned long int b3Clock::getTimeMilliseconds() -{ -#ifdef B3_USE_WINDOWS_TIMERS - LARGE_INTEGER currentTime; - QueryPerformanceCounter(¤tTime); - LONGLONG elapsedTime = currentTime.QuadPart - - m_data->mStartTime.QuadPart; - // Compute the number of millisecond ticks elapsed. - unsigned long msecTicks = (unsigned long)(1000 * elapsedTime / - m_data->mClockFrequency.QuadPart); - // Check for unexpected leaps in the Win32 performance counter. - // (This is caused by unexpected data across the PCI to ISA - // bridge, aka south bridge. See Microsoft KB274323.) - unsigned long elapsedTicks = GetTickCount() - m_data->mStartTick; - signed long msecOff = (signed long)(msecTicks - elapsedTicks); - if (msecOff < -100 || msecOff > 100) - { - // Adjust the starting time forwards. - LONGLONG msecAdjustment = b3Min(msecOff * - m_data->mClockFrequency.QuadPart / 1000, elapsedTime - - m_data->mPrevElapsedTime); - m_data->mStartTime.QuadPart += msecAdjustment; - elapsedTime -= msecAdjustment; - - // Recompute the number of millisecond ticks elapsed. - msecTicks = (unsigned long)(1000 * elapsedTime / - m_data->mClockFrequency.QuadPart); - } - - // Store the current elapsed time for adjustments next time. - m_data->mPrevElapsedTime = elapsedTime; - - return msecTicks; -#else - -#ifdef __CELLOS_LV2__ - uint64_t freq=sys_time_get_timebase_frequency(); - double dFreq=((double) freq) / 1000.0; - typedef uint64_t ClockSize; - ClockSize newTime; - SYS_TIMEBASE_GET( newTime ); - //__asm __volatile__( "mftb %0" : "=r" (newTime) : : "memory"); - - return (unsigned long int)((double(newTime-m_data->mStartTime)) / dFreq); -#else - - struct timeval currentTime; - gettimeofday(¤tTime, 0); - return (currentTime.tv_sec - m_data->mStartTime.tv_sec) * 1000 + - (currentTime.tv_usec - m_data->mStartTime.tv_usec) / 1000; -#endif //__CELLOS_LV2__ -#endif -} - - /// Returns the time in us since the last call to reset or since - /// the Clock was created. -unsigned long int b3Clock::getTimeMicroseconds() -{ -#ifdef B3_USE_WINDOWS_TIMERS - LARGE_INTEGER currentTime; - QueryPerformanceCounter(¤tTime); - LONGLONG elapsedTime = currentTime.QuadPart - - m_data->mStartTime.QuadPart; - - // Compute the number of millisecond ticks elapsed. - unsigned long msecTicks = (unsigned long)(1000 * elapsedTime / - m_data->mClockFrequency.QuadPart); - - // Check for unexpected leaps in the Win32 performance counter. - // (This is caused by unexpected data across the PCI to ISA - // bridge, aka south bridge. See Microsoft KB274323.) - unsigned long elapsedTicks = GetTickCount() - m_data->mStartTick; - signed long msecOff = (signed long)(msecTicks - elapsedTicks); - if (msecOff < -100 || msecOff > 100) - { - // Adjust the starting time forwards. - LONGLONG msecAdjustment = b3Min(msecOff * - m_data->mClockFrequency.QuadPart / 1000, elapsedTime - - m_data->mPrevElapsedTime); - m_data->mStartTime.QuadPart += msecAdjustment; - elapsedTime -= msecAdjustment; - } - - // Store the current elapsed time for adjustments next time. - m_data->mPrevElapsedTime = elapsedTime; - - // Convert to microseconds. - unsigned long usecTicks = (unsigned long)(1000000 * elapsedTime / - m_data->mClockFrequency.QuadPart); - - return usecTicks; -#else - -#ifdef __CELLOS_LV2__ - uint64_t freq=sys_time_get_timebase_frequency(); - double dFreq=((double) freq)/ 1000000.0; - typedef uint64_t ClockSize; - ClockSize newTime; - //__asm __volatile__( "mftb %0" : "=r" (newTime) : : "memory"); - SYS_TIMEBASE_GET( newTime ); - - return (unsigned long int)((double(newTime-m_data->mStartTime)) / dFreq); -#else - - struct timeval currentTime; - gettimeofday(¤tTime, 0); - return (currentTime.tv_sec - m_data->mStartTime.tv_sec) * 1000000 + - (currentTime.tv_usec - m_data->mStartTime.tv_usec); -#endif//__CELLOS_LV2__ -#endif -} - - - - - -inline void b3Profile_Get_Ticks(unsigned long int * ticks) -{ - *ticks = b3s_profileClock.getTimeMicroseconds(); -} - -inline float b3Profile_Get_Tick_Rate(void) -{ -// return 1000000.f; - return 1000.f; - -} - - - -/*************************************************************************************************** -** -** b3ProfileNode -** -***************************************************************************************************/ - -/*********************************************************************************************** - * INPUT: * - * name - pointer to a static string which is the name of this profile node * - * parent - parent pointer * - * * - * WARNINGS: * - * The name is assumed to be a static pointer, only the pointer is stored and compared for * - * efficiency reasons. * - *=============================================================================================*/ -b3ProfileNode::b3ProfileNode( const char * name, b3ProfileNode * parent ) : - Name( name ), - TotalCalls( 0 ), - TotalTime( 0 ), - StartTime( 0 ), - RecursionCounter( 0 ), - Parent( parent ), - Child( NULL ), - Sibling( NULL ), - m_userPtr(0) -{ - Reset(); -} - - -void b3ProfileNode::CleanupMemory() -{ - delete ( Child); - Child = NULL; - delete ( Sibling); - Sibling = NULL; -} - -b3ProfileNode::~b3ProfileNode( void ) -{ - delete ( Child); - delete ( Sibling); -} - - -/*********************************************************************************************** - * INPUT: * - * name - static string pointer to the name of the node we are searching for * - * * - * WARNINGS: * - * All profile names are assumed to be static strings so this function uses pointer compares * - * to find the named node. * - *=============================================================================================*/ -b3ProfileNode * b3ProfileNode::Get_Sub_Node( const char * name ) -{ - // Try to find this sub node - b3ProfileNode * child = Child; - while ( child ) { - if ( child->Name == name ) { - return child; - } - child = child->Sibling; - } - - // We didn't find it, so add it - - b3ProfileNode * node = new b3ProfileNode( name, this ); - node->Sibling = Child; - Child = node; - return node; -} - - -void b3ProfileNode::Reset( void ) -{ - TotalCalls = 0; - TotalTime = 0.0f; - - - if ( Child ) { - Child->Reset(); - } - if ( Sibling ) { - Sibling->Reset(); - } -} - - -void b3ProfileNode::Call( void ) -{ - TotalCalls++; - if (RecursionCounter++ == 0) { - b3Profile_Get_Ticks(&StartTime); - } -} - - -bool b3ProfileNode::Return( void ) -{ - if ( --RecursionCounter == 0 && TotalCalls != 0 ) { - unsigned long int time; - b3Profile_Get_Ticks(&time); - time-=StartTime; - TotalTime += (float)time / b3Profile_Get_Tick_Rate(); - } - return ( RecursionCounter == 0 ); -} - - -/*************************************************************************************************** -** -** b3ProfileIterator -** -***************************************************************************************************/ -b3ProfileIterator::b3ProfileIterator( b3ProfileNode * start ) -{ - CurrentParent = start; - CurrentChild = CurrentParent->Get_Child(); -} - - -void b3ProfileIterator::First(void) -{ - CurrentChild = CurrentParent->Get_Child(); -} - - -void b3ProfileIterator::Next(void) -{ - CurrentChild = CurrentChild->Get_Sibling(); -} - - -bool b3ProfileIterator::Is_Done(void) -{ - return CurrentChild == NULL; -} - - -void b3ProfileIterator::Enter_Child( int index ) -{ - CurrentChild = CurrentParent->Get_Child(); - while ( (CurrentChild != NULL) && (index != 0) ) { - index--; - CurrentChild = CurrentChild->Get_Sibling(); - } - - if ( CurrentChild != NULL ) { - CurrentParent = CurrentChild; - CurrentChild = CurrentParent->Get_Child(); - } -} - - -void b3ProfileIterator::Enter_Parent( void ) -{ - if ( CurrentParent->Get_Parent() != NULL ) { - CurrentParent = CurrentParent->Get_Parent(); - } - CurrentChild = CurrentParent->Get_Child(); -} - - -/*************************************************************************************************** -** -** b3ProfileManager -** -***************************************************************************************************/ - -b3ProfileNode b3ProfileManager::Root( "Root", NULL ); -b3ProfileNode * b3ProfileManager::CurrentNode = &b3ProfileManager::Root; -int b3ProfileManager::FrameCounter = 0; -unsigned long int b3ProfileManager::ResetTime = 0; - - -/*********************************************************************************************** - * b3ProfileManager::Start_Profile -- Begin a named profile * - * * - * Steps one level deeper into the tree, if a child already exists with the specified name * - * then it accumulates the profiling; otherwise a new child node is added to the profile tree. * - * * - * INPUT: * - * name - name of this profiling record * - * * - * WARNINGS: * - * The string used is assumed to be a static string; pointer compares are used throughout * - * the profiling code for efficiency. * - *=============================================================================================*/ -void b3ProfileManager::Start_Profile( const char * name ) -{ - if (name != CurrentNode->Get_Name()) { - CurrentNode = CurrentNode->Get_Sub_Node( name ); - } - - CurrentNode->Call(); -} - - -/*********************************************************************************************** - * b3ProfileManager::Stop_Profile -- Stop timing and record the results. * - *=============================================================================================*/ -void b3ProfileManager::Stop_Profile( void ) -{ - // Return will indicate whether we should back up to our parent (we may - // be profiling a recursive function) - if (CurrentNode->Return()) { - CurrentNode = CurrentNode->Get_Parent(); - } -} - - -/*********************************************************************************************** - * b3ProfileManager::Reset -- Reset the contents of the profiling system * - * * - * This resets everything except for the tree structure. All of the timing data is reset. * - *=============================================================================================*/ -void b3ProfileManager::Reset( void ) -{ - b3s_profileClock.reset(); - Root.Reset(); - Root.Call(); - FrameCounter = 0; - b3Profile_Get_Ticks(&ResetTime); -} - - -/*********************************************************************************************** - * b3ProfileManager::Increment_Frame_Counter -- Increment the frame counter * - *=============================================================================================*/ -void b3ProfileManager::Increment_Frame_Counter( void ) -{ - FrameCounter++; -} - - -/*********************************************************************************************** - * b3ProfileManager::Get_Time_Since_Reset -- returns the elapsed time since last reset * - *=============================================================================================*/ -float b3ProfileManager::Get_Time_Since_Reset( void ) -{ - unsigned long int time; - b3Profile_Get_Ticks(&time); - time -= ResetTime; - return (float)time / b3Profile_Get_Tick_Rate(); -} - -#include - -void b3ProfileManager::dumpRecursive(b3ProfileIterator* profileIterator, int spacing) -{ - profileIterator->First(); - if (profileIterator->Is_Done()) - return; - - float accumulated_time=0,parent_time = profileIterator->Is_Root() ? b3ProfileManager::Get_Time_Since_Reset() : profileIterator->Get_Current_Parent_Total_Time(); - int i; - int frames_since_reset = b3ProfileManager::Get_Frame_Count_Since_Reset(); - for (i=0;iGet_Current_Parent_Name(), parent_time ); - float totalTime = 0.f; - - - int numChildren = 0; - - for (i = 0; !profileIterator->Is_Done(); i++,profileIterator->Next()) - { - numChildren++; - float current_total_time = profileIterator->Get_Current_Total_Time(); - accumulated_time += current_total_time; - float fraction = parent_time > B3_EPSILON ? (current_total_time / parent_time) * 100 : 0.f; - { - int i; for (i=0;iGet_Current_Name(), fraction,(current_total_time / (double)frames_since_reset),profileIterator->Get_Current_Total_Calls()); - totalTime += current_total_time; - //recurse into children - } - - if (parent_time < accumulated_time) - { - b3Printf("what's wrong\n"); - } - for (i=0;i B3_EPSILON ? ((parent_time - accumulated_time) / parent_time) * 100 : 0.f, parent_time - accumulated_time); - - for (i=0;iEnter_Child(i); - dumpRecursive(profileIterator,spacing+3); - profileIterator->Enter_Parent(); - } -} - - - - -void b3ProfileManager::dumpAll() -{ - b3ProfileIterator* profileIterator = 0; - profileIterator = b3ProfileManager::Get_Iterator(); - - dumpRecursive(profileIterator,0); - - b3ProfileManager::Release_Iterator(profileIterator); -} - - -void b3ProfileManager::dumpRecursive(FILE* f, b3ProfileIterator* profileIterator, int spacing) -{ - profileIterator->First(); - if (profileIterator->Is_Done()) - return; - - float accumulated_time=0,parent_time = profileIterator->Is_Root() ? b3ProfileManager::Get_Time_Since_Reset() : profileIterator->Get_Current_Parent_Total_Time(); - int i; - int frames_since_reset = b3ProfileManager::Get_Frame_Count_Since_Reset(); - for (i=0;iGet_Current_Parent_Name(), parent_time ); - float totalTime = 0.f; - - - int numChildren = 0; - - for (i = 0; !profileIterator->Is_Done(); i++,profileIterator->Next()) - { - numChildren++; - float current_total_time = profileIterator->Get_Current_Total_Time(); - accumulated_time += current_total_time; - float fraction = parent_time > B3_EPSILON ? (current_total_time / parent_time) * 100 : 0.f; - { - int i; for (i=0;iGet_Current_Name(), fraction,(current_total_time / (double)frames_since_reset),profileIterator->Get_Current_Total_Calls()); - totalTime += current_total_time; - //recurse into children - } - - if (parent_time < accumulated_time) - { - fprintf(f,"what's wrong\n"); - } - for (i=0;i B3_EPSILON ? ((parent_time - accumulated_time) / parent_time) * 100 : 0.f, parent_time - accumulated_time); - - for (i=0;iEnter_Child(i); - dumpRecursive(f,profileIterator,spacing+3); - profileIterator->Enter_Parent(); - } -} - - - - -void b3ProfileManager::dumpAll(FILE* f) -{ - b3ProfileIterator* profileIterator = 0; - profileIterator = b3ProfileManager::Get_Iterator(); - - dumpRecursive(f, profileIterator,0); - - b3ProfileManager::Release_Iterator(profileIterator); -} - - - -#endif //B3_NO_PROFILE diff --git a/src/Bullet3Common/b3Quickprof.h b/src/Bullet3Common/b3Quickprof.h deleted file mode 100644 index 62d0d1f71..000000000 --- a/src/Bullet3Common/b3Quickprof.h +++ /dev/null @@ -1,218 +0,0 @@ -/* -Copyright (c) 2003-2013 Erwin Coumans http://bulletphysics.org - -This software is provided 'as-is', without any express or implied warranty. -In no event will the authors be held liable for any damages arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -*/ - -/*************************************************************************************************** -** -** Real-Time Hierarchical Profiling for Game Programming Gems 3 -** -** by Greg Hjelstrom & Byon Garrabrant -** -***************************************************************************************************/ - -// Credits: The Clock class was inspired by the Timer classes in -// Ogre (www.ogre3d.org). - - - -#ifndef B3_QUICK_PROF_H -#define B3_QUICK_PROF_H - -//To disable built-in profiling, please comment out next line -//#define B3_NO_PROFILE 1 -#ifndef B3_NO_PROFILE -#include //@todo remove this, backwards compatibility -#include "b3Scalar.h" -#include "b3AlignedAllocator.h" -#include - - - - - -#define B3_USE_CLOCK 1 - -#ifdef B3_USE_CLOCK - -///The b3Clock is a portable basic clock that measures accurate time in seconds, use for profiling. -class b3Clock -{ -public: - b3Clock(); - - b3Clock(const b3Clock& other); - b3Clock& operator=(const b3Clock& other); - - ~b3Clock(); - - /// Resets the initial reference time. - void reset(); - - /// Returns the time in ms since the last call to reset or since - /// the b3Clock was created. - unsigned long int getTimeMilliseconds(); - - /// Returns the time in us since the last call to reset or since - /// the Clock was created. - unsigned long int getTimeMicroseconds(); -private: - struct b3ClockData* m_data; -}; - -#endif //B3_USE_CLOCK - - - - -///A node in the Profile Hierarchy Tree -class b3ProfileNode { - -public: - b3ProfileNode( const char * name, b3ProfileNode * parent ); - ~b3ProfileNode( void ); - - b3ProfileNode * Get_Sub_Node( const char * name ); - - b3ProfileNode * Get_Parent( void ) { return Parent; } - b3ProfileNode * Get_Sibling( void ) { return Sibling; } - b3ProfileNode * Get_Child( void ) { return Child; } - - void CleanupMemory(); - void Reset( void ); - void Call( void ); - bool Return( void ); - - const char * Get_Name( void ) { return Name; } - int Get_Total_Calls( void ) { return TotalCalls; } - float Get_Total_Time( void ) { return TotalTime; } - void* GetUserPointer() const {return m_userPtr;} - void SetUserPointer(void* ptr) { m_userPtr = ptr;} -protected: - - const char * Name; - int TotalCalls; - float TotalTime; - unsigned long int StartTime; - int RecursionCounter; - - b3ProfileNode * Parent; - b3ProfileNode * Child; - b3ProfileNode * Sibling; - void* m_userPtr; -}; - -///An iterator to navigate through the tree -class b3ProfileIterator -{ -public: - // Access all the children of the current parent - void First(void); - void Next(void); - bool Is_Done(void); - bool Is_Root(void) { return (CurrentParent->Get_Parent() == 0); } - - void Enter_Child( int index ); // Make the given child the new parent - void Enter_Largest_Child( void ); // Make the largest child the new parent - void Enter_Parent( void ); // Make the current parent's parent the new parent - - // Access the current child - const char * Get_Current_Name( void ) { return CurrentChild->Get_Name(); } - int Get_Current_Total_Calls( void ) { return CurrentChild->Get_Total_Calls(); } - float Get_Current_Total_Time( void ) { return CurrentChild->Get_Total_Time(); } - - void* Get_Current_UserPointer( void ) { return CurrentChild->GetUserPointer(); } - void Set_Current_UserPointer(void* ptr) {CurrentChild->SetUserPointer(ptr);} - // Access the current parent - const char * Get_Current_Parent_Name( void ) { return CurrentParent->Get_Name(); } - int Get_Current_Parent_Total_Calls( void ) { return CurrentParent->Get_Total_Calls(); } - float Get_Current_Parent_Total_Time( void ) { return CurrentParent->Get_Total_Time(); } - - - -protected: - - b3ProfileNode * CurrentParent; - b3ProfileNode * CurrentChild; - - - b3ProfileIterator( b3ProfileNode * start ); - friend class b3ProfileManager; -}; - - -///The Manager for the Profile system -class b3ProfileManager { -public: - static void Start_Profile( const char * name ); - static void Stop_Profile( void ); - - static void CleanupMemory(void) - { - Root.CleanupMemory(); - } - - static void Reset( void ); - static void Increment_Frame_Counter( void ); - static int Get_Frame_Count_Since_Reset( void ) { return FrameCounter; } - static float Get_Time_Since_Reset( void ); - - static b3ProfileIterator * Get_Iterator( void ) - { - - return new b3ProfileIterator( &Root ); - } - static void Release_Iterator( b3ProfileIterator * iterator ) { delete ( iterator); } - - static void dumpRecursive(b3ProfileIterator* profileIterator, int spacing); - static void dumpAll(); - - static void dumpRecursive(FILE* f, b3ProfileIterator* profileIterator, int spacing); - static void dumpAll(FILE* f); - -private: - static b3ProfileNode Root; - static b3ProfileNode * CurrentNode; - static int FrameCounter; - static unsigned long int ResetTime; -}; - - -///ProfileSampleClass is a simple way to profile a function's scope -///Use the B3_PROFILE macro at the start of scope to time -class b3ProfileSample { -public: - b3ProfileSample( const char * name ) - { - b3ProfileManager::Start_Profile( name ); - } - - ~b3ProfileSample( void ) - { - b3ProfileManager::Stop_Profile(); - } -}; - - -#define B3_PROFILE( name ) b3ProfileSample __profile( name ) - -#else - -#define B3_PROFILE( name ) - -#endif //#ifndef B3_NO_PROFILE - - - -#endif //B3_QUICK_PROF_H - - diff --git a/src/Bullet3Dynamics/ConstraintSolver/b3PgsJacobiSolver.cpp b/src/Bullet3Dynamics/ConstraintSolver/b3PgsJacobiSolver.cpp index 1712ac221..162c9b2c9 100644 --- a/src/Bullet3Dynamics/ConstraintSolver/b3PgsJacobiSolver.cpp +++ b/src/Bullet3Dynamics/ConstraintSolver/b3PgsJacobiSolver.cpp @@ -25,7 +25,7 @@ subject to the following restrictions: #include "b3TypedConstraint.h" #include #include "Bullet3Common/b3StackAlloc.h" -#include "Bullet3Common/b3Quickprof.h" + //#include "b3SolverBody.h" //#include "b3SolverConstraint.h" #include "Bullet3Common/b3AlignedObjectArray.h" diff --git a/src/Bullet3OpenCL/BroadphaseCollision/b3GpuSapBroadphase.cpp b/src/Bullet3OpenCL/BroadphaseCollision/b3GpuSapBroadphase.cpp index d6cb05890..22756c685 100644 --- a/src/Bullet3OpenCL/BroadphaseCollision/b3GpuSapBroadphase.cpp +++ b/src/Bullet3OpenCL/BroadphaseCollision/b3GpuSapBroadphase.cpp @@ -2,7 +2,7 @@ #include "b3GpuSapBroadphase.h" #include "Bullet3Common/b3Vector3.h" #include "Bullet3OpenCL/ParallelPrimitives/b3LauncherCL.h" -#include "Bullet3Common/b3Quickprof.h" + #include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h" #include "kernels/sapKernels.h" #include "kernels/sapFastKernels.h" diff --git a/src/Bullet3OpenCL/NarrowphaseCollision/b3ConvexHullContact.cpp b/src/Bullet3OpenCL/NarrowphaseCollision/b3ConvexHullContact.cpp index 1acffbfc5..fca41e6c9 100644 --- a/src/Bullet3OpenCL/NarrowphaseCollision/b3ConvexHullContact.cpp +++ b/src/Bullet3OpenCL/NarrowphaseCollision/b3ConvexHullContact.cpp @@ -28,7 +28,7 @@ int b3g_actualSATPairTests=0; typedef b3AlignedObjectArray b3VertexArray; -#include "Bullet3Common/b3Quickprof.h" + #include //for FLT_MAX #include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h" diff --git a/src/Bullet3OpenCL/Raycast/b3GpuRaycast.cpp b/src/Bullet3OpenCL/Raycast/b3GpuRaycast.cpp index df6606273..db0d18bcb 100644 --- a/src/Bullet3OpenCL/Raycast/b3GpuRaycast.cpp +++ b/src/Bullet3OpenCL/Raycast/b3GpuRaycast.cpp @@ -2,7 +2,7 @@ #include "b3GpuRaycast.h" #include "Bullet3OpenCL/NarrowphaseCollision/b3Collidable.h" #include "Bullet3Collision/NarrowPhaseCollision/b3RigidBodyCL.h" -#include "Bullet3Common/b3Quickprof.h" + #include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h" #include "Bullet3OpenCL/ParallelPrimitives/b3OpenCLArray.h" #include "Bullet3OpenCL/ParallelPrimitives/b3LauncherCL.h" diff --git a/src/Bullet3OpenCL/RigidBody/b3GpuBatchingPgsSolver.cpp b/src/Bullet3OpenCL/RigidBody/b3GpuBatchingPgsSolver.cpp index 7ce6b8f85..9fdb4c3a6 100644 --- a/src/Bullet3OpenCL/RigidBody/b3GpuBatchingPgsSolver.cpp +++ b/src/Bullet3OpenCL/RigidBody/b3GpuBatchingPgsSolver.cpp @@ -5,7 +5,7 @@ bool b3GpuSolveConstraint = true; #include "b3GpuBatchingPgsSolver.h" #include "Bullet3OpenCL/ParallelPrimitives/b3RadixSort32CL.h" -#include "Bullet3Common/b3Quickprof.h" + #include "Bullet3OpenCL/ParallelPrimitives/b3LauncherCL.h" #include "Bullet3OpenCL/ParallelPrimitives/b3BoundSearchCL.h" #include "Bullet3OpenCL/ParallelPrimitives/b3PrefixScanCL.h" diff --git a/src/Bullet3OpenCL/RigidBody/b3GpuRigidBodyPipeline.cpp b/src/Bullet3OpenCL/RigidBody/b3GpuRigidBodyPipeline.cpp index e00f058a3..ecb566e6b 100644 --- a/src/Bullet3OpenCL/RigidBody/b3GpuRigidBodyPipeline.cpp +++ b/src/Bullet3OpenCL/RigidBody/b3GpuRigidBodyPipeline.cpp @@ -31,7 +31,6 @@ bool dumpContactStats = false; #include "b3GpuBatchingPgsSolver.h" #include "b3Solver.h" -#include "Bullet3Common/b3Quickprof.h" #include "b3Config.h" #include "Bullet3OpenCL/Raycast/b3GpuRaycast.h" diff --git a/src/Bullet3OpenCL/RigidBody/b3Solver.cpp b/src/Bullet3OpenCL/RigidBody/b3Solver.cpp index 89672641b..b5b8680ef 100644 --- a/src/Bullet3OpenCL/RigidBody/b3Solver.cpp +++ b/src/Bullet3OpenCL/RigidBody/b3Solver.cpp @@ -37,7 +37,6 @@ bool useNewBatchingKernel = true; #include "kernels/batchingKernelsNew.h" -#include "Bullet3Common/b3Quickprof.h" #include "Bullet3OpenCL/ParallelPrimitives/b3LauncherCL.h" #include "Bullet3Common/b3Vector3.h" diff --git a/test/OpenCL/BitonicSort/main.cpp b/test/OpenCL/BitonicSort/main.cpp index 4f9a4d2c7..dc304209d 100644 --- a/test/OpenCL/BitonicSort/main.cpp +++ b/test/OpenCL/BitonicSort/main.cpp @@ -18,8 +18,8 @@ subject to the following restrictions: #include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h" #include "Bullet3OpenCL/ParallelPrimitives/b3OpenCLArray.h" #include "Bullet3Common/b3Int2.h" -#include "Bullet3Common/b3Quickprof.h" +#include "../btgui/Timing/b3Clock.h" #include "b3BitonicSort.h" #include diff --git a/test/OpenCL/BitonicSort/premake4.lua b/test/OpenCL/BitonicSort/premake4.lua index cae959c2c..c45828a61 100644 --- a/test/OpenCL/BitonicSort/premake4.lua +++ b/test/OpenCL/BitonicSort/premake4.lua @@ -21,12 +21,12 @@ function createProject(vendor) "b3BitonicSort.cpp", "../../../src/Bullet3Common/b3AlignedAllocator.cpp", "../../../src/Bullet3Common/b3AlignedAllocator.h", - "../../../src/Bullet3Common/b3Quickprof.cpp", - "../../../src/Bullet3Common/b3Quickprof.h", "../../../src/Bullet3OpenCL/Initialize/b3OpenCLUtils.cpp", "../../../src/Bullet3OpenCL/Initialize/b3OpenCLUtils.h", "../../../src/Bullet3Common/b3Logging.cpp", "../../../src/Bullet3Common/b3Logging.h", + "../../../btgui/Timing/b3Clock.cpp", + "../../../btgui/Timing/b3Clock.h", } end diff --git a/test/OpenCL/RadixSortBenchmark/main.cpp b/test/OpenCL/RadixSortBenchmark/main.cpp index 9e10cd7ab..7de5856ac 100644 --- a/test/OpenCL/RadixSortBenchmark/main.cpp +++ b/test/OpenCL/RadixSortBenchmark/main.cpp @@ -66,7 +66,7 @@ #include "Bullet3OpenCL/ParallelPrimitives/b3RadixSort32CL.h" #include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h" -#include "Bullet3Common/b3Quickprof.h" +#include "../btgui/Timing/b3Clock.h" cl_context g_cxMainContext; cl_device_id g_device; diff --git a/test/OpenCL/RadixSortBenchmark/premake4.lua b/test/OpenCL/RadixSortBenchmark/premake4.lua index 2f413ff0f..2b9e600be 100644 --- a/test/OpenCL/RadixSortBenchmark/premake4.lua +++ b/test/OpenCL/RadixSortBenchmark/premake4.lua @@ -27,10 +27,12 @@ function createProject(vendor) "../../../src/Bullet3Common/b3AlignedAllocator.cpp", "../../../src/Bullet3Common/b3AlignedAllocator.h", "../../../src/Bullet3Common/b3AlignedObjectArray.h", - "../../../src/Bullet3Common/b3Quickprof.cpp", - "../../../src/Bullet3Common/b3Quickprof.h", "../../../src/Bullet3Common/b3Logging.cpp", "../../../src/Bullet3Common/b3Logging.h", + "../../../btgui/Timing/b3Quickprof.cpp", + "../../../btgui/Timing/b3Quickprof.h", + "../../../btgui/Timing/b3Clock.cpp", + "../../../btgui/Timing/b3Clock.h", }