Running MapLibre Open GL project on Apple Silicon device has better Simulator performance on `x86_64` than `arm64`.

Background

The MapLibre project provides iOS binaries for both x86_64 & arm64 which allows for Simulator development on either Intel or Apple Silicon architectures. MapLibre is an Open GL project, and we are aware of the requirement of Metal.

When using the Mapbox.xcframework for a 3rd party map project, there are several issues when targeting the iOS Simulator for arm64.

Issues

  1. MapLibre targeting arm64 iOS Simulators 14.5 & 16.0 have a drawing error that is eventually fixed when the map is at steady state.
  2. MapLibre targeting arm64 iOS Simulators 15.4 & 15.5 have a drawing error, followed by an exception when moving the map.

Questions

  • Why does setting EXCLUDED_ARCHS, and force targeting x86_64 seem to be the accepted workaround for Simulators on Apple Silicon?
    • EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64
  • What changed from iOS Simulator 14.5 to 15.5 and to 16.0?
    • Why so many log warnings for 'cyclone' is not a recognized processor for this target (ignoring processor)? These are fixed when targeting x86_64.

Test environment

  • macOS Ventura 13.0 Beta (22A5295i). Occurs on Big Sur on M1 Apple Silicon, too.
  • Xcode Version 14.0 beta 3 (14A5270f). Occurs with Xcode 13.4, too.
  • M1 Apple Silicon
  • No issue when running on iOS Devices

Mapbox.xcframework lipo information

lipo -info Mapbox.xcframework/ios-arm64_armv7/Mapbox.framework/Mapbox

Architectures in the fat file: Mapbox.xcframework/ios-arm64_armv7/Mapbox.framework/Mapbox are: armv7 arm64

lipo -info Mapbox.xcframework/ios-arm64_i386_x86_64-simulator/Mapbox.framework/Mapbox

Architectures in the fat file: Mapbox.xcframework/ios-arm64_i386_x86_64-simulator/Mapbox.framework/Mapbox are: x86_64 i386 arm64


arm64 Simulator throws many not recognized processor warnings.

'cyclone' is not a recognized processor for this target (ignoring processor)

good

Had the same observation and have not got any clues yet...

Issue still exists under the same test conditions with Xcode Version 14.0 beta 4 (14A5284g).

Issue still exists under the same test conditions with Xcode Version 14.0 beta 5 (14A5294e). 

 Issue still exists under the same test conditions with Xcode Version 14.0 beta 6 (14A5294g). Also tested with macOS 13 beta 6 (22A5331f).

Issue still exists under the same test conditions with Xcode Version 14.0 RC (14A309) which was released on Sep 7, 2022.

Running MapLibre Open GL project on Apple Silicon device has better Simulator performance on `x86_64` than `arm64`.
 
 
Q