First commit of 2008, Happy New Year!

Add option to compile without btClock and without profiling: comment out USE_BT_CLOCK, and #define BT_NO_PROFILE
Fixed typo/case in #include "LinearMath/btQuickProf.h", in SpuParallelSolver.cpp
Removed unnecessary files from libxml CMakeLists.txt
This commit is contained in:
ejcoumans
2008-01-03 04:42:00 +00:00
parent 4a5af68c04
commit d051e2eacb
29 changed files with 14661 additions and 14647 deletions

View File

@@ -83,7 +83,9 @@ DemoApplication* CreatDemo(btDemoEntry* entry)
demo->getDynamicsWorld()->setDebugDrawer(&gDebugDrawer);
}
#ifndef BT_NO_PROFILE
CProfileManager::Reset();
#endif //BT_NO_PROFILE
return demo;

View File

@@ -37,8 +37,7 @@ void BasicDemo::clientMoveAndDisplay()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//simple dynamics world doesn't handle fixed-time-stepping
float ms = m_clock.getTimeMicroseconds();
m_clock.reset();
float ms = getDeltaTimeMicroseconds();
///step the simulation
if (m_dynamicsWorld)

View File

@@ -212,8 +212,7 @@ void BspDemo::initPhysics(char* bspfilename)
void BspDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
m_dynamicsWorld->stepSimulation(dt);

View File

@@ -226,8 +226,8 @@ void CcdPhysicsDemo::clientMoveAndDisplay()
#endif //USE_KINEMATIC_GROUND
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
// printf("dt = %f: ",dt);
if (m_dynamicsWorld)

View File

@@ -208,8 +208,7 @@ void ColladaDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
m_dynamicsWorld->stepSimulation(dt);

View File

@@ -50,7 +50,9 @@ public:
int min_ms;
int max_ms;
#ifdef USE_BT_CLOCK
btClock frame_timer;
#endif //USE_BT_CLOCK
btScalar dx;
btScalar min_x;
@@ -146,7 +148,9 @@ public:
void cast (btCollisionWorld* cw)
{
#ifdef USE_BT_CLOCK
frame_timer.reset ();
#endif //USE_BT_CLOCK
for (int i = 0; i < NUMRAYS_IN_BAR; i++)
{
btCollisionWorld::ClosestConvexResultCallback cb(source[i], dest[i]);
@@ -165,7 +169,9 @@ public:
}
}
#ifdef USE_BT_CLOCK
ms += frame_timer.getTimeMilliseconds ();
#endif //USE_BT_CLOCK
frame_counter++;
if (frame_counter > 50)
{
@@ -359,8 +365,7 @@ void ConcaveConvexcastDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
if (m_animatedMesh)
{

View File

@@ -308,8 +308,7 @@ void ConcaveDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
if (m_animatedMesh)
{

View File

@@ -48,7 +48,9 @@ public:
int min_ms;
int max_ms;
#ifdef USE_BT_CLOCK
btClock frame_timer;
#endif //USE_BT_CLOCK
btScalar dx;
btScalar min_x;
@@ -137,7 +139,10 @@ public:
void cast (btCollisionWorld* cw)
{
#ifdef USE_BT_CLOCK
frame_timer.reset ();
#endif //USE_BT_CLOCK
for (int i = 0; i < NUMRAYS_IN_BAR; i++)
{
btCollisionWorld::ClosestRayResultCallback cb(source[i], dest[i]);
@@ -154,7 +159,9 @@ public:
}
}
#ifdef USE_BT_CLOCK
ms += frame_timer.getTimeMilliseconds ();
#endif //USE_BT_CLOCK
frame_counter++;
if (frame_counter > 50)
{
@@ -333,8 +340,7 @@ void ConcaveRaycastDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
if (m_animatedMesh)
{

View File

@@ -209,8 +209,7 @@ void ConstraintDemo::clientMoveAndDisplay()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = float(m_clock.getTimeMicroseconds()) * 0.000001f;
m_clock.reset();
float dt = float(getDeltaTimeMicroseconds()) * 0.000001f;
//printf("dt = %f: ",dt);
{

View File

@@ -367,8 +367,7 @@ void ConvexDecompositionDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
m_dynamicsWorld->stepSimulation(dt);

View File

@@ -300,8 +300,7 @@ void MotorDemo::clientMoveAndDisplay()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//simple dynamics world doesn't handle fixed-time-stepping
float ms = m_clock.getTimeMicroseconds();
m_clock.reset();
float ms = getDeltaTimeMicroseconds();
float minFPS = 1000000.f/60.f;
if (ms > minFPS)
ms = minFPS;

View File

@@ -109,8 +109,8 @@ void GenericJointDemo::clientMoveAndDisplay()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//simple dynamics world doesn't handle fixed-time-stepping
float ms = m_clock.getTimeMicroseconds();
m_clock.reset();
float ms = getDeltaTimeMicroseconds();
float minFPS = 1000000.f/60.f;
if (ms > minFPS)
ms = minFPS;

View File

@@ -582,7 +582,7 @@ void GimpactConcaveDemo::clientMoveAndDisplay()
#endif //USE_KINEMATIC_GROUND
unsigned long int time = m_clock.getTimeMilliseconds();
unsigned long int time = getDeltaTimeMicroseconds()/btScalar(1000);
printf("%i time %i ms \n",m_steps_done,time);
//#ifdef BULLET_GIMPACT
@@ -596,7 +596,6 @@ void GimpactConcaveDemo::clientMoveAndDisplay()
m_clock.reset();
m_dynamicsWorld->stepSimulation(dt);
//optional but useful: debug drawing

View File

@@ -1886,8 +1886,8 @@ void ConcaveDemo::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = float(m_clock.getTimeMicroseconds()) * 0.000001f;
m_clock.reset();
float dt = float(getDeltaTimeMicroseconds()) * 0.000001f;
m_dynamicsWorld->stepSimulation(dt);
//optional but useful: debug drawing

View File

@@ -137,8 +137,8 @@ void MultiThreadedDemo::clientMoveAndDisplay()
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
// printf("dt = %f: ",dt);
if (m_dynamicsWorld)

View File

@@ -72,15 +72,19 @@ m_shootBoxShape(0),
m_singleStep(false),
m_idle(false)
{
#ifndef BT_NO_PROFILE
m_profileIterator = CProfileManager::Get_Iterator();
#endif //BT_NO_PROFILE
}
DemoApplication::~DemoApplication()
{
#ifndef BT_NO_PROFILE
CProfileManager::Release_Iterator(m_profileIterator);
#endif //BT_NO_PROFILE
if (m_shootBoxShape)
delete m_shootBoxShape;
@@ -242,6 +246,7 @@ void DemoApplication::keyboardCallback(unsigned char key, int x, int y)
m_lastKey = 0;
#ifndef BT_NO_PROFILE
if (key >= 0x31 && key < 0x37)
{
int child = key-0x31;
@@ -251,7 +256,7 @@ void DemoApplication::keyboardCallback(unsigned char key, int x, int y)
{
m_profileIterator->Enter_Parent();
}
#endif //BT_NO_PROFILE
switch (key)
{
@@ -789,6 +794,7 @@ void DemoApplication::displayProfileString(int xOffset,int yStart,char* message)
void DemoApplication::showProfileInfo(float& xOffset,float& yStart, float yIncr)
{
#ifndef BT_NO_PROFILE
static double time_since_reset = 0.f;
if (!m_idle)
@@ -851,6 +857,7 @@ void DemoApplication::showProfileInfo(float& xOffset,float& yStart, float yIncr)
yStart += yIncr;
}
#endif//BT_NO_PROFILE

View File

@@ -44,8 +44,9 @@ class DemoApplication
class CProfileIterator* m_profileIterator;
protected:
#ifdef USE_BT_CLOCK
btClock m_clock;
#endif //USE_BT_CLOCK
///this is the most important class
btDynamicsWorld* m_dynamicsWorld;
@@ -127,6 +128,16 @@ public:
return m_cameraTargetPosition;
}
btScalar getDeltaTimeMicroseconds()
{
#ifdef USE_BT_CLOCK
btScalar dt = m_clock.getTimeMicroseconds();
m_clock.reset();
return dt;
#else
return btScalar(16666.);
#endif
}
///glut callbacks

View File

@@ -364,8 +364,8 @@ void RagdollDemo::clientMoveAndDisplay()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//simple dynamics world doesn't handle fixed-time-stepping
float ms = m_clock.getTimeMicroseconds();
m_clock.reset();
float ms = getDeltaTimeMicroseconds();
float minFPS = 1000000.f/60.f;
if (ms > minFPS)
ms = minFPS;

View File

@@ -142,8 +142,8 @@ void UserCollisionAlgorithm::clientMoveAndDisplay()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
m_dynamicsWorld->stepSimulation(dt);

View File

@@ -440,8 +440,8 @@ void VehicleDemo::clientMoveAndDisplay()
}
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
m_clock.reset();
float dt = getDeltaTimeMicroseconds() * 0.000001f;
if (m_dynamicsWorld)
{
//during idle mode, just run 1 simulation step maximum

View File

@@ -28,7 +28,7 @@ Written by: Marten Svanfeldt
#include "BulletCollision/CollisionShapes/btCollisionShape.h"
#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
#include "BulletDynamics/ConstraintSolver/btTypedConstraint.h"
#include "LinearMath/btQuickProf.h"
#include "LinearMath/btQuickprof.h"
#include "SpuSolverTask/SpuParallellSolverTask.h"

View File

@@ -596,7 +596,7 @@ float computeConcavity(unsigned int vcount,
if ( ret == QE_OK )
{
#if 0
float bmin[3];
float bmax[3];
@@ -609,6 +609,7 @@ float computeConcavity(unsigned int vcount,
center.x = bmin[0] + dx*0.5f;
center.y = bmin[1] + dy*0.5f;
center.z = bmin[2] + dz*0.5f;
#endif
volume = computeMeshVolume2( result.mOutputVertices, result.mNumFaces, result.mIndices );

View File

@@ -23,8 +23,9 @@ subject to the following restrictions:
#include "GIMPACT/Bullet/btGImpactBvh.h"
#include "LinearMath/btQuickprof.h"
btClock g_tree_clock;
#ifdef TRI_COLLISION_PROFILING
btClock g_tree_clock;
float g_accum_tree_collision_time = 0;
int g_count_traversing = 0;
@@ -59,6 +60,7 @@ float btGImpactBvh::getAverageTreeCollisionTime()
}
#endif //TRI_COLLISION_PROFILING
/////////////////////// btBvhTree /////////////////////////////////
@@ -482,12 +484,16 @@ void btGImpactBvh::find_collision(btGImpactBvh * boxset0, const btTransform & tr
trans_cache_1to0.calc_from_homogenic(trans0,trans1);
#ifdef TRI_COLLISION_PROFILING
bt_begin_gim02_tree_time();
#endif //TRI_COLLISION_PROFILING
_find_collision_pairs_recursive(
boxset0,boxset1,
&collision_pairs,trans_cache_1to0,0,0,true);
#ifdef TRI_COLLISION_PROFILING
bt_end_gim02_tree_time();
#endif //TRI_COLLISION_PROFILING
}

View File

@@ -63,6 +63,7 @@ public:
//////////////////////////////////////////////////////////////////////////////////////////////
#ifdef TRI_COLLISION_PROFILING
btClock g_triangle_clock;
@@ -79,7 +80,7 @@ void bt_end_gim02_tri_time()
g_accum_triangle_collision_time += g_triangle_clock.getTimeMicroseconds();
g_count_triangle_collision++;
}
#endif //TRI_COLLISION_PROFILING
//! Retrieving shapes shapes
/*!
Declared here due of insuficent space on Pool allocators
@@ -163,6 +164,7 @@ public:
//!@}
#ifdef TRI_COLLISION_PROFILING
//! Gets the average time in miliseconds of tree collisions
float btGImpactCollisionAlgorithm::getAverageTreeCollisionTime()
@@ -185,6 +187,7 @@ float btGImpactCollisionAlgorithm::getAverageTriangleCollisionTime()
return avgtime;
}
#endif //TRI_COLLISION_PROFILING

View File

@@ -24,6 +24,7 @@ subject to the following restrictions:
#include "GIMPACT/Bullet/btGImpactQuantizedBvh.h"
#include "LinearMath/btQuickprof.h"
#ifdef TRI_COLLISION_PROFILING
btClock g_q_tree_clock;
@@ -61,6 +62,7 @@ float btGImpactQuantizedBvh::getAverageTreeCollisionTime()
}
#endif //TRI_COLLISION_PROFILING
/////////////////////// btQuantizedBvhTree /////////////////////////////////
@@ -511,13 +513,17 @@ void btGImpactQuantizedBvh::find_collision(btGImpactQuantizedBvh * boxset0, cons
trans_cache_1to0.calc_from_homogenic(trans0,trans1);
#ifdef TRI_COLLISION_PROFILING
bt_begin_gim02_q_tree_time();
#endif //TRI_COLLISION_PROFILING
_find_quantized_collision_pairs_recursive(
boxset0,boxset1,
&collision_pairs,trans_cache_1to0,0,0,true);
#ifdef TRI_COLLISION_PROFILING
bt_end_gim02_q_tree_time();
#endif //TRI_COLLISION_PROFILING
}

View File

@@ -4,6 +4,9 @@ INCLUDE_DIRECTORIES(
# Prevent MSVC from moaning
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS)
ADD_DEFINITIONS( -D_CRT_SECURE_NO_DEPRECATE)
ADD_LIBRARY(LibXML
c14n.c
@@ -27,8 +30,6 @@ ADD_LIBRARY(LibXML
parserInternals.c
pattern.c
relaxng.c
runsuite.c
runtest.c
SAX.c
SAX2.c
schematron.c
@@ -41,9 +42,7 @@ ADD_LIBRARY(LibXML
valid.c
xinclude.c
xlink.c
xmlcatalog.c
xmlIO.c
xmllint.c
xmlmemory.c
xmlmodule.c
xmlreader.c

View File

@@ -329,7 +329,9 @@ int btDiscreteDynamicsWorld::stepSimulation( btScalar timeStep,int maxSubSteps,
clearForces();
#ifndef BT_NO_PROFILE
CProfileManager::Increment_Frame_Counter();
#endif //BT_NO_PROFILE
return numSimulationSubSteps;
}
@@ -717,40 +719,10 @@ void btDiscreteDynamicsWorld::startProfiling(btScalar timeStep)
{
(void)timeStep;
#ifndef BT_NO_PROFILE
CProfileManager::Reset();
#endif //BT_NO_PROFILE
#ifdef USE_QUICKPROF
//toggle btProfiler
if ( m_debugDrawer && m_debugDrawer->getDebugMode() & btIDebugDraw::DBG_ProfileTimings)
{
if (!m_profileTimings)
{
m_profileTimings = 1;
// To disable profiling, simply comment out the following line.
static int counter = 0;
char filename[128];
sprintf(filename,"quickprof_bullet_timings%i.csv",counter++);
btProfiler::init(filename, btProfiler::BLOCK_CYCLE_SECONDS);//BLOCK_TOTAL_MICROSECONDS
} else
{
btProfiler::endProfilingCycle();
}
} else
{
if (m_profileTimings)
{
btProfiler::endProfilingCycle();
m_profileTimings = 0;
btProfiler::destroy();
}
}
#endif //USE_QUICKPROF
}

View File

@@ -15,6 +15,8 @@
#include "LinearMath/btQuickprof.h"
#ifdef USE_BT_CLOCK
static btClock gProfileClock;
inline void Profile_Get_Ticks(unsigned long int * ticks)
@@ -29,6 +31,8 @@ inline float Profile_Get_Tick_Rate(void)
}
/***************************************************************************************************
**
** CProfileNode
@@ -264,5 +268,5 @@ float CProfileManager::Get_Time_Since_Reset( void )
return (float)time / Profile_Get_Tick_Rate();
}
#endif //USE_BT_CLOCK