It crash on this method btGimpactShape.h line 846
Code: Select all
virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const
{
m_primitive_manager.get_bullet_triangle(prim_index,triangle);
}
Code: Select all
virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const
{
m_primitive_manager.get_bullet_triangle(prim_index,triangle);
}
Have you confirmed that issue is specific only to lunkhound's fork?Granyte wrote:Alright so after fixing my issue with Bullet I found an issue when using the GIimpact mesh
Yes, I fixed a threadsafe issue (here) in the DbvtBroadphase rayTest. Raytests are used in createPredictiveContacts which runs in parallel now.Granyte wrote:EDIT in this version is it possible to ray cast from multiple thread ?
Well you could run them in separate processes, and that would surely work.Berezovsky wrote:I need to multithread several completely-independent simulations in the same program. (Not the same simulation. Independent ones).
Is this possible?
This is the third thread in which you are asking the same question. Take it easy, man. Also in only 1 of the threads do you explain you are trying to multi-thread the entire demo application (including the OpenGL parts and window creation and everything). Just have some patience and await replies in your other threads.Berezovsky wrote:I need to multithread several completely-independent simulations in the same program. (Not the same simulation. Independent ones).
Is this possible?
Yep! I went ahead and wrote a dispatcher in python. It calls the bullet simulations as processes from the command line. It works like a charm.lunkhound wrote: Well you could run them in separate processes, and that would surely work.
I've been doing it for a bit now (optimization stuff on 8 cores, single process), and after the tweaks I described before it works without issues on both single and dual processor systems with 8 threads ( wish I had a dual processor 12 core HT system to test 48 threads, but my research budget was blown on motors that are $300/each...)lunkhound wrote:For running in the same process, I have doubts. If there is any code being used that reads and writes a static or global data structure, then it likely won't work. The dbvt broadphase ray-test was doing this, but that is now fixed in my fork. The MLCP solver is also doing it (but should be fixed soon). I would be (pleasantly) surprised if those were the only instances in Bullet of modifying static or global data!Berezovsky wrote:I need to multithread several completely-independent simulations in the same program. (Not the same simulation. Independent ones).
Is this possible?
If you try it I would love to know how it works out!
These tweaks you mention, are those the fixes for the MLCP solver to not use static data?Basroil wrote:I've been doing it for a bit now (optimization stuff on 8 cores, single process), and after the tweaks I described before it works without issues on both single and dual processor systems with 8 threads ( wish I had a dual processor 12 core HT system to test 48 threads, but my research budget was blown on motors that are $300/each...)lunkhound wrote:For running in the same process, I have doubts. If there is any code being used that reads and writes a static or global data structure, then it likely won't work. The dbvt broadphase ray-test was doing this, but that is now fixed in my fork. The MLCP solver is also doing it (but should be fixed soon). I would be (pleasantly) surprised if those were the only instances in Bullet of modifying static or global data!Berezovsky wrote:I need to multithread several completely-independent simulations in the same program. (Not the same simulation. Independent ones).
Is this possible?
If you try it I would love to know how it works out!