Search Issue Tracker

Fixed

Fixed in 2021.3.9f1, 2022.2.0b7, 2023.1.0a6

Votes

1

Found in

2021.3.0f1

2022.1.4f1

2022.2.0a9

2023.1.0a1

Issue ID

UUM-6748

Regression

Yes

PlayerBuildInterface.ExtraTypesProvider no longer provides types to IL2CPP

--

-

`PlayerBuildInterface.ExtraTypesProvider` was an undocumented feature used to allow code to provide a list of types that would be passed to IL2CPP when generating cpp. This allowed for code to provide closed forms for generic types/methods that cannot be seen statically by IL2CPP.

In 2021 and newer, this feature no longer works. Entities-0.51 is the first release for with Unity 2021 support and the removal of this feature is currently causing runtime exceptions being thrown in users upgrading from 2020 (https://forum.unity.com/threads/executionengineexception-attempting-to-call-method-unity-entities-fastequality-compareimpl-1.1296462/).

Users have a workaround by enabling generic sharing however in 2021 this is not the default behaviour, and enabling generic sharing comes with a performance cost.

Re-adding the feature would restore the previous correctness and performance seen in 2020. Unity 2022 enabled generic sharing as a fallback which hides the problem for users but sneakily still adds the performance cost with this feature removed so adding it back to 2022+ would be worthwhile until a better approach to providing additional types to IL2CPP can be created.

Original report, thread of updates/discussion and provided repro/test case:
https://unity.slack.com/archives/CSVEWDRM1/p1638479415069000

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.