GDMP icon indicating copy to clipboard operation
GDMP copied to clipboard

HolisticLandmark clashes

Open GeorgeS2019 opened this issue 1 year ago • 21 comments

If draw_landmarks(landmarks) commented, it runs continuously.

func _result_callback(stream_name: String, packet: MediaPipePacket) -> void:
	print(stream_name)
	if stream_name == "image_in":
		var image_frame = MediaPipeImage.create_from_packet(packet)
		image = image_frame.get_image()
	elif stream_name in ["pose_landmarks", "face_landmarks", "left_hand_landmarks", "right_hand_landmarks"]:
		var proto := packet.get_proto("")
		var landmarks = proto.get("landmark")
		# draw_landmarks(landmarks)
	elif stream_name == "face_blendshapes":
		var proto = packet.get_proto("")
		var classifications = proto.get("classification")
		show_blendshapes(classifications)

E 0:00:54:0888   HolisticLandmarker.gd:81 @ show_blendshapes(): This function in this node (/root/VisionTask/VBoxContainer/Image/Blendshapes) can only be accessed from either the main thread or a thread group. Use call_deferred() instead.
  <C++ Error>    Condition "!is_readable_from_caller_thread()" is true. Returning: (false)
  <C++ Source>   scene/main/node.cpp:1278 @ can_auto_translate()
  <Stack Trace>  HolisticLandmarker.gd:81 @ show_blendshapes()
                 HolisticLandmarker.gd:22 @ _result_callback()

E 0:00:54:0889   HolisticLandmarker.gd:81 @ show_blendshapes(): Caller thread can't call this function in this node (/root/VisionTask/VBoxContainer/Image/Blendshapes). Use call_deferred() or call_thread_group() instead.
  <C++ Error>    Condition "!is_accessible_from_caller_thread()" is true.
  <C++ Source>   scene/main/canvas_item.cpp:423 @ queue_redraw()
  <Stack Trace>  HolisticLandmarker.gd:81 @ show_blendshapes()
                 HolisticLandmarker.gd:22 @ _result_callback()
				 
E 0:00:54:0890   HolisticLandmarker.gd:81 @ show_blendshapes(): This function in this node (/root/VisionTask/VBoxContainer/Image/Blendshapes) can only be accessed from the main thread. Use call_deferred() instead.
  <C++ Error>    Condition "is_inside_tree() && !is_current_thread_safe_for_nodes()" is true.
  <C++ Source>   scene/gui/control.cpp:1613 @ update_minimum_size()
  <Stack Trace>  HolisticLandmarker.gd:81 @ show_blendshapes()
                 HolisticLandmarker.gd:22 @ _result_callback()

E 0:00:54:0892   HolisticLandmarker.gd:81 @ show_blendshapes(): Caller thread can't call this function in this node (/root/VisionTask/VBoxContainer/Image/Blendshapes). Use call_deferred() or call_thread_group() instead.
  <C++ Error>    Condition "!is_accessible_from_caller_thread()" is true.
  <C++ Source>   scene/main/node.cpp:3311 @ update_configuration_warnings()
  <Stack Trace>  HolisticLandmarker.gd:81 @ show_blendshapes()
                 HolisticLandmarker.gd:22 @ _result_callback()

GeorgeS2019 avatar Dec 10 '24 08:12 GeorgeS2019

Packet callbacks invoked by MediaPipeGraph are not executed during idle time in Godot, thus the error.

Demo project has updated to GDMP 28aaccc to make use of MediaPipeTaskRunner for holistic landmark task, that should fix the issue.

j20001970 avatar Dec 10 '24 10:12 j20001970

CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.official (77dcf97d82cbfe4e4615475fa52ca03da645dbd8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] error(-1): no debug info in PE/COFF executable
[2] error(-1): no debug info in PE/COFF executable
[3] error(-1): no debug info in PE/COFF executable
[4] error(-1): no debug info in PE/COFF executable
[5] error(-1): no debug info in PE/COFF executable
[6] error(-1): no debug info in PE/COFF executable
[7] error(-1): no debug info in PE/COFF executable
[8] error(-1): no debug info in PE/COFF executable
[9] error(-1): no debug info in PE/COFF executable
[10] error(-1): no debug info in PE/COFF executable
[11] error(-1): no debug info in PE/COFF executable
[12] error(-1): no debug info in PE/COFF executable
[13] error(-1): no debug info in PE/COFF executable
[14] error(-1): no debug info in PE/COFF executable
[15] error(-1): no debug info in PE/COFF executable
[16] error(-1): no debug info in PE/COFF executable
[17] error(-1): no debug info in PE/COFF executable
[18] error(-1): no debug info in PE/COFF executable
[19] error(-1): no debug info in PE/COFF executable
[20] error(-1): no debug info in PE/COFF executable
[21] error(-1): no debug info in PE/COFF executable
[22] error(-1): no debug info in PE/COFF executable
[23] error(-1): no debug info in PE/COFF executable
[24] error(-1): no debug info in PE/COFF executable
[25] error(-1): no debug info in PE/COFF executable
[26] error(-1): no debug info in PE/COFF executable
[27] error(-1): no debug info in PE/COFF executable
[28] error(-1): no debug info in PE/COFF executable
[29] error(-1): no debug info in PE/COFF executable
[30] error(-1): no debug info in PE/COFF executable
-- END OF BACKTRACE --
================================================================

GeorgeS2019 avatar Dec 11 '24 22:12 GeorgeS2019

Could you try narrowing down to which line in GDScript lead to the crash? No platform-specific code is used in MediaPipeTaskRunner from GDMP side, chances are that there are issues in mediapipe when running on Windows.

CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.official (77dcf97d82cbfe4e4615475fa52ca03da645dbd8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] error(-1): no debug info in PE/COFF executable
[2] error(-1): no debug info in PE/COFF executable
[3] error(-1): no debug info in PE/COFF executable
[4] error(-1): no debug info in PE/COFF executable
[5] error(-1): no debug info in PE/COFF executable
[6] error(-1): no debug info in PE/COFF executable
[7] error(-1): no debug info in PE/COFF executable
[8] error(-1): no debug info in PE/COFF executable
[9] error(-1): no debug info in PE/COFF executable
[10] error(-1): no debug info in PE/COFF executable
[11] error(-1): no debug info in PE/COFF executable
[12] error(-1): no debug info in PE/COFF executable
[13] error(-1): no debug info in PE/COFF executable
[14] error(-1): no debug info in PE/COFF executable
[15] error(-1): no debug info in PE/COFF executable
[16] error(-1): no debug info in PE/COFF executable
[17] error(-1): no debug info in PE/COFF executable
[18] error(-1): no debug info in PE/COFF executable
[19] error(-1): no debug info in PE/COFF executable
[20] error(-1): no debug info in PE/COFF executable
[21] error(-1): no debug info in PE/COFF executable
[22] error(-1): no debug info in PE/COFF executable
[23] error(-1): no debug info in PE/COFF executable
[24] error(-1): no debug info in PE/COFF executable
[25] error(-1): no debug info in PE/COFF executable
[26] error(-1): no debug info in PE/COFF executable
[27] error(-1): no debug info in PE/COFF executable
[28] error(-1): no debug info in PE/COFF executable
[29] error(-1): no debug info in PE/COFF executable
[30] error(-1): no debug info in PE/COFF executable
-- END OF BACKTRACE --
================================================================

j20001970 avatar Dec 12 '24 05:12 j20001970

I think UI threads conflict. The App displays complete landmarks for 0.5 sec and clashes

GeorgeS2019 avatar Dec 12 '24 05:12 GeorgeS2019

I think UI threads conflict. The App displays complete landmarks for 0.5 sec and clashes

Does performing single image inference multiple times also lead to the crash?

j20001970 avatar Dec 12 '24 05:12 j20001970

When I suppressed draw landmarks but only displaying in text the blendshapes, the app run continuously.

Single image inference multiple times before callback is independent of UI. However, the sending of next frame image for GDectension multiple time inference must wait until all drawing of landmarks are completed . This is my guest.

GeorgeS2019 avatar Dec 12 '24 05:12 GeorgeS2019

Does updating to mediapipe v0.10.20 (https://github.com/j20001970/GDMP-demo/commit/d483c7ae963caae2c779217e7f4b7304c9d61320) solves your problem?

j20001970 avatar Dec 27 '24 07:12 j20001970

It works with image and loaded video.

Live Camera

@j20001970 crash again. Same error message as here https://github.com/j20001970/GDMP/issues/60#issuecomment-2537329584

Not sure why.

I see a completely render face landmarks and post landmarks, however, after I frame, the app crash.

Using loaded video, you could see missing face landmarks in same frames. miss alignment of post landmarks.

Godot_v4 3-stable_win64_LDFpkCGnfn

GeorgeS2019 avatar Jan 01 '25 12:01 GeorgeS2019

This project may need to have way to check the stability of landmarks. Pose landmarks using dots may not be sufficient.

e.g use lines to link up these dots for both pose and hand landmarks

image

GeorgeS2019 avatar Jan 01 '25 12:01 GeorgeS2019

@srcnalt https://github.com/srcnalt/rpm-godot-sdk/issues/3 Godot Mediapipe holistic landmark is almost there

Perhaps time to look into it, especially Facebook Meta is putting strong interest to Godot. See Godot Cons 2024 Nov

GeorgeS2019 avatar Jan 01 '25 13:01 GeorgeS2019

@Malcolmnixon GodotReadyPlayerMeAvatar

The hollisticlandmark is here The motion matching is now GDextension @GuilhermeGSousa https://github.com/GuilhermeGSousa/godot-motion-matching-demo

GeorgeS2019 avatar Jan 01 '25 13:01 GeorgeS2019

https://github.com/google-ai-edge/mediapipe/issues/3421#issuecomment-2571639888

GeorgeS2019 avatar Jan 05 '25 21:01 GeorgeS2019

Could you try narrowing down to which line in GDScript lead to the crash? No platform-specific code is used in MediaPipeTaskRunner from GDMP side, chances are that there are issues in mediapipe when running on Windows.

CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.official (77dcf97d82cbfe4e4615475fa52ca03da645dbd8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] error(-1): no debug info in PE/COFF executable
[2] error(-1): no debug info in PE/COFF executable
[3] error(-1): no debug info in PE/COFF executable
[4] error(-1): no debug info in PE/COFF executable
[5] error(-1): no debug info in PE/COFF executable
[6] error(-1): no debug info in PE/COFF executable
[7] error(-1): no debug info in PE/COFF executable
[8] error(-1): no debug info in PE/COFF executable
[9] error(-1): no debug info in PE/COFF executable
[10] error(-1): no debug info in PE/COFF executable
[11] error(-1): no debug info in PE/COFF executable
[12] error(-1): no debug info in PE/COFF executable
[13] error(-1): no debug info in PE/COFF executable
[14] error(-1): no debug info in PE/COFF executable
[15] error(-1): no debug info in PE/COFF executable
[16] error(-1): no debug info in PE/COFF executable
[17] error(-1): no debug info in PE/COFF executable
[18] error(-1): no debug info in PE/COFF executable
[19] error(-1): no debug info in PE/COFF executable
[20] error(-1): no debug info in PE/COFF executable
[21] error(-1): no debug info in PE/COFF executable
[22] error(-1): no debug info in PE/COFF executable
[23] error(-1): no debug info in PE/COFF executable
[24] error(-1): no debug info in PE/COFF executable
[25] error(-1): no debug info in PE/COFF executable
[26] error(-1): no debug info in PE/COFF executable
[27] error(-1): no debug info in PE/COFF executable
[28] error(-1): no debug info in PE/COFF executable
[29] error(-1): no debug info in PE/COFF executable
[30] error(-1): no debug info in PE/COFF executable
-- END OF BACKTRACE --
================================================================

I'm running into this same issue bug. Can you provide more details about it's cause.

func init_task() -> void: var builder := MediaPipeGraphBuilder.new() var node := builder.add_node(package_name+".HolisticLandmarkerGraph") node.set_options(options) builder.connect_input_to("image_in", node, "IMAGE") builder.connect_to_output(node, "POSE_LANDMARKS", "pose_landmarks") builder.connect_to_output(node, "LEFT_HAND_LANDMARKS", "left_hand_landmarks") builder.connect_to_output(node, "RIGHT_HAND_LANDMARKS", "right_hand_landmarks") builder.connect_to_output(node, "FACE_LANDMARKS", "face_landmarks") builder.connect_to_output(node, "FACE_BLENDSHAPES", "face_blendshapes") var config := builder.get_config() var callback: Callable if running_mode == MediaPipeTask.RUNNING_MODE_LIVE_STREAM: callback = self._packets_callback task_runner.initialize(config, callback)

i think the issue lies with the MediaPipeGraphBuilder class. It appears to run stably when running one graph. But fails when multiple graphs are run. Additionally, the use of MediaPipeGraphBuilder is unique to the HolisticLandmarker.gd script. e.g(it's not used in FaceLandmarker.gd or HandLandmarker.gd)

CrashHandlerException: Program crashed with signal 11 corresponds to a segmentation fault error which leads me to believe that the MediaPipeGraphBuilder is causing a stackoverflow/bufferoverflow. If you can provide anymore insights into this issue it would be much appreciated

Gtucker3d avatar Feb 19 '25 07:02 Gtucker3d

the use of MediaPipeGraphBuilder is unique to the HolisticLandmarker.gd script.

There are no official task API for holistic landmarker yet, MediaPipeGraphBuilder is introduced for creating graphs that are compiled in GDMP but currently no ways to access with class method calls.

CrashHandlerException: Program crashed with signal 11 corresponds to a segmentation fault error which leads me to believe that the MediaPipeGraphBuilder is causing a stackoverflow/bufferoverflow.

Could you point it out for me that which line in HolisticLandmarker.gd GDScript caused signal 11? thanks in advance.

j20001970 avatar Feb 20 '25 02:02 j20001970

I'm not really sure which specific line to point you towards. On a related note, I can't load the GDMP.windows.dll generated from source. Being able to do so would aid my debugging attempts and pinpoint the problematic line.

here is the rough outline of how I built the GDMP.windows.dll

python ./setup.py --custom-opencv-dir C:/opencv/build /venv/Scripts/activate python ./build.py desktop --type release --output build/

ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_pl at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening t. at: (core\io\resource_loader.cpp:325) ERROR: Error loading extension: res://addons/GDMP/GDMP.gdextension at: (core\extension\gdextension_manager.cpp:234)

yes, it is located at "res://addons/GDMP/libs/x86_64/GDMP.windows.dll"

Gtucker3d avatar Feb 20 '25 13:02 Gtucker3d

I'm not really sure which specific line to point you towards. On a related note, I can't load the GDMP.windows.dll generated from source. Being able to do so would aid my debugging attempts and pinpoint the problematic line.

here is the rough outline of how I built the GDMP.windows.dll

python ./setup.py --custom-opencv-dir C:/opencv/build /venv/Scripts/activate python ./build.py desktop --type release --output build/

ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_pl at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening t. at: (core\io\resource_loader.cpp:325) ERROR: Error loading extension: res://addons/GDMP/GDMP.gdextension at: (core\extension\gdextension_manager.cpp:234)

yes, it is located at "res://addons/GDMP/libs/x86_64/GDMP.windows.dll"

It might be the incompatibility between bindings generated during setup.py and the editor version you are running (godot-cpp submodule is currently at v4.3). You can specify custom bindings with --extension-api-json or --godot-binary when running setup.py instead of using the one provided by godot-cpp.

Please also check that OpenCV libraries are also in the same folder with GDMP.windows.dll

j20001970 avatar Feb 20 '25 14:02 j20001970

--extension-api-json

Sorry My last post did not include this information. I am currently attempting to Open the GDMP.windows.dll with godotv4.3. looks like Godot is able to locate the GDMP.windows.dll but is not able to open it. The architectures are the same fore Godot and the GDMP.windows.dll (x86_64) so i guess the source GDMP.windows.dll is missing some dependencies???

yes, OpenCV libraries are also in the same folder with GDMP.windows.dll: version 3.4.1 I believe Godot locates and opens the OpenCV dll without issue since there are no error logs

Another interesting note, the prebuilt GDMP.windows.dll from the demo project is 10,126 kb while my source GDMP.windows.dll is 10,258 kb

Godot Engine v4.3.1.rc.custom_build.99d66b4b2 (2025-02-07 09:15:03 UTC) - https://godotengine.org ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474) ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474) ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474)

ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll. Error: Error 126: The specified module could not be found.. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening the project in the editor at least once.

how would i use these flags? --extension-api-json or --godot-binary godot-cpp/gdextension/README.md ???

Gtucker3d avatar Feb 20 '25 17:02 Gtucker3d

how would i use these flags? --extension-api-json or --godot-binary

These two flags are specific to setup.py in GDMP:

  • Use --extension-api-json to point to a extension-api.json file that you already have.
  • Use --godot-binary to point to your Godot editor executable, and setup.py will use extension-api.json that generated by the editor.

j20001970 avatar Feb 21 '25 01:02 j20001970

how would i use these flags? --extension-api-json or --godot-binary

These two flags are specific to setup.py in GDMP:

  • Use --extension-api-json to point to a extension-api.json file that you already have.
  • Use --godot-binary to point to your Godot editor executable, and setup.py will use extension-api.json that generated by the editor.

\GDMP>python setup.py --custom-opencv-dir C:/opencv/build --extension-api-json C:/Users/gerry/Desktop/gdmp_source_4/GDMP/godot-cpp/gdextension/extension_api.json --godot-binary C:/Users/gerry/Desktop/godot_v4_3/godot/bin/godot.windows.editor.x86_64.exe Dumping Extension API Godot Engine v4.3.1.rc.custom_build.99d66b4b2 (2025-02-07 09:15:03 UTC) - https://godotengine.org

Built-in type config: float_64 Using git for applying patches. Patching mediapipe Applying 00-WORKSPACE.diff Applying 01-glog.diff Applying 01-halide.diff Applying 01-opencv.diff Applying 01-v0.10.13-windows.diff Applying 02-api2_copy_from_any.diff Applying 02-inference_calculator_emscripten_pthread.diff Modifying file C:\Users\gerry\Desktop\gdmp_source_4\GDMP\mediapipe\WORKSPACE Replacing path = "C:\opencv\build", with path = "C:\opencv\build", Downloading Bazelisk for windows(amd64) Downloading: 100% Donwloading Buildifier for windows(amd64) Downloading: 100% ++++++ Please activate the venv before building GDMP by running source venv/Scripts/activate ++++++

\GDMP>venv\Scripts\activate (venv) C:\Users\gerry\Desktop\gdmp_source_4\GDMP>python ./build.py desktop --type release --output build/

bazel-bin/external/GDMP/GDMP/desktop/GDMP.dll INFO: Elapsed time: 2103.365s, Critical Path: 1436.12s INFO: 5292 processes: 1059 internal, 4233 local. INFO: Build completed successfully, 5292 total actions

Godot Engine v4.3.1.rc.custom_build.99d66b4b2 (2025-02-07 09:15:03 UTC) - https://godotengine.org ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474) ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474) ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474)

ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll. Error: Error 126: The specified module could not be found.. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening the project in the editor at least once. at: (core\io\resource_loader.cpp:325) ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll. Error: Error 126: The specified module could not be found.. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening the project in the editor at least once. at: (core\io\resource_loader.cpp:325)

is this what you mean? the extension_api.json references godot 4.3.0 while i'm using 4.3.1 but i don't think that's the cause of this issue

"header": {
	"version_major": 4,
	"version_minor": 3,
	"version_patch": 0,
	"version_status": "stable",
	"version_build": "official",
	"version_full_name": "Godot Engine v4.3.stable.official"
},

should i create link this into a new issue: Can't open dynamic library from GDMP?

Gtucker3d avatar Feb 21 '25 14:02 Gtucker3d

\GDMP>python setup.py --custom-opencv-dir C:/opencv/build --extension-api-json C:/Users/gerry/Desktop/gdmp_source_4/GDMP/godot-cpp/gdextension/extension_api.json --godot-binary C:/Users/gerry/Desktop/godot_v4_3/godot/bin/godot.windows.editor.x86_64.exe Dumping Extension API Godot Engine v4.3.1.rc.custom_build.99d66b4b2 (2025-02-07 09:15:03 UTC) - https://godotengine.org

Built-in type config: float_64 Using git for applying patches. Patching mediapipe Applying 00-WORKSPACE.diff Applying 01-glog.diff Applying 01-halide.diff Applying 01-opencv.diff Applying 01-v0.10.13-windows.diff Applying 02-api2_copy_from_any.diff Applying 02-inference_calculator_emscripten_pthread.diff Modifying file C:\Users\gerry\Desktop\gdmp_source_4\GDMP\mediapipe\WORKSPACE Replacing path = "C:\opencv\build", with path = "C:\opencv\build", Downloading Bazelisk for windows(amd64) Downloading: 100% Donwloading Buildifier for windows(amd64) Downloading: 100% ++++++ Please activate the venv before building GDMP by running source venv/Scripts/activate ++++++

\GDMP>venv\Scripts\activate (venv) C:\Users\gerry\Desktop\gdmp_source_4\GDMP>python ./build.py desktop --type release --output build/

bazel-bin/external/GDMP/GDMP/desktop/GDMP.dll INFO: Elapsed time: 2103.365s, Critical Path: 1436.12s INFO: 5292 processes: 1059 internal, 4233 local. INFO: Build completed successfully, 5292 total actions

Godot Engine v4.3.1.rc.custom_build.99d66b4b2 (2025-02-07 09:15:03 UTC) - https://godotengine.org ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474) ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474) ERROR: Condition "f.is_null()" is true. at: ShaderRD::_save_to_cache (servers\rendering\renderer_rd\shader_rd.cpp:474)

ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll. Error: Error 126: The specified module could not be found.. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening the project in the editor at least once. at: (core\io\resource_loader.cpp:325) ERROR: Can't open dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll. Error: Error 126: The specified module could not be found.. at: (platform\windows\os_windows.cpp:449) ERROR: Can't open GDExtension dynamic library: C:/Users/gerry/Desktop/godot-4.2.2-stable/godot-4.2.2-stable/bin/godot_projects/new_gdmp_project/addons/GDMP/libs/x86_64/GDMP.windows.dll at: (core\extension\gdextension.cpp:793) ERROR: Failed loading resource: res://addons/GDMP/GDMP.gdextension. Make sure resources have been imported by opening the project in the editor at least once. at: (core\io\resource_loader.cpp:325)

is this what you mean? the extension_api.json references godot 4.3.0 while i'm using 4.3.1 but i don't think that's the cause of this issue

"header": {
	"version_major": 4,
	"version_minor": 3,
	"version_patch": 0,
	"version_status": "stable",
	"version_build": "official",
	"version_full_name": "Godot Engine v4.3.stable.official"
},

That's strange, maybe we should focus on error 126 first, which indicates that certain dependencies are missing. I found a way to list a DLL's dependency list with objdump -p GDMP.windows.dll | grep "DLL Name:" from linux command line, here is the list of DLL names for v0.5 release:

        DLL Name: opencv_world3410.dll
        DLL Name: dbghelp.dll
        DLL Name: MSVCP140.dll
        DLL Name: KERNEL32.dll
        DLL Name: VCRUNTIME140.dll
        DLL Name: VCRUNTIME140_1.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
        DLL Name: api-ms-win-crt-heap-l1-1-0.dll
        DLL Name: api-ms-win-crt-math-l1-1-0.dll
        DLL Name: api-ms-win-crt-utility-l1-1-0.dll
        DLL Name: api-ms-win-crt-convert-l1-1-0.dll
        DLL Name: api-ms-win-crt-stdio-l1-1-0.dll
        DLL Name: api-ms-win-crt-string-l1-1-0.dll
        DLL Name: api-ms-win-crt-filesystem-l1-1-0.dll
        DLL Name: api-ms-win-crt-time-l1-1-0.dll
        DLL Name: api-ms-win-crt-environment-l1-1-0.dll
        DLL Name: api-ms-win-crt-locale-l1-1-0.dll

There should be some tools available on Windows for doing the same.

should i create link this into a new issue: Can't open dynamic library from GDMP?

Please open the issue if the error persists even when libraries dependencies are met.

j20001970 avatar Feb 21 '25 16:02 j20001970

Please open the issue if the error persists even when libraries dependencies are met.

https://github.com/j20001970/GDMP/issues/65#issue-2880238905

Gtucker3d avatar Feb 26 '25 05:02 Gtucker3d

Closed by https://github.com/j20001970/GDMP/issues/66#issuecomment-3003565683

j20001970 avatar Jun 27 '25 00:06 j20001970