Closed bparvanov closed 3 weeks ago
I think I fixed it. Switched from OpenGL 4.5 core to OpenGL 4.1 core on macOS. Other systems remain untouched. I wish apple stuff wouldn't be so expensive then i could test it myself.
Thank you, but now this happens:
System.TypeInitializationException: The type initializer for 'Hexa.NET.ImGui.Backends.SDL2.ImGuiImplSDL2' threw an exception. ---> System.DllNotFoundException: Unable to load shared library '/Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplSDL2.dylib' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(/Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplSDL2.dylib, 0x0001): Library not loaded: /opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib Referenced from: <4484C004-9152-3921-B428-235D9000DB06> /Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplSDL2.dylib Reason: tried: '/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib' (no such file), '/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib' (no such file)
at System.Runtime.InteropServices.NativeLibrary.Load(String libraryPath)
at HexaGen.Runtime.LibraryLoader.LoadLibrary(LibraryNameCallback libraryNameCallback, LibraryExtensionCallback libraryExtensionCallback)
at Hexa.NET.ImGui.Backends.SDL2.ImGuiImplSDL2.InitApi()
at Hexa.NET.ImGui.Backends.SDL2.ImGuiImplSDL2..cctor()
--- End of inner exception stack trace ---
at Hexa.NET.ImGui.Backends.SDL2.ImGuiImplSDL2.SetCurrentContext(ImGuiContextPtr ctx)
at Hexa.NET.KittyUI.Windows.Window.Initialize(AppBuilder appBuilder) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/Window.cs:line 76
at Hexa.NET.KittyUI.Application.RegisterWindow(IRenderWindow window) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Application.cs:line 104
at Hexa.NET.KittyUI.Windows.CoreWindow.Show() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/CoreWindow.cs:line 205
at Hexa.NET.KittyUI.Application.Run(IRenderWindow mainWindow, AppBuilder builder) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Application.cs:line 55
at Hexa.NET.KittyUI.AppBuilder.Run() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/AppBuilder.cs:line 31
at Program.
Note that the file libImGuiImplSDL2.dylib does exist in the 'native' subfolder, but its dependency libSDL2-2.0.0.dylib does not
There is a similar file named libSDL2-2.0.dylib there.. if I rename it to libSDL2-2.0.0.dylib the same exception happens
By the way, FYI, today Apple announced the new Mac mini with M4 CPU... the cheapest model has 16GB RAM and costs $600
Try make a sym link from libSDL2-2.0.dylib to libSDL2-2.0.0.dylib and check again, if it works i will try making a patch tomorrow for it.
PS: libSDL2.dylib, libSDL2-2.0.dylib and libSDL2-2.0.0.dylib are all the same file and two are symlinks.
No change.. I think it looks for the file in the wrong place
dlopen(/Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplSDL2.dylib, 0x0001): Library not loaded: /opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib Referenced from: <4484C004-9152-3921-B428-235D9000DB06> /Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplSDL2.dylib Reason: tried: '/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib' (no such file), '/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib' (no such file)
Here are all the files located in the 'native' folder (after adding the symlink):
-rwxr--r--@ 1 borislav staff 3.7M Oct 27 21:23 cimgui.dylib -rwxr--r--@ 1 borislav staff 1.9M Oct 27 21:23 cimguizmo.dylib -rwxr--r--@ 1 borislav staff 2.0M Oct 27 21:23 cimnodes.dylib -rwxr--r--@ 1 borislav staff 5.8M Oct 27 21:23 cimplot.dylib -rwxr--r--@ 1 borislav staff 8.1M Oct 28 01:26 libDirectXTex.dylib -rwxr--r--@ 1 borislav staff 1.7M Oct 27 20:28 libImGuiImpl.dylib -rwxr--r--@ 1 borislav staff 1.7M Oct 27 20:35 libImGuiImplSDL2.dylib lrwxr-xr-x 1 borislav staff 17B Oct 29 20:12 libSDL2-2.0.0.dylib -> libSDL2-2.0.dylib -rwxr--r--@ 1 borislav staff 2.5M Oct 20 17:02 libSDL2-2.0.dylib -rwxr--r--@ 1 borislav staff 1.3M Oct 28 17:18 libopenal.dylib -rwxr--r--@ 1 borislav staff 618K Oct 28 12:55 libstbimage.dylib
It tries to load it from here "/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib"
my /opt folder is empty... if I recreate the whole path and copy the file to "/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib"
then the executable crashes:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_platform.dylib 0x18de6b7e0 _platform_strncmp + 176 1 libImGuiImplSDL2.dylib 0x12fe46960 ImGui_ImplSDL2_Init(SDL_Window, SDL_Renderer, void*) + 292 2 libImGuiImplSDL2.dylib 0x12fe4682c ImGui_ImplSDL2_InitForOpenGL + 36
I have absolutely no clue. But this could be a bigger issue could you test the glfw+opengl example in https://github.com/HexaEngine/Hexa.NET.ImGui
Yes, same issue there (can't find libImGuiImplGLFW.dylib's dependency - /opt/homebrew/opt/glfw/lib/libglfw.3.dylib):
System.DllNotFoundException: Unable to load shared library '/Users/borislav/Projects/Hexa.NET.ImGui/ExampleGLFWOpenGL3/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplGLFW.dylib' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable:
dlopen(/Users/borislav/Projects/Hexa.NET.ImGui/ExampleGLFWOpenGL3/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImplGLFW.dylib, 0x0001): Library not loaded: /opt/homebrew/opt/glfw/lib/libglfw.3.dylib
Referenced from:
at System.Runtime.InteropServices.NativeLibrary.Load(String libraryPath) at HexaGen.Runtime.LibraryLoader.LoadLibrary(LibraryNameCallback libraryNameCallback, LibraryExtensionCallback libraryExtensionCallback) at Hexa.NET.ImGui.Backends.GLFW.ImGuiImplGLFW.InitApi() in /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/Generated/FunctionTable.cs:line 28 at Hexa.NET.ImGui.Backends.GLFW.ImGuiImplGLFW..cctor()
Not sure if this stackoverflow question is related to our issue, but I'm sharing it anyway:
I found some more info on the topic:
When I call: otool -L libImGuiImplSDL2.dylib
It gives me: libImGuiImplSDL2.dylib: @rpath/libcimgui_impl.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib (compatibility version 3001.0.0, current version 3001.8.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
What we need to do is make sure all of our .dylib do not use absolute paths for non-system dependencies. In this case libSDL2-2.0.0.dylib is a non-system library so we should not use absolute path for it.
This can be fixed using the install_name_tool like this:
install_name_tool -change /opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib @rpath/libSDL2-2.0.0.dylib libImGuiImplSDL2.dylib
Now after we call "otool -L libImGuiImplSDL2.dylib" again, we get: libImGuiImplSDL2.dylib: @rpath/libcimgui_impl.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libSDL2-2.0.0.dylib (compatibility version 3001.0.0, current version 3001.8.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
Here is more info on @rpath: https://itwenty.me/posts/01-understanding-rpath/
Great now i just have to figure out how to set it in cmake. Good thing is that I can use darling for otool checking if it works.
I tried this: https://github.com/HexaEngine/cimgui_impl/blob/master/CMakeLists.txt#L194
About the mac mini, in Germany it costs 699€. And then additionally you have to pay for a developer license another 100€. Really no thanks, i unironically hate apple.
I uploaded a fix. Hopefully it works now without issues.
(You still have to wait a bit for nuget, if it doesn't restore then do "dotnet restore --no-cache")
I pulled the changes from Hexa.NET.ImGui repo and ran otool -L on all 6 libImGuiImpl*.dylib files.. Here are the results:
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/native/osx-arm64/libImGuiImplGLFW.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/native/osx-arm64/libImGuiImplGLFW.dylib: @rpath/libImGuiImplGLFW.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/homebrew/opt/glfw/lib/libglfw.3.dylib (compatibility version 3.0.0, current version 3.4.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/native/osx-x64/libImGuiImplGLFW.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/native/osx-x64/libImGuiImplGLFW.dylib: @rpath/libImGuiImplGLFW.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libglfw.dylib (compatibility version 3.0.0, current version 3.4.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1600.157.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.61.1)
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.SDL2/native/osx-arm64/libImGuiImplSDL2.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.SDL2/native/osx-arm64/libImGuiImplSDL2.dylib: @rpath/libImGuiImplSDL2.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libSDL2.dylib (compatibility version 3001.0.0, current version 3001.8.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.SDL2/native/osx-x64/libImGuiImplSDL2.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.SDL2/native/osx-x64/libImGuiImplSDL2.dylib: @rpath/libImGuiImplSDL2.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib (compatibility version 3001.0.0, current version 3001.8.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1600.157.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.61.1)
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends/native/osx-arm64/libImGuiImpl.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends/native/osx-arm64/libImGuiImpl.dylib: @rpath/libImGuiImpl.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libvulkan.1.dylib (compatibility version 1.0.0, current version 1.3.204) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends/native/osx-x64/libImGuiImpl.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends/native/osx-x64/libImGuiImpl.dylib: @rpath/libImGuiImpl.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libvulkan.1.dylib (compatibility version 1.0.0, current version 1.3.204) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1600.157.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.61.1)
Two are still problematic.. marked them with BOLD
I'm aware of the x64 build having still the issues but do the arm64 work?
No, it still has dependency with absolute path:
otool -L /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/native/osx-arm64/libImGuiImplGLFW.dylib /Users/borislav/Projects/Hexa.NET.ImGui/Hexa.NET.ImGui.Backends.GLFW/native/osx-arm64/libImGuiImplGLFW.dylib: @rpath/libImGuiImplGLFW.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/homebrew/opt/glfw/lib/libglfw.3.dylib (compatibility version 3.0.0, current version 3.4.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
The framework here doesn't use glfw just sdl2 i just want to confirm that it launches then i will fix the other ones. It doesn't make sense to do the same with the others if it doesn't even work in the first place.
Sorry, I thought we were testing the examples in Hexa.NET.ImGui...
Ok, I tested ExampleMinimal in Kitty solution and it's still giving me the same exception saying that it can't find "@rpath/libSDL2.dylib", but that's because for this to work we also have to set rpath to our executable as well (as stated in https://itwenty.me/posts/01-understanding-rpath/)
So instead I changed in libImGuiImplSDL2.dylib the dependency's path from @rpath/libSDL2.dylib to @loader_path/libSDL2.dylib using the following: install_name_tool -change @rpath/libSDL2.dylib @loader_path/libSDL2.dylib libImGuiImplSDL2.dylib
Now it finds libSDL2.dylib, but it can't find libvulkan.1.dylib. Here is the exception:
Unhandled exception. System.TypeInitializationException: The type initializer for 'Hexa.NET.ImGui.Backends.OpenGL3.ImGuiImplOpenGL3' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Hexa.NET.ImGui.Backends.ImGuiImpl' threw an exception. ---> System.DllNotFoundException: Unable to load shared library '/Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImpl.dylib' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(/Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImpl.dylib, 0x0001): Library not loaded: @rpath/libvulkan.1.dylib Referenced from: <360A86FD-4859-3F77-A211-D23D77E146FA> /Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/bin/Debug/net8.0/runtimes/osx-arm64/native/libImGuiImpl.dylib Reason: tried: '/Users/runner/work/cimgui_impl/cimgui_impl/VULKAN_SDK/lib/libvulkan.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/runner/work/cimgui_impl/cimgui_impl/VULKAN_SDK/lib/libvulkan.1.dylib' (no such file), '/Users/runner/work/cimgui_impl/cimgui_impl/VULKAN_SDK/lib/libvulkan.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/runner/work/cimgui_impl/cimgui_impl/VULKAN_SDK/lib/libvulkan.1.dylib' (no such file)
at System.Runtime.InteropServices.NativeLibrary.Load(String libraryPath)
at HexaGen.Runtime.LibraryLoader.LoadLibrary(LibraryNameCallback libraryNameCallback, LibraryExtensionCallback libraryExtensionCallback)
at Hexa.NET.ImGui.Backends.ImGuiImpl.InitApi()
at Hexa.NET.ImGui.Backends.ImGuiImpl..cctor()
--- End of inner exception stack trace ---
at Hexa.NET.ImGui.Backends.OpenGL3.ImGuiImplOpenGL3..cctor()
--- End of inner exception stack trace ---
at Hexa.NET.ImGui.Backends.OpenGL3.ImGuiImplOpenGL3.SetCurrentContext(ImGuiContextPtr ctx)
at Hexa.NET.KittyUI.Windows.Window.Initialize(AppBuilder appBuilder) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/Window.cs:line 78
at Hexa.NET.KittyUI.Application.RegisterWindow(IRenderWindow window) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Application.cs:line 104
at Hexa.NET.KittyUI.Windows.CoreWindow.Show() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/CoreWindow.cs:line 205
at Hexa.NET.KittyUI.Application.Run(IRenderWindow mainWindow, AppBuilder builder) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Application.cs:line 55
at Hexa.NET.KittyUI.AppBuilder.Run() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/AppBuilder.cs:line 31
at Program.
I looked in the 'native' folder and there really is no vulkan dylib file. These are all the files:
-rwxr--r--@ 1 borislav staff 3.7M Oct 27 21:23 cimgui.dylib -rwxr--r--@ 1 borislav staff 1.9M Oct 27 21:23 cimguizmo.dylib -rwxr--r--@ 1 borislav staff 2.0M Oct 27 21:23 cimnodes.dylib -rwxr--r--@ 1 borislav staff 5.8M Oct 27 21:23 cimplot.dylib -rwxr--r--@ 1 borislav staff 8.1M Oct 28 01:26 libDirectXTex.dylib -rwxr--r--@ 1 borislav staff 1.7M Oct 31 11:19 libImGuiImpl.dylib -rwxr--r-- 1 borislav staff 1.7M Oct 31 20:38 libImGuiImplSDL2.dylib -rwxr--r--@ 1 borislav staff 2.5M Oct 20 17:02 libSDL2.dylib -rwxr--r--@ 1 borislav staff 1.3M Oct 28 17:18 libopenal.dylib -rwxr--r--@ 1 borislav staff 618K Oct 28 12:55 libstbimage.dylib
Vulkan is a system component i can't ship that. I could only disable it for macos if it doesn't support vulkan.
Or I try to delay load the lib
Can your framework be "switched" easily to use OpenGL instead of Vulkan on MacOS.. I know it's "officially" deprecated by Apple, but it is still present in the latest MacOS
Vulkan isn't even implemented yet it's just that the dylib is linked against moltenvk I can make it a weak link means the Vulkan dylib is only loaded when the Vulkan code is accessed
By the way, you need to pay 100€ for developer license only if you want to publish apps in the Apple's app stores.. For testing purposes it's not needed.
I'll add metal and osx (Cocoa) bindings too in the final version
Also i'll transfer the issue to Hexa.NET.ImGui
This is fine then? (you can get the binaries form here for testing https://github.com/HexaEngine/cimgui_impl/actions)
@bparvanov are you still there?
Yes, sorry, I thought that you deleted the issue, but you actually moved it...
Yes, I replaced with the new .dylib files and the project ExampleGLFWOpenGL3 worked... Can you update the nuget packages, please..
Thanks again
Should be soon available on nuget, after that I'll update the deps of the framework.
And done now we just have to wait for nuget
I tried to run ExampleMinimal and the following exception throws:
System.InvalidOperationException: Context not created. at Hexa.NET.KittyUI.Windows.SdlContext.AssertCreated() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/SdlContext.cs:line 81 at Hexa.NET.KittyUI.Windows.SdlContext.SwapInterval(Int32 interval) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/SdlContext.cs:line 165 at Hexa.NET.KittyUI.Windows.Window.Initialize(AppBuilder appBuilder) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/Window.cs:line 75 at Hexa.NET.KittyUI.Application.RegisterWindow(IRenderWindow window) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Application.cs:line 103 at Hexa.NET.KittyUI.Windows.CoreWindow.Show() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Windows/CoreWindow.cs:line 191 at Hexa.NET.KittyUI.Application.Run(IRenderWindow mainWindow, AppBuilder builder) in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/Application.cs:line 54 at Hexa.NET.KittyUI.AppBuilder.Run() in /Users/borislav/Projects/Hexa.NET.KittyUI/Hexa.NET.KittyUI/AppBuilder.cs:line 30 at Program.$(String[] args) in /Users/borislav/Projects/Hexa.NET.KittyUI/ExampleMinimal/Program.cs:line 9
I tested it on MacOS Sonoma 14.6.1, the CPU is M1 (ARM)