AnsweredAssumed Answered

SceneView Crashes When Graphics First Come Into View

Question asked by rbever3 on Aug 10, 2019
Latest reply on Nov 13, 2019 by rbever3

I'm having a problem where I have maybe 100 or so Graphics, and maybe 10-20 are moving around continuously (5-10Hz). I have a MapView and a SceneView, and I duplicate the items in both to create a consistent view. I can switch between the views in the main viewing area.


When I switch to the SceneView and drag the globe to where my data is, or switch from the MapView to the SceneView when the data is already in view, it often crashes with the following error:


Esri.ArcGISRuntime.ArcGISRuntimeException: 'Internal error exception. Buffer_loader_cache::map_buffer ERROR, cannot create staging resource!: c:\daily_r\rtc\runtimecore\c_api\src\mapping\map_view\geo_view.cpp (209) : error : Exception caught in RT_GeoView_pulse'


It seems to be related to many Graphics coming into view at the same time. The more Graphics there are the easier it seems to be to get this error. I had this error previously, less frequently, even when none of the Graphics were changing.


In the SceneView, I only have two GraphicsOverlays, one that's clamped and one that's absolute elevation. There are only a few Graphics in the clamped GraphicsOverlay, the vast majority are in the non-clamped one.


I tried using Static mode for my non-clamped GraphicsOverlay, but it made my application unusably slow. I'm guessing that's because some of the items are moving frequently and that doesn't work well.


If it doesn't crash upon loading, it works great. The crashes are pretty frequent and relatively easy to cause; if I just switch back and forth between MapView and SceneView I can pretty much always cause a crash. This isn't a memory allocation issue, the machine has plenty of available RAM left.


What can I do differently to avoid this crash? Does it help to split my Graphics out into multiple GraphicsOverlays? Some of them could probably go into a Static GraphicsOverlay, but I don't know ahead of time how many Graphics I'm going to have, it depends on the data. Unless I'm just putting X number of Graphics into each GraphicsOverlay, I don't know how well I would be able to even the Graphics out.


Thanks for your help.