-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bubble sync points if
ignore_deferred
, do not ignore if target syst…
…em is exclusive (#17880) # Objective Fixes #17828 This fixes two bugs: 1. Exclusive systems should see the effect of all commands queued to that point. That does not happen when the system is configured with `*_ignore_deferred` which may lead to surprising situations. These configurations should not behave like that. 2. If `*_ignore_deferred` is used, no sync point may be added at all **after** the config. Currently this can happen if the last nodes in that config have no deferred parameters themselves. Instead, sync points should always be added after such a config, so long systems have deferred parameters. ## Solution 1. When adding sync points on edges, do not consider `AutoInsertApplyDeferredPass::no_sync_edges` if the target is an exclusive system. 2. when going through the nodes in a directed way, store the information that `AutoInsertApplyDeferredPass::no_sync_edges` suppressed adding a sync point at the target node. Then, when the target node is evaluated later by the iteration and that prior suppression was the case, the target node will behave like it has deferred parameters even if the system itself does not. ## Testing I added a test for each bug, please let me know if more are wanted and if yes, which cases you would want to see. These tests also can be read as examples how the current code would fail.
- Loading branch information
Showing
2 changed files
with
125 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters