Has anyone been able to get GoogleMaps running in simulator with GMSServices.setMetalRendererEnabled(true)
I'm looking to evaluate Google's Map performance and abilities. Given the updates to Metal I wanted to evaluate how the performance worked with and without metal enabled.
Given GoogleMaps-Swift Sample, I was able to get Basic map rendering up and running by setting up workspace with pod install, and by adding my APIKet. Unfortunately, when I attempted to enable Metal rendering, I get a crash. I stepped through with latest SDK + pod install workspace setup.
GMSServices.setMetalRendererEnabled(true)
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000008
Exception Codes: 0x0000000000000001, 0x0000000000000008
VM Region Info: 0x8 is not in any region. Bytes before following region: 4560125944
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
__TEXT 10fce0000-1102fc000 [ 6256K] r-x/r-x SM=COW ...apsSwiftDemos
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: SIGNAL 11 Segmentation fault: 11
Terminating Process: exc handler [18316]
...
Thread 13 Crashed:: Dispatch queue: com.google.Maps.GMSRenderTileProvider.vector
0 GoogleMapsSwiftDemos 0x10ff41949 gmscore::renderer::MetalEntity::SetRenderState(std::__1::shared_ptr<gmscore::renderer::MetalRenderState> const&, GMSPassID) + 27
1 GoogleMapsSwiftDemos 0x10ff90a69 gmscore::vector::AreaGroup::CreateMetalFillEntities(std::__1::vector<gmscore::vector::AreaGroup::AreaSubset, std::__1::allocator<gmscore::vector::AreaGroup::AreaSubset> > const&, int, int) + 2159
2 GoogleMapsSwiftDemos 0x10ff95d24 void gmscore::vector::AreaGroup::InitializeMetal<gmscore::base::STLRange<std::__1::multiset<GMSArea* __strong, std::__1::function<bool (GMSArea*, GMSArea*)>, std::__1::allocator<GMSArea* __strong> > const> >(int, gmscore::base::STLRange<std::__1::multiset<GMSArea* __strong, std::__1::function<bool (GMSArea*, GMSArea*)>, std::__1::allocator<GMSArea* __strong> > const> const&, id<GMSStyleTable>, GMSModelStyle*) + 2536
3 GoogleMapsSwiftDemos 0x10ff8f64c void gmscore::vector::AreaGroup::Initialize<gmscore::base::STLRange<std::__1::multiset<GMSArea* __strong, std::__1::function<bool (GMSArea*, GMSArea*)>, std::__1::allocator<GMSArea* __strong> > const> const&>(int, gmscore::base::STLRange<std::__1::multiset<GMSArea* __strong, std::__1::function<bool (GMSArea*, GMSArea*)>, std::__1::allocator<GMSArea* __strong> > const> const&, id<GMSStyleTable>, GMSModelStyle*) + 202
4 GoogleMapsSwiftDemos 0x10ff8f51f gmscore::vector::AreaGroup::AreaGroup(GMSTileCoords*, int, gmscore::base::STLRange<std::__1::multiset<GMSArea* __strong, std::__1::function<bool (GMSArea*, GMSArea*)>, std::__1::allocator<GMSArea* __strong> > const> const&, gmscore::vector::ZOrdering const&, id<GMSStyleTable>, id<GMSEntityResources>, GMSServerResourceManager*, GMSPassID, GMSModelStyle*) + 287
5 GoogleMapsSwiftDemos 0x10fff1b4e void gmscore::vector::AreaGroup::CreateGroups<std::__1::__tree_const_iterator<id<GMSFeature> __strong, std::__1::__tree_node<id<GMSFeature>, void*>*, long>, std::__1::back_insert_iterator<std::__1::vector<gmscore::base::reffed_ptr<gmscore::vector::FeatureGroup>, std::__1::allocator<gmscore::vector::FeatureGroup> > > >(std::__1::__tree_const_iterator<id<GMSFeature> __strong, std::__1::__tree_node<id<GMSFeature>, void*>*, long>, std::__1::back_insert_iterator<std::__1::vector<gmscore::base::reffed_ptr<gmscore::vector::FeatureGroup>, std::__1::allocator<gmscore::vector::FeatureGroup> > >, GMSTileCoords*, int, id<GMSStyleTable>, id<GMSEntityResources>, GMSServerResourceManager*, GMSPassID, int, GMSModelStyle*, std::__1::back_insert_iterator<std::__1::vector<gmscore::base::reffed_ptr<gmscore::vector::FeatureGroup>, std::__1::allocator<gmscore::vector::FeatureGroup> > >) + 376
6 GoogleMapsSwiftDemos 0x10fff188d -[GMSUWFRenderTile buildLayeredEntitiesFromLayers:entityResources:resourceManager:] + 131
7 GoogleMapsSwiftDemos 0x10fff127c -[GMSUWFRenderTile buildEntitiesWithEntityResources:resourceManager:] + 222
8 GoogleMapsSwiftDemos 0x10ffd7f6d -[GMSRenderTileProvider buildEntitiesForTile:tileInfo:] + 132
9 GoogleMapsSwiftDemos 0x10ffd7e26 -[GMSRenderTileProvider prepareEntitiesForTile:tileInfo:] + 214
10 GoogleMapsSwiftDemos 0x10ffd7c18 __66-[GMSRenderTileProvider prepareRenderTile:tileInfo:tilePrepTimer:]_block_invoke + 109
Some considerations:
- Is this only for device to enabled? If so, does it need to be documented in the headers?
- Is there something I'm missing to be able to enable properly?
Links: Crash Report