Open lzx1 opened 1 year ago
Thanks for your reply. I have upgraded WhirlyGlobe to 3.4 this week,but the problem still exists.
I Draw one segment of track per second by WideVectors,and animatePositionGeo rotate to the new point,4 hours later,WhirlyGlobe cant work.
this is logs:
SIGSEGV(SEGV_MAPERR)
7
I presume you're deleting the old section of track?
Yes,there is an operation to delete old tracks in the code:removeObject(gpsComponent, GlobeController.ThreadMode.ThreadCurrent).
By running my project using source code, I obtained some logs:
2023-07-03 18:08:33.551 21794-22360/com.xxx.xxx E/Maply: GL Error: 0x505 - Texture::createInGL() glTexImage2D() (ctx: 48e54000)
2023-07-03 18:08:33.553 21794-22360/com.xxx.xxx E/Adreno-GSL:
and
2023-07-04 08:40:11.807 2949-3630/com.xxx.xxx E/Maply: GL Error: 0x502 - OpenGLMemManager::getBufferID() glGenBuffers (ctx: 461cf180) 2023-07-04 08:40:11.807 2949-3630/com.xxx.xxx E/Maply: GL Error: 0x502 - OpenGLMemManager::getBufferID() glBufferData (ctx: 461cf180) 2023-07-04 08:40:11.807 2949-3630/com.xxx.xxx E/Maply: Empty buffer in BasicDrawable::setupGL() (requested 236) 2023-07-04 08:40:12.806 2949-3752/com.xxx.xxx E/Maply: GL Error: 0x502 - OpenGLMemManager::getBufferID() glGenBuffers (ctx: 491fe180) 2023-07-04 08:40:12.806 2949-3752/com.xxx.xxx E/Maply: GL Error: 0x502 - OpenGLMemManager::getBufferID() glBufferData (ctx: 491fe180) 2023-07-04 08:40:12.806 2949-3752/com.xxx.xxx E/Maply: Empty buffer in BasicDrawable::setupGL() (requested 22628) 2023-07-04 08:40:12.813 2949-3752/com.xxx.xxx E/Maply: GL Error: 0x502 - OpenGLMemManager::getBufferID() glGenBuffers (ctx: 461cf180) 2023-07-04 08:40:12.813 2949-3752/com.xxx.xxx E/Maply: GL Error: 0x502 - OpenGLMemManager::getBufferID() glBufferData (ctx: 461cf180) 2023-07-04 08:40:12.813 2949-3752/com.xxx.xxx E/Maply: Empty buffer in BasicDrawable::setupGL() (requested 236)
and
SIGABRT
libsystem_kernel.dylib ___pthread_kill + 8
libsystem_pthread.dylib _pthread_kill + 268
libsystem_c.dylib _abort + 180
libGFXShared.dylib _gfxFreeTextureLevel
GLEngine _glTexImage2D_Exec + 1120
OpenGLES _glTexImage2D + 84
WhirlyGlobeMaplyComponent WhirlyKit::Texture::createInGL(WhirlyKit::OpenGLMemManager*) + 552
WhirlyGlobeMaplyComponent WhirlyKit::AddTextureReq::execute(WhirlyKit::Scene, WhirlyKitSceneRendererES, WhirlyKitView*) + 84
WhirlyGlobeMaplyComponent WhirlyKit::Scene::processChanges(WhirlyKitView, WhirlyKitSceneRendererES, double) + 692
WhirlyGlobeMaplyComponent -[WhirlyKitSceneRendererES2 renderAsync] + 4432
WhirlyGlobeMaplyComponent -[WhirlyKitSceneRendererES2 render:] + 376
WhirlyGlobeMaplyComponent -[WhirlyKitEAGLView drawView:] + 160
WhirlyGlobeMaplyComponent -[WhirlyKitEAGLView drawView:] + 80
QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 820
QuartzCore display_timer_callback(__CFMachPort, void, long, void*) + 372
CoreFoundation ___CFMachPortPerform + 176
CoreFoundation _CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 60
CoreFoundation ___CFRunLoopDoSource1 + 520
CoreFoundation ___CFRunLoopRun + 2264
CoreFoundation _CFRunLoopRunSpecific + 612
GraphicsServices _GSEventRunModal + 164
Oh, does it create a texture each time? My recommendation would be to create the texture once and keep the MaplyTexture around to reuse.
I guess the question is all in the title, huh.
Well, I'm not sure what to tell you. Could be losing track of memory somewhere.
If this is version 2, my standard suggestion is to upgrade to version 3. We put a lot of work into memory for that one.