diff options
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 1424c5b238..5ac77978b1 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -391,8 +391,15 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { *lineAtlas, }; + auto opaquePassCutoffEstimation = renderItems.size(); for (auto& renderItem : renderItems) { RenderLayer& renderLayer = renderItem.layer; + if (parameters.opaquePassCutoff == 0) { + --opaquePassCutoffEstimation; + if (renderLayer.is3D()) { + parameters.opaquePassCutoff = uint32_t(opaquePassCutoffEstimation); + } + } if (renderLayer.hasRenderPass(RenderPass::Upload)) { renderLayer.upload(*uploadPass, uploadParameters); } |