summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/renderer_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp7
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);
}