Report any bugs here and we'll post fixes
Moderators: Sascha Willems, Thomas
by carli2 » Sat Jul 14, 2012 2:18 am
- Code: Select all
#0 0x00007ffff52c4445 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff52c7bab in __GI_abort () at abort.c:91
#2 0x00007ffff52bd10e in __assert_fail_base (fmt=<optimized out>,
assertion=0x7ffff7454658 "((sizeof (m_matrix[i][j]) == sizeof (float) ? __finitef (m_matrix[i][j]) : sizeof (m_matrix[i][j]) == sizeof (double) ? __finite (m_matrix[i][j]) : __finitel (m_matrix[i][j])) && !(sizeof (m_matrix[i]"...,
file=0x7ffff74548ae "../../source/physics/dgBody.h", line=<optimized out>,
function=<optimized out>) at assert.c:94
#3 0x00007ffff52bd1b2 in __GI___assert_fail (
assertion=0x7ffff7454658 "((sizeof (m_matrix[i][j]) == sizeof (float) ? __finitef (m_matrix[i][j]) : sizeof (m_matrix[i][j]) == sizeof (double) ? __finite (m_matrix[i][j]) : __finitel (m_matrix[i][j])) && !(sizeof (m_matrix[i]"...,
file=0x7ffff74548ae "../../source/physics/dgBody.h", line=756,
function=0x7ffff7454f00 "virtual void dgBody::SetMatrixOriginAndRotation(const dgMatrix&)") at assert.c:103
#4 0x00007ffff72adde2 in dgBody::SetMatrixOriginAndRotation (this=0xf0b3c0,
matrix=...) at ../../source/physics/dgBody.h:756
#5 0x00007ffff729fe3d in dgBody::SetMatrix (this=0xf0b3c0, matrix=...)
at ../../source/physics/dgBody.cpp:367
#6 0x00007ffff72a19a8 in dgBody::SetMatrixIgnoreSleep (this=0xf0b3c0,
---Type <return> to continue, or q <return> to quit---
matrix=...) at ../../source/physics/dgBody.cpp:383
#7 0x00007ffff743ca01 in NewtonBodySetMatrix (bodyPtr=<optimized out>,
matrixPtr=<optimized out>) at ../../source/newton/Newton.cpp:4902
#8 0x00000000005d2a8b in SETROT (HOME=0xa3c, PARS=0xa3c)
at physicscript.pas:776
The code of SETROT is btw following:
- Code: Select all
angles[0]:=0;
angles[1]:=-pars[0].float*pi/180;
angles[2]:=0;
NewtonBodyGetMatrix(o.newton, @matrix2[0][0]);
NewtonSetEulerAngle(@angles[0], @matrix[0][0]);
matrix[3]:=matrix2[3];
NewtonBodySetMatrix(o.newton, @matrix[0][0]);
After deactivating SETROT, the following assertion fails:
- Code: Select all
gwX.engine: ../../source/core/dgVector.h:305: dgVector::dgVector(const dgTemplateVector<float>&): Assertion `(((sizeof ((*this)[0]) == sizeof (float) ? __finitef ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __finite ((*this)[0]) : __finitel ((*this)[0])) && !(sizeof ((*this)[0]) == sizeof (float) ? __isnanf ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __isnan ((*this)[0]) : __isnanl ((*this)[0]))) && ((sizeof ((*this)[1]) == sizeof (float) ? __finitef ((*this)[1]) : sizeof ((*this)[1]) == sizeof (double) ? __finite ((*this)[1]) : __finitel ((*this)[1])) && !(sizeof ((*this)[1]) == sizeof (float) ? __isnanf ((*this)[1]) : sizeof ((*this)[1]) == sizeof (double) ? __isnan ((*this)[1]) : __isnanl ((*this)[1]))) && ((sizeof ((*this)[2]) == sizeof (float) ? __finitef ((*this)[2]) : sizeof ((*this)[2]) == sizeof (double) ? __finite ((*this)[2]) : __finitel ((*this)[2])) && !(sizeof ((*this)[2]) == sizeof (float) ? __isnanf ((*this)[2]) : sizeof ((*this)[2]) == sizeof (double) ? __isnan ((*this)[2]) : __isnanl ((*this)[2]))) && ((sizeof ((*this)[3]) == sizeof (float) ? __finitef ((*this)[3]) : sizeof ((*this)[3]) == sizeof (double) ? __finite ((*this)[3]) : __finitel ((*this)[3])) && !(sizeof ((*this)[3]) == sizeof (float) ? __isnanf ((*this)[3]) : sizeof ((*this)[3]) == sizeof (double) ? __isnan ((*this)[3]) : __isnanl ((*this)[3]))))' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff52c4445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0 0x00007ffff52c4445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff52c7bab in __GI_abort () at abort.c:91
#2 0x00007ffff52bd10e in __assert_fail_base (fmt=<optimized out>,
assertion=0x7ffff74497c0 "(((sizeof ((*this)[0]) == sizeof (float) ? __finitef ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __finite ((*this)[0]) : __finitel ((*this)[0])) && !(sizeof ((*this)[0]) == sizeof (float) "..., file=0x7ffff7449dfe "../../source/core/dgVector.h",
line=<optimized out>, function=<optimized out>) at assert.c:94
#3 0x00007ffff52bd1b2 in __GI___assert_fail (
assertion=0x7ffff74497c0 "(((sizeof ((*this)[0]) == sizeof (float) ? __finitef ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __finite ((*this)[0]) : __finitel ((*this)[0])) && !(sizeof ((*this)[0]) == sizeof (float) "..., file=0x7ffff7449dfe "../../source/core/dgVector.h", line=305,
function=0x7ffff7456e20 "dgVector::dgVector(const dgTemplateVector<float>&)") at assert.c:103
#4 0x00007ffff72b95a1 in dgVector (this=<optimized out>, v=...) at ../../source/core/dgVector.h:305
#5 dgVector (v=..., this=<optimized out>) at ../../source/physics/dgBroadPhaseCollision.cpp:506
#6 Reset (t=<optimized out>, this=<optimized out>) at ../../source/core/dgIntersections.h:50
#7 dgBroadPhaseCollision::ConvexCast (this=0xddd7f0, shape=0x14ff180, matrix0=..., target=..., timeToImpact=@0x7ffffffefdac: 0,
prefilter=0x5d1798 <MYPREFILTER>, userData=0x7fffd568f040, info=0x7fffe8091920, maxContacts=128, threadIndex=0)
at ../../source/physics/dgBroadPhaseCollision.cpp:570
#8 0x00007ffff743f6c8 in NewtonWorldConvexCast (newtonWorld=0xddd7c0, matrix=0x7ffffffefdd4, target=<optimized out>, shape=0x14ff180,
hitParam=<optimized out>, userData=0x7fffd568f040, prefilter=0x5d1798 <MYPREFILTER>, info=0x7fffe8091920, maxContactsCount=128, threadIndex=0)
at ../../source/newton/Newton.cpp:1360
#9 0x00000000005d1ab0 in MOVETILL (HOME=0x7ffffffefdbc, PARS=0x14ff180) at physicscript.pas:634
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by Julio Jerez » Sat Jul 14, 2012 9:05 am
I think this is the bug
- Code: Select all
void NewtonSetEulerAngle(const dFloat* const angles, dFloat* const matrix)
{
TRACE_FUNCTION(__FUNCTION__);
dgMatrix mat (dgPitchMatrix (angles[0]) * dgYawMatrix(angles[1]) * dgRollMatrix(angles[2]));
dgMatrix retMatrix (matrix);
it should be like this:
- Code: Select all
void NewtonSetEulerAngle(const dFloat* const angles, dFloat* const matrix)
{
dgMatrix mat (dgPitchMatrix (angles[0]) * dgYawMatrix(angles[1]) * dgRollMatrix(angles[2]));
//dgMatrix retMatrix (matrix);
dgMatrix& retMatrix = *((dgMatrix*) matrix);
it is fixed now, update
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by carli2 » Sat Jul 14, 2012 2:25 pm
Yay, that fixed it! I can see the world now. (thanks)
And now the next problem (the crash after player join).
But first, when I enable debug, the following happens:
- Code: Select all
In file included from ../../source/core/dgVector.h:28:0,
from ../../source/core/dgMatrix.h:28,
from ../../source/core/dgAABBPolygonSoup.cpp:32:
../../source/core/dgSimd_128.h: In member function ‘simd_128 simd_128::Floor() const’:
../../source/core/dgSimd_128.h:192:4: error: request for member ‘m128_f32’ in ‘ret.simd_128::m_type’, which is of non-class type ‘__m128 {aka __vector(4) float}’
../../source/core/dgSimd_128.h:192:4: error: request for member ‘m128_f32’ in ‘((const simd_128*)this)->simd_128::m_type’, which is of non-class type ‘const __m128 {aka const __vector(4) float}’
../../source/core/dgSimd_128.h:193:4: error: request for member ‘m128_f32’ in ‘ret.simd_128::m_type’, which is of non-class type ‘__m128 {aka __vector(4) float}’
../../source/core/dgSimd_128.h:193:4: error: request for member ‘m128_f32’ in ‘((const simd_128*)this)->simd_128::m_type’, which is of non-class type ‘const __m128 {aka const __vector(4) float}’
../../source/core/dgSimd_128.h:194:4: error: request for member ‘m128_f32’ in ‘ret.simd_128::m_type’, which is of non-class type ‘__m128 {aka __vector(4) float}’
../../source/core/dgSimd_128.h:194:4: error: request for member ‘m128_f32’ in ‘((const simd_128*)this)->simd_128::m_type’, which is of non-class type ‘const __m128 {aka const __vector(4) float}’
../../source/core/dgSimd_128.h:195:4: error: request for member ‘m128_f32’ in ‘ret.simd_128::m_type’, which is of non-class type ‘__m128 {aka __vector(4) float}’
../../source/core/dgSimd_128.h:195:4: error: request for member ‘m128_f32’ in ‘((const simd_128*)this)->simd_128::m_type’, which is of non-class type ‘const __m128 {aka const __vector(4) float}’
make: *** [../../source/core/dgAABBPolygonSoup.o] Error 1
In file included from ../../source/core/dg.h:37:0,
from ../../source/physics/dgPhysicsStdafx.h:35,
from ../../source/physics/dgBallConstraint.cpp:22:
../../source/core/dgGraph.h: In member function ‘void dgGraphNode<dgNodeData, dgEdgeData>::Trace() const’:
../../source/core/dgGraph.h:183:2: error: ‘m_index’ was not declared in this scope
make: *** [../../source/physics/dgBallConstraint.o] Error 1
../../source/physics/dgMinkowskiConv.cpp:830:3: error: ‘__FUNCDNAME__’ was not declared in this scope
../../source/physics/dgMinkowskiConv.cpp: In member function ‘dgContactSolver::dgMinkReturnCode dgContactSolver::UpdateSeparatingPlaneFallbackSolution(dgContactSolver::dgMinkFace*&, const dgVector&)’:
../../source/physics/dgMinkowskiConv.cpp:1176:3: error: ‘__FUNCDNAME__’ was not declared in this scope
make: *** [../../source/physics/dgMinkowskiConv.o] Error 1
I simply commented them out, but you can maybe fix that in a better way.
btw __FUNCDNAME__ is __PRETTY_FUNCTION__
Before I can backtrace the crash, the following assertion fails:
- Code: Select all
gwX.engine: ../../source/core/dgVector.h:305: dgVector::dgVector(const dgTemplateVector<float>&): Assertion `(((sizeof ((*this)[0]) == sizeof (float) ? __finitef ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __finite ((*this)[0]) : __finitel ((*this)[0])) && !(sizeof ((*this)[0]) == sizeof (float) ? __isnanf ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __isnan ((*this)[0]) : __isnanl ((*this)[0]))) && ((sizeof ((*this)[1]) == sizeof (float) ? __finitef ((*this)[1]) : sizeof ((*this)[1]) == sizeof (double) ? __finite ((*this)[1]) : __finitel ((*this)[1])) && !(sizeof ((*this)[1]) == sizeof (float) ? __isnanf ((*this)[1]) : sizeof ((*this)[1]) == sizeof (double) ? __isnan ((*this)[1]) : __isnanl ((*this)[1]))) && ((sizeof ((*this)[2]) == sizeof (float) ? __finitef ((*this)[2]) : sizeof ((*this)[2]) == sizeof (double) ? __finite ((*this)[2]) : __finitel ((*this)[2])) && !(sizeof ((*this)[2]) == sizeof (float) ? __isnanf ((*this)[2]) : sizeof ((*this)[2]) == sizeof (double) ? __isnan ((*this)[2]) : __isnanl ((*this)[2]))) && ((sizeof ((*this)[3]) == sizeof (float) ? __finitef ((*this)[3]) : sizeof ((*this)[3]) == sizeof (double) ? __finite ((*this)[3]) : __finitel ((*this)[3])) && !(sizeof ((*this)[3]) == sizeof (float) ? __isnanf ((*this)[3]) : sizeof ((*this)[3]) == sizeof (double) ? __isnan ((*this)[3]) : __isnanl ((*this)[3]))))' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff52c2445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0 0x00007ffff52c2445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff52c5bab in __GI_abort () at abort.c:91
#2 0x00007ffff52bb10e in __assert_fail_base (fmt=<optimized out>,
assertion=0x7ffff7448d60 "(((sizeof ((*this)[0]) == sizeof (float) ? __finitef ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __finite ((*this)[0]) : __finitel ((*this)[0])) && !(sizeof ((*this)[0]) == sizeof (float) "..., file=0x7ffff744939e "../../source/core/dgVector.h",
line=<optimized out>, function=<optimized out>) at assert.c:94
#3 0x00007ffff52bb1b2 in __GI___assert_fail (
assertion=0x7ffff7448d60 "(((sizeof ((*this)[0]) == sizeof (float) ? __finitef ((*this)[0]) : sizeof ((*this)[0]) == sizeof (double) ? __finite ((*this)[0]) : __finitel ((*this)[0])) && !(sizeof ((*this)[0]) == sizeof (float) "..., file=0x7ffff744939e "../../source/core/dgVector.h", line=305,
function=0x7ffff74564c0 "dgVector::dgVector(const dgTemplateVector<float>&)") at assert.c:103
#4 0x00007ffff72b7f91 in dgVector (this=<optimized out>, v=...) at ../../source/core/dgVector.h:305
#5 dgVector (v=..., this=<optimized out>) at ../../source/physics/dgBroadPhaseCollision.cpp:506
#6 Reset (t=<optimized out>, this=<optimized out>) at ../../source/core/dgIntersections.h:50
#7 dgBroadPhaseCollision::ConvexCast (this=0xddfdf0, shape=0x14ffc00, matrix0=..., target=..., timeToImpact=@0x7ffffffefdac: 0,
prefilter=0x5d1798 <MYPREFILTER>, userData=0x7fffe8050040, info=0x7fffe808f920, maxContacts=128, threadIndex=0)
at ../../source/physics/dgBroadPhaseCollision.cpp:570
#8 0x00007ffff743ede8 in NewtonWorldConvexCast (newtonWorld=0xddfdc0, matrix=0x7ffffffefdd4, target=<optimized out>, shape=0x14ffc00,
hitParam=<optimized out>, userData=0x7fffe8050040, prefilter=0x5d1798 <MYPREFILTER>, info=0x7fffe808f920, maxContactsCount=128, threadIndex=0)
at ../../source/newton/Newton.cpp:1360
Last edited by
carli2 on Sat Jul 14, 2012 2:29 pm, edited 1 time in total.
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by carli2 » Sat Jul 14, 2012 2:28 pm
And here's the backtrace of the crash: (I disabled assertions to get to this point)
- Code: Select all
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd6dee700 (LWP 13078)]
0x00007ffff739e7e8 in dgCollisionCompound::CalculateContactsToSingle (this=0xeed580, pair=<optimized out>, proxy=..., useSimd=<optimized out>)
at ../../source/physics/dgCollisionCompound.cpp:1508
1508 processContacts = constraint->GetMaterial()->m_compoundAABBOverlap (*constraint->GetMaterial(), *compoundBody, *otherBody, proxy.m_threadIndex);
(gdb) backtrace
#0 0x00007ffff739e7e8 in dgCollisionCompound::CalculateContactsToSingle (this=0xeed580, pair=<optimized out>, proxy=..., useSimd=<optimized out>)
at ../../source/physics/dgCollisionCompound.cpp:1508
#1 0x00007ffff73a17f1 in dgCollisionCompound::CalculateContacts (this=0xeed580, pair=0x7fffd6dd2f60, proxy=..., useSimd=0)
at ../../source/physics/dgCollisionCompound.cpp:1320
#2 0x00007ffff742309c in dgWorld::CompoundContacts (this=0xdddb80, pair=0x7fffd6dd2f60, proxy=...)
at ../../source/physics/dgNarrowPhaseCollision.cpp:1023
#3 0x00007ffff74233a8 in dgWorld::CalculateContacts (this=0xdddb80, pair=0x7fffd6dd2f60, timestep=<optimized out>, threadIndex=<optimized out>)
at ../../source/physics/dgNarrowPhaseCollision.cpp:1410
#4 0x00007ffff7424c97 in dgWorld::CollideContinue (this=0xdddb80, collisionSrcA=0x14fe780, matrixA=..., velocA=..., omegaA=...,
collisionSrcB=<optimized out>, matrixB=..., velocB=..., omegaB=..., retTimeStep=@0x7fffd6dd3da0: 1e+10, points=0x7fffd6dd38e0,
normals=0x7fffd6dd3a60, penetration=0x7fffd6dd3cb0, maxSize=32, threadIndex=0) at ../../source/physics/dgNarrowPhaseCollision.cpp:1617
#5 0x00007ffff7383cc0 in dgBroadPhaseCollision::ConvexCast (this=0xdddbb0, shape=0x14fe780, matrix0=..., target=..., timeToImpact=@0x7fffd6dd40ec: 0,
prefilter=0x5d1798 <MYPREFILTER>, userData=0x7ffff7fe1d40, info=0x7fffd4ddd060, maxContacts=128, threadIndex=0)
at ../../source/physics/dgBroadPhaseCollision.cpp:561
#6 0x00007ffff747796f in NewtonWorldConvexCast (newtonWorld=<optimized out>, matrix=<optimized out>, target=<optimized out>, shape=<optimized out>,
hitParam=<optimized out>, userData=<optimized out>, prefilter=0x5d1798 <MYPREFILTER>, info=0x7fffd4ddd060, maxContactsCount=128, threadIndex=0)
at ../../source/newton/Newton.cpp:1360
#7 0x00000000005d1ab0 in MOVETILL (HOME=0x7fffd6dd40fc, PARS=0x14fe780) at physicscript.pas:634
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by Julio Jerez » Sat Jul 14, 2012 3:35 pm
you are prbably setting teh code to use simd_d , and since continue collsion if no fully ready
funtion dgInt32 dgBroadPhaseCollision::ConvexCast will see teh simd path, but that pasth will call CollideContinueSimd
this is what the function is now.
- Code: Select all
dgInt32 dgWorld::CollideContinueSimd (
const dgCollisionInstance* const collisionA, const dgMatrix& matrixA, const dgVector& velocA, const dgVector& omegaA,
const dgCollisionInstance* const collisionB, const dgMatrix& matrixB, const dgVector& velocB, const dgVector& omegaB,
dgFloat32& retTimeStep, dgTriplex* const points, dgTriplex* const normals, dgFloat32* const penetration, dgInt32 maxSize, dgInt32 threadIndex)
{
_ASSERTE (0);
return 0;
like I said I am plalning to move to OpenCL, and base on the result, I will decide if I will maintain the simd or I will remove it all togheter in favor of OpenCL on CPU and GPU.
do not use simd code, because no all is functional.
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by carli2 » Sat Jul 14, 2012 3:45 pm
Please take a second look at the posts. I found three points where newton refuses to compile with -D_DEBUG.
My last post was a copy&paste error. Here's the correct backtrace:
- Code: Select all
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd6de6700 (LWP 14811)]
0x00007ffff739e7e8 in dgCollisionCompound::CalculateContactsToSingle (
this=0xeee740, pair=<optimized out>, proxy=..., useSimd=<optimized out>)
at ../../source/physics/dgCollisionCompound.cpp:1508
1508 processContacts = constraint->GetMaterial()->m_compoundAABBOverlap (*constraint->GetMaterial(), *compoundBody, *otherBody, proxy.m_threadIndex);
(gdb) backtrace
#0 0x00007ffff739e7e8 in dgCollisionCompound::CalculateContactsToSingle (
this=0xeee740, pair=<optimized out>, proxy=..., useSimd=<optimized out>)
at ../../source/physics/dgCollisionCompound.cpp:1508
#1 0x00007ffff73a17f1 in dgCollisionCompound::CalculateContacts (
this=0xeee740, pair=0x7fffd6dcaf60, proxy=..., useSimd=0)
at ../../source/physics/dgCollisionCompound.cpp:1320
#2 0x00007ffff742309c in dgWorld::CompoundContacts (this=0xde0540,
pair=0x7fffd6dcaf60, proxy=...)
at ../../source/physics/dgNarrowPhaseCollision.cpp:1023
#3 0x00007ffff74233a8 in dgWorld::CalculateContacts (this=0xde0540,
pair=0x7fffd6dcaf60, timestep=<optimized out>, threadIndex=<optimized out>)
at ../../source/physics/dgNarrowPhaseCollision.cpp:1410
#4 0x00007ffff7424c97 in dgWorld::CollideContinue (this=0xde0540,
collisionSrcA=0x1500600, matrixA=..., velocA=..., omegaA=...,
collisionSrcB=<optimized out>, matrixB=..., velocB=..., omegaB=...,
retTimeStep=@0x7fffd6dcbda0: 1e+10, points=0x7fffd6dcb8e0,
normals=0x7fffd6dcba60, penetration=0x7fffd6dcbcb0, maxSize=32,
threadIndex=0) at ../../source/physics/dgNarrowPhaseCollision.cpp:1617
#5 0x00007ffff7383cc0 in dgBroadPhaseCollision::ConvexCast (this=0xde0570,
shape=0x1500600, matrix0=..., target=..., timeToImpact=@0x7fffd6dcc0ec: 0,
prefilter=0x5d1798 <MYPREFILTER>, userData=0x7fffe8394840,
---Type <return> to continue, or q <return> to quit---
info=0x7fffd4e2d060, maxContacts=128, threadIndex=0)
at ../../source/physics/dgBroadPhaseCollision.cpp:561
#6 0x00007ffff747796f in NewtonWorldConvexCast (newtonWorld=<optimized out>,
matrix=<optimized out>, target=<optimized out>, shape=<optimized out>,
hitParam=<optimized out>, userData=<optimized out>,
prefilter=0x5d1798 <MYPREFILTER>, info=0x7fffd4e2d060,
maxContactsCount=128, threadIndex=0) at ../../source/newton/Newton.cpp:1360
#7 0x00000000005d1ab0 in MOVETILL (HOME=0x7fffd6dcc0fc, PARS=0x1500600)
at physicscript.pas:634
(btw I disabled continuous collision)
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by Julio Jerez » Sat Jul 14, 2012 3:52 pm
yes I said do not use simd if you are callun conve cast, because that funtion use the continue collision
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Julio Jerez » Sat Jul 14, 2012 3:59 pm
Oh I see, NewtonWorldConvexCast will crash because in core 300 now the joint are persistace and they need a material, but NewtonWorldConvexCast set a dummy unitilized material. I need to fix that.
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Julio Jerez » Sat Jul 14, 2012 4:07 pm
this is the bug, the contact material constructor do not initilize the callbacks, this should fix it
- Code: Select all
dgContactMaterial::dgContactMaterial()
:m_userData(NULL)
,m_aabbOverlap(NULL)
,m_contactPoint(NULL)
,m_compoundAABBOverlap(NULL)
{
sinc to svn
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by carli2 » Sat Jul 14, 2012 4:08 pm
Don't forget to write commit messages into SVN.
Currently, Newtons project history looks like that:
- Code: Select all
------------------------------------------------------------------------
r2301 | jerezjulio@sbcglobal.net | 2012-07-14 19:06:54 +0200 (Sa, 14 Jul 2012) | 1 line
------------------------------------------------------------------------
r2300 | jerezjulio@sbcglobal.net | 2012-07-14 17:35:33 +0200 (Sa, 14 Jul 2012) | 1 line
------------------------------------------------------------------------
r2299 | jerezjulio@sbcglobal.net | 2012-07-14 15:09:53 +0200 (Sa, 14 Jul 2012) | 1 line
------------------------------------------------------------------------
r2298 | jerezjulio@sbcglobal.net | 2012-07-14 15:05:15 +0200 (Sa, 14 Jul 2012) | 1 line
------------------------------------------------------------------------
r2297 | jerezjulio@sbcglobal.net | 2012-07-13 17:35:14 +0200 (Fr, 13 Jul 2012) | 1 line
------------------------------------------------------------------------
r2296 | jerezjulio@sbcglobal.net | 2012-07-13 13:29:02 +0200 (Fr, 13 Jul 2012) | 1 line
------------------------------------------------------------------------
r2295 | jerezjulio@sbcglobal.net | 2012-07-12 18:47:30 +0200 (Do, 12 Jul 2012) | 1 line
------------------------------------------------------------------------
r2294 | jerezjulio@sbcglobal.net | 2012-07-12 17:29:14 +0200 (Do, 12 Jul 2012) | 1 line
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by carli2 » Sat Jul 14, 2012 4:19 pm
Okay, this fixes the crash, thanks.
Now I need to make some fine adjustments to my code. I did not test it yet, but my function MoveTill which moves a object into one direction until it hits sth is behaving differently. There must be a return value of 0 for the hitparam of ConvexCast. This blocks my character controller to not move.
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by Julio Jerez » Sat Jul 14, 2012 5:08 pm
carli2 wrote:There must be a return value of 0 for the hitparam of ConvexCast. This blocks my character controller to not move.
ConvextCast returns 0 if the object is colliding at the zero location, else it returns the parametric value to the first hit.
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by carli2 » Sun Jul 15, 2012 6:39 am
Julio Jerez wrote:carli2 wrote:There must be a return value of 0 for the hitparam of ConvexCast. This blocks my character controller to not move.
ConvextCast returns 0 if the object is colliding at the zero location, else it returns the parametric value to the first hit.
Does this mean, when a object is stuck, I cannot move it out by checking it with ConvexCast?
Is this a function change from 2.xx to 3.00?
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
by Julio Jerez » Sun Jul 15, 2012 7:11 am
if an object is stuck and you move agaist the diretion that get even more stucke you get zero, but i fteh motion move the mode away form teh collsion yse you can get aout.
Th ebefaviuor of convex cast in core 300 is identical to that of core 2.xx
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by carli2 » Sun Jul 15, 2012 7:40 am
So it seems to be a numerical issue. I will see if some constants are too small. (in my character controller)
-
carli2
-
- Posts: 157
- Joined: Thu Nov 10, 2011 1:53 pm
Return to Bugs and Fixes
Who is online
Users browsing this forum: No registered users and 5 guests