Fix SilkMarshal.DelegateToPtr for NativeAOT #2428
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of the PR
Fixes a marshalling exception when calling
SilkMarshal.DelegateToPtr
under certain circumstances. This issue specifically seems to occur in Silk.NET.Vulkan. I am unsure as to why, however this should fix it.This PR adds a generic overload to the method which
Marshal.GetFunctionPointerForDelegate()
recommends in NativeAOT environments.Related issues, Discord discussions, or proposals
https://discord.com/channels/521092042781229087/607634593201520651/1344092431464927263
Further Comments
This will unfortunately require regeneration of at least the Vulkan project, and any other projects that decide to use the overload.