Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix edge case of ShowExecutionPreview #13173

Merged
merged 2 commits into from
Aug 8, 2022
Merged

Conversation

pinzart90
Copy link
Contributor

@pinzart90 pinzart90 commented Aug 4, 2022

https://jira.autodesk.com/browse/DYN-4984

Graph preview states issue:
Connectors are not colored as invalid when connecting an existing node to a newly added node.
EngineController.PreviewGraphSyncData() is used to figure out what Nodes must be recomputed (dirty nodes).
EngineController.PreviewGraphSyncData() will try to look inside the VM to figure out the entire extent of modified nodes...but newly added nodes are not registered in the VM yet (they need to be computed first)

@@ -504,7 +504,7 @@ public PreviewState PreviewState
return PreviewState.None;
}

if (Nodevm.ShowExecutionPreview)
if (Nodevm.ShowExecutionPreview || NodeEnd.ShowExecutionPreview)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@QilongTang It seems to me like we should be watching both ends of the connector.
Can you confirm this ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good one!

cbnGuidList.Add(bnode.guid);
}
}
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The preview functionality in question is to color the connectors between nodes that need to be recomputed.
Not sure why we need to be looking inside the VM to figure out what nodes need to be recomputed.
I saw a NodeModel's have a dirty flag system. We could just go through all NodeModels to identify which one need recompute... But maybe there are cases that I am not seeing...
@aparajit-pratap @mjkkirschner @QilongTang any thoughts ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not just connectors, it should be the node UI as well, but the new UI was not updated.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjkkirschner by but the new UI was not updated. do you mean this UI feature is not complete yet (not yet turned on/implemented fully yet) ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, that when updating the NodeView's for the visual refresh it appears this feature was never tested.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hard to see here, but the nodes are also highlighted:
image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, appearantly this is an incomplete feature but we should be able to make it better, once this PR is merged I can continue to work on #12908

@pinzart90 pinzart90 marked this pull request as ready for review August 5, 2022 17:47
@QilongTang QilongTang added this to the 2.16.0 milestone Aug 5, 2022
@pinzart90
Copy link
Contributor Author

SelfServe tests passed.
Merging.

@pinzart90 pinzart90 merged commit 077d206 into master Aug 8, 2022
@pinzart90 pinzart90 deleted the ShowExecutionPreview branch August 8, 2022 16:54
// So we need to add them to the preview list.
var addCSComputer = changeSetComputer.Clone();

var addedDeltaAsts = addCSComputer.GetDeltaAstListAdded(syncData.AddedSubtrees);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pinzart90 can't you use the previewChangeSetComputer here, do you need to clone it again?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sadly yes. If I use the previewChangeSetComputer then the call to GetDeltaAstListAdded will throw an exception with same key already exists

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants