Can Unity 5 do 64-bit iOS builds? I can’t seem to find an answer anywhere I’ve looked thus far.
It looks like, in the Player settings, that there is a setting for Architecture: Universal, ARM64, and ARMv7. So, would Universal create a 64-bit binary and a 32-bit binary? I’m a little confused.
Yes, Universal would be both. They ditched older 32-bit binary types in a previous version of Unity, so v7 is the one available now.
Not right now.
Apparently iOS developers must support 64bit by February 1st next year. That’s rather scary.
(Does 64-bit code actually have any real advantages on iOS? - it’s not as if we’re dealing with >4Gb of RAM…)
64 bit code can use more CPU registers, but on the other hand all pointers are larger so many data structures are larger in memory. It probably ends up being a wash on “real code” outside of microbenchmarks.
We’re investigating what we can do about the Apple 64 bit deadline.
Like Aras said, we are working on action plan and once we settle on details, we will share it with you.
There is a performance advantage to the 64-bit code, but it has nothing to do with memory (the Cortex A15 already supported 40-bit addressing with “Large Physical Address Extensions”) and more to do with making a clean break with a new instruction set. Apparently, they changed the sub-routine calling conventions, exception handling, added hardware support for encryption, and various other improvements. Since they were changing the architecture anyway, it just made sense to future-proof it by doing the switch to 64-bit at the same time.
From the ARMv8 white paper:
There is supposedly a 15-20% performance increase while using less power when you switch to 64-bit so I imagine that’s why Apple is pushing it now that they have shipped two generations of 64-bit devices.
Couple of moments ago we published blog post on this: Unity Blog