fix(engine): recover render nodes after frame failures - #2098
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
No TODO comments were found. |
Code Review BotNo comment/code divergences or documentation drift detected. Reviewed 2 file(s); skipped 0. |
Minimum allowed line rate is |
Description
The root cause was that
RevalidateAllclearedHasChangesbefore render operations executed. If an operation then threw, the partially evaluated node remained cached as up to date, so subsequent frames reused the same broken operation graph and repeatedly raisedInvalidOperationException.Affected areas
Beutl.Engine(rendering / scene / track)Beutl.ProjectSystem(project / document persistence)Beutl.Editor,Beutl.Editor.Components,Beutl.Controls)Beutl.Extensibility(plugin abstractions)Beutl.NodeGraph(node editor)Beutl.FFmpegIpc/Beutl.FFmpegWorker(media IPC boundary)Beutl.Api(server API client)Breaking changes
None.
Test plan
dotnet test tests/Beutl.UnitTests/Beutl.UnitTests.csproj -f net10.0 --filter "FullyQualifiedName~RendererExceptionSafetyTests" --no-restore(3 passed)dotnet build src/Beutl.Engine/Beutl.Engine.csproj -f net10.0 --no-restore(0 warnings, 0 errors)git diff --checkFixed issues / References