noname120 {l Wrote}:I had a pretty similar issue with an Intel chipset: isn't it related to your GPU?
hiker {l Wrote}:Hi,
I can't reproduce this either. Is it possible that you have local modifications?noname120 {l Wrote}:I had a pretty similar issue with an Intel chipset: isn't it related to your GPU?
I am on an Intel chipset as well.
Cheers,
Joerg
WillemS {l Wrote}:It seems that this indeed is only a graphics problem. The physics are unaffected by this. You can even start driving normally by pressing the accelerate button, and the issue stays for a short time (but it is immediately gone when you steer, or you are touched by another kart).
supertuxkart/src/karts> svn diff kart.cpp
Index: kart.cpp
===================================================================
--- kart.cpp (revision 12179)
+++ kart.cpp (working copy)
@@ -1012,7 +1012,11 @@
// Update the position and other data taken from the physics
Moveable::update(dt);
-
+ printf("Rot: %f %f %f %f\n", getVisualRotation().getX(),getVisualRotation().getY(), getVisualRotation().getZ(), getVisualRotation().getW());
+ static int xx=0;
+ xx++;
+ if(xx>=904)
+ printf(" ");
if(!history->replayHistory())
m_controller->update(dt);
if(m_camera)
gdb ./bin/supertuxkart # or whatever
(gdb) break kart.cpp:1019
Breakpoint 1 at 0x90d624: file /home/joerg/local/supertuxkart/supertuxkart/src/karts/kart.cpp, line 1019.
(gdb) run --history
Rot: 0.000000 0.707107 0.000000 0.707107
0.000000 0.000000 0 70.625000 0.119928 100.000000 -0.000000 0.707107 0.000000 0.707107
...
0.000000 0.000000 0 70.625000 -0.174121 100.000000 0.000000 0.707107 -0.000000 0.707107
hiker {l Wrote}:Just to be sure: if you replay the history (use --history on the command line, in the directory where the (uncompressed) history.dat file is) - do you see the effect (note that the camera might be a bit messed up when the rescue happens)? I don't (neither windows nor linux).
hiker {l Wrote}:If you see the problem, can you apply the following patch:
[...]
(gdb) break kart.cpp:1019
No symbol table is loaded. Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n])
bin/supertuxkart --history > stklog
Rot: 0.000000 0.736886 0.000000 0.676017
Rot: 0.000000 0.736886 0.000000 0.676017
Rot: 0.000000 0.736886 0.000000 0.676017
Rot: 0.000000 0.736886 0.000000 0.676017
Rot: 0.000000 0.707107 0.000000 0.707107
Rot: 0.000000 0.707107 0.000000 0.707107
Rot: 0.000000 0.707107 0.000000 0.707107
Rot: 0.000000 0.707107 0.000000 0.707107
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707107 0.000000 0.707107
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707000 0.000000 0.707000
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707107 0.000000 0.707106
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707106 0.000000 0.707107
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000001 0.707107 0.000000 0.707107
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707107 0.000001 0.707107
Bug triggered by:
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707107 0.000000 0.707107 // the original line
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707000 0.000000 0.707000 // 8th and 10th column changed to the same value
Bug not triggered by:
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707106 0.000000 0.707107 // 8th column changed
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707107 0.000000 0.707106 // 10th column changed
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000001 0.707107 0.000000 0.707107 // 7th column changed
0.000000 0.000000 0 70.625000 -0.990000 100.000000 0.000000 0.707107 0.000001 0.707107 // 9th column changed
WillemS {l Wrote}:hiker {l Wrote}:So it seems something goes wrong when the 7th column and the 9th column contain exactly 0.000000, and the 8th and the 10th column contain exactly the same value. I don't however know what these columns contain (quaternion rotation or something?) so I have no clue about how this could happen...
src/karts> svn diff moveable.cpp
Index: moveable.cpp
===================================================================
--- moveable.cpp (revision 12186)
+++ moveable.cpp (working copy)
@@ -69,6 +69,9 @@
Vec3 xyz=getXYZ()+offset_xyz;
m_node->setPosition(xyz.toIrrVector());
btQuaternion r_all = getRotation()*rotation;
+ if(btFuzzyZero(r_all.getX()) && btFuzzyZero(r_all.getY()-0.70710677f) &&
+ btFuzzyZero(r_all.getZ()) && btFuzzyZero(r_all.getW()-0.70710677f) )
+ r_all.setX(0.000001f);
Vec3 hpr;
hpr.setHPR(r_all);
m_node->setRotation(hpr.toIrrHPR());
Users browsing this forum: No registered users and 1 guest