Error on Unity 2022.3.13 on Windows IL2CPP
in0finite opened this issue · 9 comments
Library fails to decompress files on above platform.
The error message is: data corruption detected
.
Sorry, no time right now to make reproduction steps.
0.7.4 and 0.7.2 give runtime error, 0.7.3 fails to compile.
It looks like the problem is in the MSVC compiler.
The /d2ssa-cse-
option used in Unity causes incorrect code generation
https://godbolt.org/z/rfK5c6fGW
Reported here:
https://developercommunity.visualstudio.com/t/The-d2ssa-cse--option-causes-incorrect/10574272
Keep in mind that error happens on other platforms aswell, for example, on WebGL. As far as I know, they don't use MSVC for compiling to WebAssembly. The conversion process is: C# => IL => IL2CPP => CPP => Emscripten => WebAssembly.
Sorry, I forgot to mention that in the initial post. I assumed the bug is in IL2CPP.
WebGL fails the test with native integer types
Right answer is:
125
-3
125
WebGL reports:
18
18
125
Switching to ulong/long like last time might help here.
Switching to ulong/long like last time might help here.
Nope, I tried using my fork of library with ulong/long, it doesn't work.
A workaround for the MSVC problem:
Add additionalIl2CppArgs: --compiler-flags="/d2SSAOptimizer-"
to ProjectSettings.asset
I am getting a similar error on WebGL platform and using the additional CppArgs doesn't seem to fix it (can't build the project). I did the native integer types test, and it also reports wrong.
64310096
64236544
125
Any help would be great :)
The WebGL platform does not have proper debugging tools to find the root cause.
You can report a problem with a native integers in WebGL to Unity.
@Jake-NSW @in0finite
Looks like decompression works in Unity 2022.3.26f1 WebGL
Thanks for letting me know.
However, in the meantime, I switched to 2023.3.0b5 and the bug is still present here.