diff --git a/modules/gfx/src/entity.cc b/modules/gfx/src/entity.cc
index fef28debb17e5343c3ec8f128adecfd4698597f2..90d16501baecde98b6dc349f00b7c8d7aa211065 100644
--- a/modules/gfx/src/entity.cc
+++ b/modules/gfx/src/entity.cc
@@ -341,6 +341,9 @@ bool Entity::UpdateIfNeeded() const
     if (updated) {
       this->CacheBoundingBox();
     }
+    needs_update_=false;
+  } else {
+    needs_update_=true;
   }
   return updated;
 }
diff --git a/modules/gfx/src/entity.hh b/modules/gfx/src/entity.hh
index a97192d391ebb1441a65e8cbd4b7d71ac3ca9de2..d8571fcfc15ed4843c5f5bfbf1a0fccb5062c860 100644
--- a/modules/gfx/src/entity.hh
+++ b/modules/gfx/src/entity.hh
@@ -311,7 +311,7 @@ private:
   bool blur_;
   float blurf1_;
   float blurf2_;
-  bool needs_update_;
+  mutable bool needs_update_;
 };