1 year ago
#304568
Dane Miluski
Enabling MetalRenderer in simulator leads to Crash
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
ios
ios-simulator
metal
google-maps-sdk-ios
0 Answers
Your Answer