diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index 4b5653d28db..853292d6ef3 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -426,6 +426,10 @@ void RenderFillLayer::update(gfx::ShaderRegistry& shaders, // If we already have drawables for this tile, update them. auto updateExisting = [&](gfx::Drawable& drawable) { + if (drawable.getLayerTweaker() != layerTweaker) { + // This drawable was produced on a previous style/bucket, and should not be updated. + return false; + } drawable.setVertexAttributes(vertexAttrs); return true; }; diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index a59133664b7..1b060bf5e65 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -1028,7 +1028,7 @@ void RenderSymbolLayer::update(gfx::ShaderRegistry& shaders, const auto values = isText ? textPropertyValues(evaluated, layout) : iconPropertyValues(evaluated, layout); const std::string suffix = isText ? "text/" : "icon/"; - auto addVertices = [&collisionBuilder](const auto& vertices) { + const auto addVertices = [&collisionBuilder](const auto& vertices) { collisionBuilder->setRawVertices({}, vertices.size(), gfx::AttributeDataType::Short2); }; @@ -1148,7 +1148,7 @@ void RenderSymbolLayer::update(gfx::ShaderRegistry& shaders, gfx::DrawableTweakerPtr textTweaker, iconTweaker; }; - std::unordered_map tileCache; + mbgl::unordered_map tileCache; tileCache.reserve(renderTiles->size()); for (auto& group : renderableSegments) {