summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp
index 32667dceb..41aef69a0 100644
--- a/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp
+++ b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp
@@ -370,13 +370,15 @@ public:
// Record the updated viewProjectionMatrix in the cache to allow check to be performed
// next frame
cacheForLeaf.viewProjectionMatrix = rv->viewProjectionMatrix();
+ }
- // Filter out frustum culled entity for drawable entities and store in cache
- if (isDraw && rv->frustumCulling()) {
- cacheForLeaf.filteredAndCulledRenderables = RenderViewBuilder::entitiesInSubset(
- cacheForLeaf.layeredFilteredRenderables,
- m_frustumCullingJob->visibleEntities());
- }
+ // Filter out frustum culled entity for drawable entities and store in cache
+ // We need to check this regardless of whether the camera has moved since
+ // entities in the scene themselves could have moved
+ if (isDraw && rv->frustumCulling()) {
+ cacheForLeaf.filteredAndCulledRenderables = RenderViewBuilder::entitiesInSubset(
+ cacheForLeaf.layeredFilteredRenderables,
+ m_frustumCullingJob->visibleEntities());
}
rv->setMaterialParameterTable(cacheForLeaf.materialParameterGatherer);
@@ -400,10 +402,6 @@ public:
// Set RenderCommandDataView on RV (will be used later on to sort commands ...)
rv->setRenderCommandDataView(filteredCommandData);
- // Early return in case we have nothing to filter
- if (renderableEntities.size() == 0)
- return;
-
// Filter out Render commands for which the Entity wasn't selected because
// of frustum, proximity or layer filtering
if (commandFilteringRequired) {