Broadphase

Report any bugs here and we'll post fixes

Moderators: Sascha Willems, Thomas

Re: Broadphase

Postby Julio Jerez » Fri Jun 05, 2015 12:56 pm

what I am going to do is that I will commit version 3.12 on top of the archive, tag it and the comment the current version as work in progress.
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Broadphase

Postby arkeon » Fri Jun 05, 2015 12:58 pm

great it sound good.

tracking stable releases will help a lot :)
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby Julio Jerez » Mon Jun 08, 2015 1:01 pm

Ok I was going to commit 3.12 on top of 3.13 but before that I gave another look at the optimization that I made. I believe I found the bug and I fixed , if not, this was a bad bug that may cause the weird behavior you are seeing.

Please see if the committed I made last night fix the estrange bug before doing a drastic measure like rolling back to 3.12

what I did is that I added the two Broad phase an down the can be selected form the app level.
the default is the same as the old one (3.12 pluses some optimizations)
the new one is special for scene where there are 10' of torisudna of static bodies. because expend no time on static bodies.

This is very cool because you can have an unlimited numbed of static bodies in a scene.
20 or even 100 thousands.
the app using triggers to find the zone when the game please is can change the stator bodies to dynamic bodies ate rum time.

here is an example, say you have a scene with mane buildings. each build is fully furniture with everything building have. all those e object are static, the same for all other buildings.

the you place each building inside a big trigger, now the game logic check when a dynamics body penetrate the trigged and activate all the bodies by simple iteration over the array of object in is the building and calling set mass matrix to make the dynamics.

this trick make you work adaptive an can also be streamed. because those build can be in storage and loaded as static, the s give the engine a capacity that is only limited by memory.
this is also better that sleep code because sleeping bodies get called were static bodies do not, they are only touched when a dynamics body interact with them.

Please try it again, see if works.
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Broadphase

Postby arkeon » Mon Jun 08, 2015 6:54 pm

Hello, just updated again and my scene still crash :/
didn't tried in debug but it look like the same as before.

I'll do more tests when I'll have time
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby arkeon » Tue Jun 09, 2015 6:24 am

you also add some mistake in code showed without the -fpermissive flag

Code: Select all
coreLibrary_300\source\core\dgThread.cpp: In constructor 'dgThread::dgSemaphore::dgSemaphore()':
coreLibrary_300\source\core\dgThread.cpp:63:8: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
  m_sem = NULL;
        ^

In file included from coreLibrary_300\source\physics\dgWorld
.h:29:0,  from coreLibrary_300\source\physics\dgBallConstraint.cpp:24:
coreLibrary_300\source\physics\dgBroadPhase.h:198:3: error:
extra qualification 'dgBroadPhase::dgFitnessList::' on member 'dgFitnessList' [-fpermissive]
   dgFitnessList::dgFitnessList(dgMemoryAllocator* const allocator)
   ^
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby Julio Jerez » Tue Jun 09, 2015 9:14 am

Ok fixed the syntax errors.

for the Crash I can no generated here, and I cannot see what is incorrect.
can you add the serialization that you can serialize then scene with the bug and texted in the sandbox?
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Broadphase

Postby arkeon » Tue Jun 09, 2015 9:16 am

Ok thanks,
yes I will once I get some time for it.
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby arkeon » Tue Jun 09, 2015 9:47 am

just in case it is possible that in my scene the joints are created dynamically.

it could also be collision between two bodies on a joint ?
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby Julio Jerez » Tue Jun 09, 2015 10:32 am

Oh those are two things I did not test. I did no think I would not work, but it is possible I broke that.
-bodies that are collidable and are also connect by a joint.
-do you create bodies for a call back.
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Broadphase

Postby arkeon » Tue Jun 09, 2015 6:19 pm

I think I found the reason of the issue :
- I have onAABBOverlap where it can return 0 to disable collision between 2 bodies or materials.

so this is logic to get a null contact here I think. maybe you should just add a test case on null contact.
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby Julio Jerez » Tue Jun 09, 2015 6:50 pm

so you are saying that if onAAABB overlap is it return zero, it will reproduce the bug?
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Broadphase

Postby arkeon » Tue Jun 09, 2015 6:51 pm

yes after some tests it appears this is the only thing I found that produce the error
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby Julio Jerez » Tue Jun 09, 2015 7:35 pm

excellent I will test tonight.
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Broadphase

Postby arkeon » Wed Jun 10, 2015 12:15 pm

after the update I also run into a compilation problem whith thread emulation :
m_perfomanceCountersBack is not defined anywhere.
arkeon
 
Posts: 261
Joined: Sat Sep 13, 2014 5:25 pm

Re: Broadphase

Postby Julio Jerez » Wed Jun 10, 2015 1:00 pm

Ha yes I will fix that.
I decided to remove the profiler Bull S***t, I need to get a better profiler.
I am trying to license Telemetry from Rags tools.
I asked for a quote, but I do not have yet the answer yet, I am not sure if I can afford it.
They do not advertise the price on the site, that is an indication that most be very expensive.
if it is expensive I will then write an independent profiler tool that do not have to part of the engine.

Newton has never being optimized at the lower lever just algorithmically.
a frame based profiled can spot places where data can be reorganized for better cache coherence and stuff like that.
Julio Jerez
Moderator
Moderator
 
Posts: 11048
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

PreviousNext

Return to Bugs and Fixes

Who is online

Users browsing this forum: No registered users and 1 guest