This report comes from this Blender report. The issue is explained there. Panzergame told me that it was fixed in UPBGE in this commit, but I test the same file with UPBGE 0.1.9 and it does the same as Blender.
This is the file.
This is a screencast of the problem.
Confirmed
Helgrind log:
==15465==
==15465== Lock at 0x363A3E18 was first observed
==15465== at 0x4C3140E: ??? (in /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
==15465== by 0xD0F6E4: CM_ThreadSpinLock::CM_ThreadSpinLock() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xD11D97: SG_Node::SG_Node(void*, void*, SG_Callbacks&) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBC5FF5: KX_GameObject::KX_GameObject(void*, SG_Callbacks) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBEDF72: gameobject_from_blenderobject(Object*, KX_Scene*, RAS_Rasterizer*, KX_BlenderSceneConverter&, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBEF189: BL_ConvertBlenderObjects(Main*, KX_Scene*, KX_KetsjiEngine*, e_PhysicsEngine, RAS_Rasterizer*, RAS_ICanvas*, KX_BlenderSceneConverter&, bool, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBF7173: KX_BlenderConverter::ConvertScene(KX_Scene*, RAS_Rasterizer*, RAS_ICanvas*, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB74889: LA_Launcher::InitEngine() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB75059: LA_PlayerLauncher::InitEngine() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0x83B92D: main (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== Address 0x363a3e18 is 8 bytes inside a block of size 16 alloc'd
==15465== at 0x4C2DA2F: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
==15465== by 0xD11D7E: SG_Node::SG_Node(void*, void*, SG_Callbacks&) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBC5FF5: KX_GameObject::KX_GameObject(void*, SG_Callbacks) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBEDF72: gameobject_from_blenderobject(Object*, KX_Scene*, RAS_Rasterizer*, KX_BlenderSceneConverter&, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBEF189: BL_ConvertBlenderObjects(Main*, KX_Scene*, KX_KetsjiEngine*, e_PhysicsEngine, RAS_Rasterizer*, RAS_ICanvas*, KX_BlenderSceneConverter&, bool, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBF7173: KX_BlenderConverter::ConvertScene(KX_Scene*, RAS_Rasterizer*, RAS_ICanvas*, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB74889: LA_Launcher::InitEngine() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB75059: LA_PlayerLauncher::InitEngine() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0x83B92D: main (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== Block was alloc'd by thread #1
==15465==
==15465== Possible data race during write of size 8 at 0x367D5A18 by thread #10
==15465== Locks held: none
==15465== at 0xBEAE64: BL_ArmatureObject::UpdateTimestep(double) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBE4558: BL_Action::Update(float, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBE2727: BL_ActionManager::Update(float, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB95DD6: update_anim_thread_func(TaskPool*, void*, int) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xFDA3FE: task_scheduler_thread_run (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0x4C330F6: ??? (in /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
==15465== by 0x9AB63A3: start_thread (pthread_create.c:333)
==15465== by 0x9FB6B0C: clone (clone.S:109)
==15465==
==15465== This conflicts with a previous read of size 8 by thread #11
==15465== Locks held: 1, at address 0x363A3E18
==15465== at 0xBEAAA3: BL_ArmatureObject::ApplyPose() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBEB0F1: BL_ArmatureObject::GetBoneMatrix(Bone*, MT_Matrix4x4&) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xC0A5B3: KX_BoneParentRelation::UpdateChildCoordinates(SG_Node*, SG_Node const*, bool&) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xD128CE: SG_Node::UpdateWorldDataThreadSchedule(double, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xD12935: SG_Node::UpdateWorldDataThreadSchedule(double, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xD12935: SG_Node::UpdateWorldDataThreadSchedule(double, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xD12935: SG_Node::UpdateWorldDataThreadSchedule(double, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xD1299C: SG_Node::UpdateWorldDataThread(double, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== Address 0x367d5a18 is 648 bytes inside a block of size 768 alloc'd
==15465== at 0x4C2DA2F: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
==15465== by 0xBED638: gameobject_from_blenderobject(Object*, KX_Scene*, RAS_Rasterizer*, KX_BlenderSceneConverter&, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBEF189: BL_ConvertBlenderObjects(Main*, KX_Scene*, KX_KetsjiEngine*, e_PhysicsEngine, RAS_Rasterizer*, RAS_ICanvas*, KX_BlenderSceneConverter&, bool, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xBF7173: KX_BlenderConverter::ConvertScene(KX_Scene*, RAS_Rasterizer*, RAS_ICanvas*, bool) (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB74889: LA_Launcher::InitEngine() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0xB75059: LA_PlayerLauncher::InitEngine() (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== by 0x83B92D: main (in /home/tristan/Compilation/UPBGE/build_linux/bin/blenderplayer)
==15465== Block was alloc'd by thread #1
==15465==
UPBGE V0.2.0
1) I have this problem in playing walk and run animations.
2) I don't know why ground plane don't render.
3) I see some issues about AUD_OpenALDevice in helgrind (just for notification)
Here is test file:
Advanced game character.zip
Maybe usefull information: the only way to use current Blender version and not be affected by this bug is to
git checkout v2.78b
git revert bedc58ac4e5e86758fd94a7c4bac77003134e947
And then, you have to edit BL_Action.cpp by hand, because git can't do it automatically. In this way, I have Blender in almost last version (I didn't try with 2.97), and the animation can be played well. Maybe, as this commit (bedc58) is about, "last action frame not updated" but maybe still there... but I don't notice it.
the ground normals are inverted for one thing. And the brick setup for the animation is all goofy...I really cannot make sense out of it TBH, but I did get walk to work and if you check jump it is working already just fine.
I reported this animation bug some months ago:
https://github.com/UPBGE/blender/issues/352
@youle31 : Do you remember it?
about plane texture. I don't know why normal inverted. It was OK the last time I checked it (0.1.8 or 0.1.9).
@alabd14313 I think you are posting an issue that it is not related with the bug I mention here (about animation). Please, create a new issue and delete comments here (also justinbarrett's).
Or explain better how to reproduce the bug in your file.
Also, if you discover several bugs, you have to create one issue per bug, not all in same report.
Agreed, My response was not to you Mario...and I apologize for adding noise to this issue.
Even if this bug report is not very active, we are working on a fix, this fix just involve a deeper refactor especially for the multithread management. Some works are available on ge_enkits branch (not yet finished).
See #730.
Now for 0.3 we use blender animation system therefore i close this
Most helpful comment
Even if this bug report is not very active, we are working on a fix, this fix just involve a deeper refactor especially for the multithread management. Some works are available on ge_enkits branch (not yet finished).