Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Curve.add_point has changed and has no compatibility function #1512

Open
fire opened this issue Jun 30, 2024 · 4 comments
Open

Curve.add_point has changed and has no compatibility function #1512

fire opened this issue Jun 30, 2024 · 4 comments

Comments

@fire
Copy link
Member

fire commented Jun 30, 2024

Godot version

https://github.com/godotengine/godot/tree/4ab8fb809396fa38ba929fec97cfcb7193f1c44d

godot-cpp version

https://github.com/godotengine/godot-cpp/tree/99926d8e2027f6bfdc66e341a1c735b20eda61e4

System information

Windows 11, Nvidia 3090, Vulkan forward+

Issue description

We are trying to upgrade to 4.3 and loading with godot double precision crashes when using the gdextension.

CraterCrash/godot-orchestrator#450

Also, I noticed that execution of the game doesn't crash, but the editor does.

Steps to reproduce

  1. compile godot engine precision=double
  2. load project
  3. load gdextension for orchestrator
  4. open a orchestration file

344434483-7831078d-c271-4f44-a5c0-b04e606e5655

Minimal reproduction project

godot-orchestrator-demo-windows-release(3).zip

@dsnopek
Copy link
Collaborator

dsnopek commented Jul 1, 2024

Compatibility methods are something that needs to be added on the Godot side, so this issue should probably be moved there.

Also, you should make sure that you're compiling your GDExtension with precision=double and using an extension_api.json that was generated from a Godot that was built with double precision. The method hashes can be different between single and double precision builds, so you need to make sure to have those aligned.

@Naros
Copy link
Contributor

Naros commented Jul 1, 2024

@dsnopek in that case, I bet its the extension_api.json issue then, because I believe Fire and I were using the single precision file that was included in the godot-cpp checkout by default.

I wonder if it would be helpful to have extension_api_single.json and extension_api_double.json be something that can be maintained in godot-cpp's repository and then have the bindings generator base which gets used off the build configuration?

This would certainly make it easier for plug-in maintainers to actually generate a double and single precision build without having to fiddle with the export dumps on CI imo.

@dsnopek
Copy link
Collaborator

dsnopek commented Jul 1, 2024

It would be nice to have something in the extension_api.json to identify whether it was generated with a single or double precision build, so we could detect and error out if someone is trying to make a precision=double build with a bad extension_api.json.

I don't know that we should be including the double precision JSON file in godot-cpp, though. Godot doesn't distribute official double precision builds, and so I don't know that we want to include extension_api.json files from non-official builds in godot-cpp. If folks are making their own Godot builds (which is required for double precision), they should be using their own extension_api.json.

@fire
Copy link
Member Author

fire commented Jul 1, 2024

Yes! An error would be great so I didn’t need to go a wild goose chase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants