summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/jobs/updatelevelofdetailjob.cpp5
-rw-r--r--src/render/jobs/updateskinningpalettejob.cpp5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/render/jobs/updatelevelofdetailjob.cpp b/src/render/jobs/updatelevelofdetailjob.cpp
index 141d65c22..e4b651949 100644
--- a/src/render/jobs/updatelevelofdetailjob.cpp
+++ b/src/render/jobs/updatelevelofdetailjob.cpp
@@ -93,6 +93,11 @@ void UpdateLevelOfDetailJob::setFrameGraphRoot(FrameGraphNode *frameGraphRoot)
void UpdateLevelOfDetailJob::run()
{
Q_ASSERT(m_frameGraphRoot && m_root && m_manager);
+
+ // short-circuit if no LoDs exist
+ if (m_manager->levelOfDetailManager()->count() == 0)
+ return;
+
updateEntityLod(m_root);
}
diff --git a/src/render/jobs/updateskinningpalettejob.cpp b/src/render/jobs/updateskinningpalettejob.cpp
index 30ffafa53..1ee9101f9 100644
--- a/src/render/jobs/updateskinningpalettejob.cpp
+++ b/src/render/jobs/updateskinningpalettejob.cpp
@@ -59,6 +59,10 @@ UpdateSkinningPaletteJob::~UpdateSkinningPaletteJob()
void UpdateSkinningPaletteJob::run()
{
+ auto armatureManager = m_nodeManagers->armatureManager();
+ if (armatureManager->count() == 0)
+ return;
+
// TODO: Decompose this job across several jobs, say one per skeleton so
// that it can be done in parallel
@@ -78,7 +82,6 @@ void UpdateSkinningPaletteJob::run()
findDirtyArmatures(m_root, dirtyArmatures);
// Update the skeleton for each dirty armature
- auto armatureManager = m_nodeManagers->armatureManager();
auto skeletonManager = m_nodeManagers->skeletonManager();
for (const auto &armatureHandle : qAsConst(dirtyArmatures)) {
auto armature = armatureManager->data(armatureHandle);