Compiled demos running really slowly

cersoft
Posts: 6
Joined: Thu Aug 17, 2006 7:05 am

Compiled demos running really slowly

Post by cersoft »

So, I downloaded 1.9 source and compiled a release version on VC 7.1 and the demos run super slow, does anyone know of this issue and if so how to fix it?

Thanks in advance

Colin
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

Do they run slower then the precompiled demos on the Download page?

What machine do you have? Which demo in particular?
Did you try BspDemo?
Thanks,
Erwin
cersoft
Posts: 6
Joined: Thu Aug 17, 2006 7:05 am

Post by cersoft »

Erwin Coumans wrote:Do they run slower then the precompiled demos on the Download page?

What machine do you have? Which demo in particular?
Did you try BspDemo?
Thanks,
Erwin
Absolutely, check the compiled version of bspDemo at http://creed.angeltowns.net/newVideos/BspDemo.rar

I have a P4 3.4Ghz with ATI 9800 pro
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

So all the precompiled demos run fast?

I don't have rar / windows machine to check it out at the moment.
So the CcdPhysicsDemo is very slow too? There is some profiling info that you can enable to locate the problem.

See LinearMath/quickprof.h and uncomment the USE_QUICKPROF define:

Code: Select all

#define USE_QUICKPROF 1
Then run CcdPhysicsDemo and press 'p' key. This shows some statistics on screen. Also it creates a .csv file with the statistics, each time you press toggle p to enable stats. Press 'd' to disable deactivation to get best timings. You might need to add extra timers to locate the slowdown. For example, add a block around the 'renderme()' call, around line 734 in CcdPhysicsDemo.cpp:

Code: Select all

#ifdef USE_QUICKPROF
        Profiler::beginBlock("render");
#endif //USE_QUICKPROF

renderme();

#ifdef USE_QUICKPROF
        Profiler::endBlock("render");
#endif
Notice that you cannot nest the beginBlock/endBlock. You can add one in the CcdPhysicsDemo.cpp to profile graphics drawing. Just dont add one around the proceedDeltaTime call.

Perhaps it's just some graphics feature that is horribly slow, like line/wireframe or text drawing drawing'. Try 'h' key, to disable text.

On the Macbook Pro typical timings are like:
BuildProcessIslands: 0.01
DispatchAllCollisionPairs: 0.004
render: 0.005

Can you give your timings?
Thanks,
Erwin
cersoft
Posts: 6
Joined: Thu Aug 17, 2006 7:05 am

Post by cersoft »

The timings for ccdPhysicsDemo are as such ...

Image

And the csv pumps out ...

Code: Select all

#cycle; BuildAndProcessIslands; CallbackTriggers; DispatchAllCollisionPairs; SolveConstraint; SyncMotionStates; predictIntegratedTransform; proceedToTransform; 
0; 0.060212; 1e-006; 0.02502; 0.000244; 8.8e-005; 0.000456; 0.001042; 
1; 0.06027; 2e-006; 0.025045; 0.000256; 8.8e-005; 0.000344; 0.000951; 0.004985; 
2; 0.058946; 7e-006; 0.025055; 0.000244; 8.3e-005; 0.000342; 0.001046; 0.00483; 
3; 0.060131; 2e-006; 0.025136; 0.000249; 8.9e-005; 0.000342; 0.000952; 0.004731; 
4; 0.059192; 2e-006; 0.025235; 0.000271; 8.8e-005; 0.000344; 0.001014; 0.004823; 
5; 0.06066; 3e-006; 0.028412; 0.000245; 8.1e-005; 0.000335; 0.001008; 0.004697; 
6; 0.060868; 2e-006; 0.02524; 0.00024; 8.9e-005; 0.000339; 0.001842; 0.00468; 
7; 0.06027; 2e-006; 0.024839; 0.000239; 8.7e-005; 0.000337; 0.000958; 0.00474; 
8; 0.060511; 7e-006; 0.025194; 0.000318; 8.9e-005; 0.000429; 0.001052; 0.004671; 
9; 0.060119; 1e-006; 0.02504; 0.000238; 8.8e-005; 0.000341; 0.000976; 0.004741; 
10; 0.062397; 2e-006; 0.025162; 0.000239; 8.2e-005; 0.000342; 0.000968; 0.00477; 
11; 0.06041; 2e-006; 0.02491; 0.000244; 8.8e-005; 0.000427; 0.001043; 0.004686; 
12; 0.05939; 2e-006; 0.025071; 0.000292; 0.000103; 0.00034; 0.001008; 0.004765; 
13; 0.05986; 2e-006; 0.024959; 0.000321; 8.8e-005; 0.000344; 0.000958; 0.004668; 
14; 0.060661; 1e-006; 0.025068; 0.000248; 8.3e-005; 0.000348; 0.000962; 0.004743; 
15; 0.063542; 2e-006; 0.027765; 0.000244; 8.7e-005; 0.000346; 0.000963; 0.005065; 
16; 0.087222; 1e-006; 0.067971; 0.00046; 9.4e-005; 0.000576; 0.002024; 0.004916; 
17; 0.061004; 2e-006; 0.024941; 0.000244; 8.6e-005; 0.000344; 0.000973; 0.005008; 
18; 0.059588; 2e-006; 0.025145; 0.000244; 8.6e-005; 0.000342; 0.001058; 0.004657; 
19; 0.059918; 2e-006; 0.024998; 0.000252; 8.4e-005; 0.000345; 0.000962; 0.004838; 
20; 0.061607; 2e-006; 0.025345; 0.000239; 8.4e-005; 0.000345; 0.000965; 0.004874; 
21; 0.060149; 1e-006; 0.030098; 0.000262; 8.8e-005; 0.000349; 0.000954; 0.004919; 
So as far as I can see, BuildProcessIslands and DispatchAllCollisionPairs are taking much more time ...

Colin
cersoft
Posts: 6
Joined: Thu Aug 17, 2006 7:05 am

Post by cersoft »

Hmmm, so I compiled 1.9 at work with useCompound and createConstraint turned off and got

Code: Select all

#cycle; BuildAndProcessIslands; CallbackTriggers; DispatchAllCollisionPairs; SolveConstraint; SyncMotionStates; predictIntegratedTransform; proceedToTransform; 
0; 0.009339; 3e-006; 0.002265; 3e-006; 4e-005; 0.000156; 0.000226; 
1; 0.009053; 3e-006; 0.002269; 3e-006; 4.2e-005; 0.000156; 0.00022; 
2; 0.00892; 3e-006; 0.002319; 2e-006; 4e-005; 0.000148; 0.000216; 
3; 0.009519; 2e-006; 0.002535; 2e-006; 4e-005; 0.000161; 0.000218; 
4; 0.009418; 4e-006; 0.002257; 2e-006; 3.8e-005; 0.000157; 0.000218; 
5; 0.013528; 4e-006; 0.002301; 2e-006; 4e-005; 0.000154; 0.000219; 
6; 0.009082; 4e-006; 0.002433; 2e-006; 4e-005; 0.000153; 0.000232; 
7; 0.009138; 3e-006; 0.002266; 3e-006; 5e-005; 0.000153; 0.000218; 
8; 0.008899; 3e-006; 0.002421; 2e-006; 4.1e-005; 0.000147; 0.000223; 
9; 0.009007; 3e-006; 0.00226; 3e-006; 4.1e-005; 0.000146; 0.000217; 
10; 0.009549; 3e-006; 0.002238; 2e-006; 3.9e-005; 0.000144; 0.000218; 
11; 0.008898; 3e-006; 0.002259; 3e-006; 4e-005; 0.00016; 0.000217; 
12; 0.008785; 3e-006; 0.002427; 3e-006; 4.2e-005; 0.000148; 0.000215; 
13; 0.008937; 4e-006; 0.002437; 2e-006; 4e-005; 0.000147; 0.00024; 
14; 0.009237; 3e-006; 0.002237; 2e-006; 4.1e-005; 0.000155; 0.000228; 
15; 0.008885; 3e-006; 0.002881; 2e-006; 4e-005; 0.000145; 0.000216; 
16; 0.009257; 3e-006; 0.002209; 2e-006; 4.1e-005; 0.000159; 0.000347; 
17; 0.008936; 3e-006; 0.002464; 3e-006; 4e-005; 0.000153; 0.00022; 
18; 0.008924; 3e-006; 0.002259; 3e-006; 4.2e-005; 0.00016; 0.000218; 
19; 0.008851; 3e-006; 0.002376; 2e-006; 4.1e-005; 0.000156; 0.000215; 
It's the same compiler in threory (7.1) so I'm gonna check my compile options when I get home and worst case re-install 7.1 ...

Colin
cersoft
Posts: 6
Joined: Thu Aug 17, 2006 7:05 am

Post by cersoft »

Ok, mystery solved, it turns out the I have msvc 7.1 standard at home and this "does not include an optimizing compiler".

Microsoft is a bunch of dirty thieving robbing bastards ...

I guess I'll have to upgrade to 8.0 :|

Colin