Silent crash in Godot 4.4.1 + NobodyWho on Windows (possible AVX2 incompatibility)

Godot Version

4.4.1

My Godot extension research

I’m using Godot 4.4.1 on Windows with an AMD Radeon 3 Vega 8 processor
I installed the NobodyWho extension from a GitHub .zip, and if I call methods like say() or start_worker(), the game window closes immediately with no visible logs.

I verified that the problem disappears if I don’t call those methods, which indicates that the crash is coming from within the addon’s .dll.

I also tested with a very lightweight GGUF model (TinyLLaMA Q2_K), and the behavior persists.

I suspect that the included .dll was compiled with AVX2 instructions, and that would be causing the silent shutdown when running on a non-AVX2 CPU.

Has anyone else experienced these types of crashes on Windows for this reason? Is there a version of the addon compiled without AVX2, or would it be better to compile it manually from the source code in Rust?


my specs
:desktop_computer: System:
OS: Windows

Godot: 4.4.1 from the official website

CPU: AMD with Radeon Vega 8 graphics

Issue: AVX2 I guess

Addon: NobodyWho (downloaded as a .zip from GitHub)

Model used: TinyLLaMA-1.1B-chat-Q2_K.gguf (very lightweight) and gemma-2-2b-it-Q4_K_M.gguf

Result: If you call methods like say() or start_worker(), the game window closes silently (no logs or errors)


:thinking: Preliminary Conclusion
Even on Windows, the .dll files that come precompiled with the extension might have been generated with AVX2 enabled. If your CPU doesn’t support AVX2, the .dll loads, but crashes when executing specific instructions within the addon’s Rust code, such as LLM calls.


SOURCE TEST:
This is a test for you, I don’t need to upload it to a repository, because it only consists of a single scene, 3 nodes and a script, which are the ones you see below:

node chat = nobodyWhoChat (default name)
node chatmodel = nobodyWhoModel (default name)

extends Node

func _ready():
	print(">>> READY MAIN NODE IS ON")

	var chat_node = $Chat
	var model_node = $ChatModel

	if chat_node:
		print(">>> Node Chat detected correctly")
	else:
		print(">>> ERROR: Node Chat not found")

	if model_node:
		print(">>> Node ChatModel detected correctly")
		print("path to model GGUF assigned:", model_node.model_path)

		# chat_node.start_worker() I NEED TO COMMENT THIS ONLY FOR RUN
		print(">>> now, try to use the method say or start_worker")

		# we wait artificially 5 seconds for don't close the window
		await get_tree().create_timer(5.0).timeout
		print(">>> await is up. Is the engine alive?")

	else:
		print(">>> ERROR: Node ChatModel not found")

the console:
image
Do your own tests, and if you find something useful, you can report it to the source repository:

PD:

Now that I remember, if you download the addon from the assets-lib inside the engine, you will get a 404 not found, which is why I downloaded it from GitHub, if anyone needs it, here is a direct link to the nobodywho-godot-v5.3.1.zip:
https://github.com/nobodywho-ooo/nobodywho/releases/download/v5.3.1/nobodywho-godot-v5.3.1.zip