diff --git a/crates/bevy_ecs/src/query/state.rs b/crates/bevy_ecs/src/query/state.rs index 2f2f939a32d5fb..fb3f55a6fe3f8c 100644 --- a/crates/bevy_ecs/src/query/state.rs +++ b/crates/bevy_ecs/src/query/state.rs @@ -445,8 +445,8 @@ where let archetype = &world.archetypes[*archetype_id]; fetch.set_archetype(&self.fetch_state, archetype, tables); filter.set_archetype(&self.filter_state, archetype, tables); - - for archetype_index in 0..archetype.len() { + let len = batch_size.min(archetype.len() - offset); + for archetype_index in offset..offset + len { if !filter.archetype_filter_fetch(archetype_index) { continue; }