You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@alfonsolage and I have made the system execution order ambiguity detector significantly more user-friendly in #4299.
As a result, I think it's now worth pushing towards internal determinism as a goal (for the reasons laid out in #2480).
At the time of writing, there are 54 pairs of ambiguities (full list in next comment), split across two stages: CoreStage::PostUpdate and RenderStage::Extract. These are most usefully divided into true positives (which represent genuine bugs and require explicit ordering) and false positives (which should either be explicitly ignored or have their data access tweaked).
True positives
flex_node_system conflicts with parent_update_system on ["Children"]
ui_z_system conflicts with parent_update_system on ["Children"]
camera_system<OrthographicProjection> conflicts with assign_lights_to_clusters on ["Camera"]
camera_system<OrthographicProjection> conflicts with update_frusta<OrthographicProjection> on ["OrthographicProjection"]
assign_lights_to_clusters conflicts with various update_frusta systems on ["Frustum"]
check_visibility conflicts with update_directional_light_frusta on ["Frustum"]
False positives
change_window, play_queued_audio_system<AudioSource> and add_clusters
@alfonsolage and I have made the system execution order ambiguity detector significantly more user-friendly in #4299.
As a result, I think it's now worth pushing towards internal determinism as a goal (for the reasons laid out in #2480).
At the time of writing, there are 54 pairs of ambiguities (full list in next comment), split across two stages:
CoreStage::PostUpdateandRenderStage::Extract. These are most usefully divided into true positives (which represent genuine bugs and require explicit ordering) and false positives (which should either be explicitly ignored or have their data access tweaked).True positives
flex_node_systemconflicts withparent_update_systemon ["Children"]ui_z_systemconflicts withparent_update_systemon ["Children"]camera_system<OrthographicProjection>conflicts withassign_lights_to_clusterson ["Camera"]camera_system<OrthographicProjection>conflicts withupdate_frusta<OrthographicProjection>on ["OrthographicProjection"]assign_lights_to_clustersconflicts with variousupdate_frustasystems on ["Frustum"]check_visibilityconflicts withupdate_directional_light_frustaon ["Frustum"]False positives
change_window,play_queued_audio_system<AudioSource>andadd_clusterstext_system,image_node_system,camera_system,text_2d_system: clashing onAssets<Image>camera_system<OrthographicProjection>conflicts withcamera_system<PerspectiveProjection>on ["Camera"] (and the same for update_frustra)extract_camerasandextract_lightsconflict onVisibleEntitiesRenderWorldextract_sprites,extract_clear_color,extract_cameras,extract_windows,extract_uinodes,extract_shaders,extract_text_uinodes,extract_text2dsprite,extract_sprite_eventsRenderStage::Extractrun on the render world #4402 should help address this, even though it's not the main goal