@@ -4955,11 +4955,7 @@ impl EffectBindGroups {
49554955 // array<EffectMetadata>;
49564956 BindGroupEntry {
49574957 binding: 0,
4958- resource: BindingResource::Buffer(BufferBinding {
4959- buffer: effect_metadata_buffer,
4960- offset: 0,
4961- size: None,
4962- }),
4958+ resource: effect_metadata_buffer.as_entire_binding(),
49634959 },
49644960 );
49654961 if let Some(consume_event_buffers) = consume_event_buffers.as_ref() {
@@ -5066,11 +5062,7 @@ impl EffectBindGroups {
50665062 // array<EffectMetadata>;
50675063 entries.push(BindGroupEntry {
50685064 binding: 0,
5069- resource: BindingResource::Buffer(BufferBinding {
5070- buffer: effect_metadata_buffer,
5071- offset: 0,
5072- size: None,
5073- }),
5065+ resource: effect_metadata_buffer.as_entire_binding(),
50745066 });
50755067 if emits_gpu_spawn_events {
50765068 let child_info_buffer = child_info_buffer.unwrap();
@@ -5766,7 +5758,12 @@ pub(crate) fn queue_effects(
57665758/// indirect dispatch args of its init pass based on the number of GPU events
57675759/// emitted in the previous frame and stored in its event buffer.
57685760pub fn queue_init_indirect_workgroup_update(
5769- q_cached_effects: Query<(Entity, &CachedChildInfo, &CachedEffectEvents)>,
5761+ q_cached_effects: Query<(
5762+ Entity,
5763+ &CachedChildInfo,
5764+ &CachedEffectEvents,
5765+ &CachedReadyState,
5766+ )>,
57705767 mut init_fill_dispatch_queue: ResMut<InitFillDispatchQueue>,
57715768) {
57725769 debug_assert_eq!(
@@ -5778,7 +5775,14 @@ pub fn queue_init_indirect_workgroup_update(
57785775 // Schedule some GPU buffer operation to update the number of workgroups to
57795776 // dispatch during the indirect init pass of this effect based on the number of
57805777 // GPU spawn events written in its buffer.
5781- for (entity, cached_child_info, cached_effect_events) in &q_cached_effects {
5778+ for (entity, cached_child_info, cached_effect_events, cached_ready_state) in &q_cached_effects {
5779+ if !cached_ready_state.is_ready() {
5780+ trace!(
5781+ "[Effect {:?}] Skipping init_fill_dispatch.enqueue() because effect is not ready.",
5782+ entity
5783+ );
5784+ continue;
5785+ }
57825786 let init_indirect_dispatch_index = cached_effect_events.init_indirect_dispatch_index;
57835787 let global_child_index = cached_child_info.global_child_index;
57845788 trace!(
0 commit comments