ThinkGeo.com    |     Documentation    |     Premium Support

ThinkGeo v15 beta160: individual GPU tiles flicker or disappear during zoom

We are seeing individual tiles flash or disappear while zooming with GPU rendering enabled. The affected map contains shapefile layers only. A short GIF and the GPU log are attached.

We noticed this after updating to beta160 - and refactoring our GPU integration to use the recent SDK fixes. Styles are composed into fresh MapStyle instances, and supported style/source changes retain the GPU host and existing readers.
Eligible shapefiles use PMTiles; others use runtime vector tile cutting.

Our code review has not found an unconditional host replacement, source rebinding or SetStyleAsync call during ordinary zooming with unchanged styles and highlights. However, we have not yet established whether
this is an integration regression or an SDK rendering issue.

Expected: existing tile coverage remains visible until replacement tiles are ready.

Actual: individual tile regions visibly flash or disappear during zoom, as shown in the GIF.

Could you inspect the attached GPU log for tile-loading failures or gaps in the transition between existing coverage and newly loaded tiles? Please let us know which additional diagnostics or source details
would help isolate it.

flickering_on_zoom

gpu.txt (267.0 KB)

Additional findings from our debugging:

  • Hidden layers still generate tiles. Only rbn_seg remains visible, but all four sources continue cutting tiles. A hidden address-layer request takes 7.82 seconds, including queue time.
  • ThinkGeo hits its retained-tile splitting limit 29 times, reporting up to 14 tiles “left whole” at the 96-slot cap. This is a useful tile-transition clue, but does not mean those tiles were discarded.
  • GPU execution is typically fast—median 0.36 ms—while frame gaps reach roughly one second.

Hi Julian,

Thanks for the log and the GIF! We’ve made some changes accordingly in the latest beta163.

15.0.0-beta163

  • A source whose layers are all hidden is no longer fetched. Your map cut four sources per scene with one visible; the hidden address source alone took 4-7 s and ~22 MB per tile. It now cuts one, and a hidden source rejoins the moment a layer of it is shown.
  • A tile could stay blank until the next scene update when an eviction dropped the queued registration of a tile it meant to keep. Fixed.
  • Two blank-frame diagnostics, [SurfaceGap] and [EmptyScene], now write to the GPU trace with the frame index.

What your files say

  • The [LongFrame] gaps are idle time, not stalls (asked=0); GPU time is 0.2-0.5 ms; no load failures.
  • The GIF shows the whole viewport going blank for 1-2 frames at a time, not single tiles. Which of the two mechanisms does it is what the beta163 trace will tell.

Next

Please run the same zoom on beta163 with the GPU trace on and send it, ideally with the clock time of a blank you saw. The [SurfaceGap] / [EmptyScene] lines will point at the culprit.

The retained-tile split cap message is harmless: those tiles are drawn whole, at the cost of some double-painting until the settle commit.

Thanks,
Ben

Hi Ben - no, the issue is actually that each individual tile flickers off and on once sequentially. Sorry the gif was probably a bad example. Heres a better one:

tiles flicker

gpu.txt (268.1 KB)

(Sorry, no idea why the gifs show up so terrible in the forum, they look fine on my end, but you can still see the tiles)

the same issue happens in the latest beta - but there everytime I zoom the entire map flashes once as well.

flicker_163