Report any bugs here and we'll post fixes
Moderators: Sascha Willems, Thomas
by 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
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by 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
by 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
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by 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
by 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
by 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
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by 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
by 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
by 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
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by 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
by 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
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by 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
by Julio Jerez » Tue Jun 09, 2015 7:35 pm
excellent I will test tonight.
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by 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
by 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
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
Return to Bugs and Fixes
Who is online
Users browsing this forum: No registered users and 17 guests