Search Unity

4.6 iOS 64-bit beta

Discussion in 'iOS and tvOS' started by jonas-echterhoff, Jan 12, 2015.

  1. Satoshi Ueda

    Satoshi Ueda

    Joined:
    Feb 10, 2015
    Posts:
    14
    The size of our app was 99.5 MB with Unity 4.3.1 (IL2CPP Universal Release), now it's 103 MB with the latest patch! Did other people experience the same issue? Should we wait until the next patch to see if the same issue occurs, or should we work on reducing the size of the textures and sound? We'd love to hear your opinions!
     
  2. nchen24_ca

    nchen24_ca

    Joined:
    Feb 6, 2015
    Posts:
    5
    @Satoshi Ueda
     
  3. Psy_Duck

    Psy_Duck

    Joined:
    Jun 12, 2013
    Posts:
    9
    @JoshPeterson Hello, I have run into the same bug as @cojo71 (TypeLoadException) and just submitted bug with case ID 676471. Any news on possible workaround or timetable for a fix? Keep up the good work!
     
  4. big_march

    big_march

    Joined:
    Mar 2, 2015
    Posts:
    38

    I got the same problem.
    "WebRequest.Create" casued UnsupportedException.
     
  5. Guirao

    Guirao

    Joined:
    Nov 24, 2012
    Posts:
    68
    Hello, so from 1 feb 2015 apple wants us to upload binaries with arm64 architecture, does that mean it's a must to use ILC2PP or we won't be able to successfully send the binary? I use reflection.emit which isn't compatible so I can't compile with this architecture.

    What are my options here? Can I compile with mono and add arm64 later on Xcode?
     
    Last edited: Mar 2, 2015
  6. Lintz

    Lintz

    Joined:
    Mar 2, 2015
    Posts:
    4
    @JoshPeterson
    I'm using 4.6.3p1 version.
    I got this error at build time.

    Code (CSharp):
    1. Undefined symbols for architecture arm64:
    2.   "_GetInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0", referenced from:
    3.       GenInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0_Types in Il2CppGenericInstDefinitions.o
    4.   "_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0", referenced from:
    5.       GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0_Types in Il2CppGenericInstDefinitions.o
    6.      (maybe you meant: _GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0)
    7. ld: symbol(s) not found for architecture arm64
    Is this error also related to code generating by IL2CPP?
     
  7. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    Reflection.Emit was never allowed on iOS (runtime code gen is forbidden by Apple) no matter what tool or engine used so it does not work with mono either.
     
    MrEsquire likes this.
  8. Guirao

    Guirao

    Joined:
    Nov 24, 2012
    Posts:
    68
  9. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
  10. Guirao

    Guirao

    Joined:
    Nov 24, 2012
    Posts:
    68
    Oh so we might be lucky and IL2CPP might actually suport jsonnet?

    By the way, is System.Cryptography supported? Because I have compiled and it's behaving oddly, different results of MD5 with Mono and ILL2CPP.
     
  11. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    It's not about luck. JSON.NET already supports AOT platforms which iOS is among few others. The author uses different approach to get the asset work on these platforms. Also @Dustin Horne has been active in this thread to make sure all IL2CPP related issues with it would be resolved (when possible).

    However your original issue, Reflection.Emit is not about IL2CPP, JSON.NET or even Unity. It's a restriction set by Apple
     
    Last edited: Mar 2, 2015
    Dustin-Horne likes this.
  12. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,422
    These MD5 sum/System.Cryptography issues were fixed in 4.6.3p1 - there were some errors in bitwise operators that were causing some issues.
     
  13. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,568
    Yes, my asset supports il2cpp, though mileage may vary. There are still bugs in il2cpp and some mono features that have not yet been ported over so there may be things that don't yet work, though il2cpp has gotten pretty stable and I'm finally hearing of less issues.
     
  14. Guirao

    Guirao

    Joined:
    Nov 24, 2012
    Posts:
    68
    I'm using 4.6.3f1, not getting errors but the results aren't the same with IL2CPP and Mono.
     
  15. Lars-Blaabjerg

    Lars-Blaabjerg

    Joined:
    Apr 5, 2011
    Posts:
    54
    Yeah, that was the "issue" :)
     
  16. aiab_animech

    aiab_animech

    Joined:
    Jul 4, 2012
    Posts:
    177
    Building my app with Mono to iOS takes about 30 seconds. With IL2CPP it takes over 30 minutes. The same applies for all our apps at our company that we've tried. (Tried 3 different apps so far).
    Anyone else experiencing this? Anyone noticed why this happens? It's quite unbearable and extremely time consuming.
    We are using Coherent UI (the new 64 bit version), by the way.
     
  17. arkon

    arkon

    Joined:
    Jun 27, 2011
    Posts:
    1,122
    I recently benchmarked my build with both methods, and IL2CPP came in at 4.58x slower. They say they are working on this so lets hope they pull off some much needed speed improvements, otherwise it feels like a step backwards.
     
  18. Guirao

    Guirao

    Joined:
    Nov 24, 2012
    Posts:
    68
    Then it's not fixed?
     
  19. Lars-Blaabjerg

    Lars-Blaabjerg

    Joined:
    Apr 5, 2011
    Posts:
    54
    It was fixed in 4.6.3p1. You stated that you were using 4.6.3f1 which is older.
     
  20. jeffsherwin

    jeffsherwin

    Joined:
    Aug 22, 2014
    Posts:
    47
    Any one else seeing a big slow down in frame rate around rigid body collisions?
     
  21. Guirao

    Guirao

    Joined:
    Nov 24, 2012
    Posts:
    68
    Holly Molly, your right!
     
  22. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @i9mobile

    We will have this fixed in 4.6.3p2. We also have a work around for 4.6.3p1 and a special build of 4.6.3p1 that corrects this issue, if you would like to use it. The details are here:

    http://forum.unity3d.com/threads/4-6-ios-64-bit-beta.290551/page-19#post-1986671
     
  23. aiab_animech

    aiab_animech

    Joined:
    Jul 4, 2012
    Posts:
    177
    It's not 4.58x slower for me. It's way waaaay slower. 30 secs became over 30 mins, closer to 35 actually.
     
  24. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @tomtc123

    Could you please submit a bug for this issue? This feels like we might have some problems related to the way we are doing stripping. We have a few fixes for stripping coming in 4.6.3p2, but I would like to determine if this problem still occurs. Thanks.
     
  25. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @Rurumi

    Could you please submit a new bug for this issue? We may have a subtle problem with code conversion and integer overflow here. Also, please specify in the bug that this is specific to an iPhone 4. I suspect that we did not test bug 672199 on that device.
     
  26. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @Psy_Duck

    We don't have any more information now, unfortunately. I can tell you that we won't have a fix from the IL2CPP side in 4.6.3p2. We're working hard on run-time creation of generic types (which is what we need to correctly solve this problem), but that code is not ready yet.

    We've also been in contact with the Parse developers to try some work arounds in the Parse code. They are evaluating the behavior with the work arounds now. It might be possible to work around the ParseUser.LogInASync problem, but the lack of support for run-time generic type creation in IL2CPP could cause later problems with Parse.

    We know that this is a blocking issue for a number of developers, and it is really our top priority (outside of regression bugs).
     
    Psy_Duck and jeffsherwin like this.
  27. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @jeffsherwin

    We've not had any reports yet of slowness during game run-time with IL2CPP. In fact, our testing and benchmarking has shown significant improvements in performance over the Mono scripting backend.

    If you have a repro case we can see, we would be *very* interested in correcting this. Thanks.
     
  28. Simie

    Simie

    Joined:
    Oct 26, 2012
    Posts:
    456
    Hello, just wondering if you could provide an update for cases 675730 and 670410? Case 670410 I'm no longer getting, but I'm getting the crash bug in 675730 instead so I'm not sure if it is actually fixed or not.
     
  29. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @Simie

    We have not yet investigated case 675730, so I can't give you any updates on that one. It is on our list of bugs to investigate and fix now.

    For case 670410, it looks like we thought was corrected, but then you mentioned that it was still occurring in 4.6.3, and the bug was correctly opened again. Has it now been corrected in 4.6.3p1? Thanks.
     
  30. Simie

    Simie

    Joined:
    Oct 26, 2012
    Posts:
    456
    I can't reproduce it in 4.6.3p1, as the crash bug occurs. It's possible that the bug is fixed and so revealed the crash bug, but I can't tell yet.
     
  31. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @Simie

    Thanks for clarifying this, I appreciate it!
     
    Simie likes this.
  32. Gasp

    Gasp

    Joined:
    Apr 9, 2013
    Posts:
    8
    Are you using the latest patch 4.3.1p1?

    For some reason the first 4.3.1 release was waaay slower for me. It took almost 2 hours (!) to finish the Postprocessing Player phase. Up from 6 min total Unity build time with Mono. Since p1 it's about 20min with IL2CPP, so roughly 4x slower.
     
  33. helios

    helios

    Joined:
    Oct 5, 2009
    Posts:
    308
    Same here - IL2CPP is painfully slow, to the point where I keep thinking it's crashed. It takes FOREVER to build out of Unity, and then it takes wayyy longer for Xcode to build. If it's expected to be slower, is it expected to be 100x slower?
     
  34. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    (NOTE: originally posted the case and this message two weeks ago in the thread named "[Official] The collected il2cpp forum topic." but it seems dead, so trying here)

    @JoshPeterson Hi there, Congrats on this awesome new tech! Very excited about it :)

    Our assets "UFPS : Ultimate FPS" and more specifically "Mobile Add-on for UFPS" will build fine to iOS devices using Mono, but will hang using IL2CPP. I have tracked down these issues to our event system, and have submitted my findings in case 673217.

    Any assistance with this would be much appreciated since we've had customers waiting to submit to App Store for a couple of weeks and we're starting to feel the heat.

    Best,

    Cal
     
    Last edited: Mar 2, 2015
  35. jeffsherwin

    jeffsherwin

    Joined:
    Aug 22, 2014
    Posts:
    47
    Thanks @JoshPeterson - i thought I had read this should be better.

    I dug into this a bit and found that this weird slowdown was only on one of my oldest prefabs.
    It had a mesh collider and flipping convex and smooth sphere colliding fixed it.
    I was then able to refactor to a capsule collider and framerate around collisions went back passed normal.

    I have since went back thru my mesh colliders and refactored them out.
    Everything feels a bit smoother now.

    -- edit --
    ran a few more tests and it's actually radically better. About 500% better in my case.
    Great work!

    thanks - appreciate the info.
     
    Last edited: Mar 2, 2015
  36. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @helios

    Unfortunately, our build times for the IL2CPP scripting backend are much longer than they are for the Mono scripting backend. We are are actively working to improve the build times on a number of fronts now.

    With that said, we've not seen cases where the builds are 100x slower. If you can provide a project which demonstrates this difference, we would love to have a look at it. This is definitely something that we want to correct soon.
     
  37. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @jeffsherwin

    Thanks for doing more investigation. Please let us know about any other run-time slowness in your game that might be related to IL2CPP if you encounter it.
     
  38. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @VisionPunk

    Thanks for pining us on this. case 673217 is in our list to investigate, but we have not made any progress on it yet. I quick look at the bug makes me think that your initial investigation should help us track down the cause of the problem. We will try to have a look at it soon. Thanks.
     
  39. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    @JoshPeterson Thanks for getting back to me Josh! Thumbs crossed :)
     
  40. jeffsherwin

    jeffsherwin

    Joined:
    Aug 22, 2014
    Posts:
    47
  41. Satoshi Ueda

    Satoshi Ueda

    Joined:
    Feb 10, 2015
    Posts:
    14
    That's too bad, thanks for letting us know!
     
  42. iGhost2015

    iGhost2015

    Joined:
    Feb 12, 2015
    Posts:
    8
    @JoshPeterson
    I've already filed a bug here https://fogbugz.unity3d.com/default.asp?675644_hu4stqekap6cgbim
    And it's also simple to reproduce this bug, just a few lines of code in http://forum.unity3d.com/threads/4-6-ios-64-bit-beta.290551/page-19#post-1985935
     
  43. tomtc123

    tomtc123

    Joined:
    Aug 22, 2014
    Posts:
    11
  44. Lintz

    Lintz

    Joined:
    Mar 2, 2015
    Posts:
    4
    Continuously, It seems that below build error was caused by Google Protocol Buffers API.

    Code (CSharp):
    1. Undefined symbols for architecture arm64:
    2.   "_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0", referenced from:
    3.       GenInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0_Types in Il2CppGenericInstDefinitions.o
    4.      (maybe you meant: _GenInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0)
    5.   "_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0", referenced from:
    6.       GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0_Types in Il2CppGenericInstDefinitions.o
    7.      (maybe you meant: _GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0)
    8. ld: symbol(s) not found for architecture arm64
    Google Protocol Buffers API
    Code (CSharp):
    1.  
    2. public int GetExtensionCount<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension)
    3.     {
    4.       return this.extensions.GetRepeatedFieldCount((IFieldDescriptorLite) extension.Descriptor);
    5.     }
    6.  
    Il2CppGenericInstDefinitions.cpp
    Code (CSharp):
    1. extern Il2CppType ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0;
    2. static const Il2CppType* GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0_Types[] = { &ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0 };
    3. Il2CppGenericInst GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0 = { 1, GenInst_ExtendableMessageLite_2_GetExtensionCount_m15168_gp_0_0_0_0_Types };
    4.  
    5. extern Il2CppType ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0;
    6. static const Il2CppType* GenInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0_Types[] = { &ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0 };
    7. Il2CppGenericInst GenInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0 = { 1, GenInst_ExtendableMessage_2_GetExtensionCount_m15206_gp_0_0_0_0_Types };
    Please, tell me how I can fix this.
     
    Last edited: Mar 3, 2015
  45. Lars-Blaabjerg

    Lars-Blaabjerg

    Joined:
    Apr 5, 2011
    Posts:
    54
    Ok, I just thought we were home safe, and that our game worked now... Turns out our ad-hoc builds didn't :-(

    I found that DateTime.ToUniversalTime throws System.ArgumentOutOfRangeException: Value 3735262985982536407 is outside the valid range [0,3155378975999999999].

    It happens consistently when compiling with the "Release" build configuration.

    It happens when the DateTime is the default value, MinValue or MaxValue. The value in the exception is always the same.

    The function works normally when compiled with the debug configuration.

    At some point it only happened on 32 bit devices but I just tried on a 64 bit device and there it happened too, so not so sure about that.

    I filed a bug report with a repro project on this (case 676847)
     
  46. Lars-Blaabjerg

    Lars-Blaabjerg

    Joined:
    Apr 5, 2011
    Posts:
    54
    Just saw Unity 5 is out. Does this mean no more patch releases for 4.6.3?
    The timing is not the best for us.
     
  47. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    No, they've stated that they will continue with 4.x updates after 5.0 is released.
     
  48. sebm0

    sebm0

    Joined:
    Feb 17, 2014
    Posts:
    1
    We have the exact same issue, with both Mono and il2cpp.
    Have you found any workaround?
     
  49. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Hopefully patch this thursday, but is there a full response to this from Unity dont wish to deter thread of topic, but its really important to have some official information
     
  50. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,937
    @MrEsquire

    Yes, 4.6.3p2 is scheduled to be out this Thursday, as normal. As usual it can slip, but we plan to meet the our deadline.