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

Add Gameplay Accuracy Heatmap #31158

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Optimize the position retrive logic

7363d1a
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Open

Add Gameplay Accuracy Heatmap #31158

Optimize the position retrive logic
7363d1a
Select commit
Loading
Failed to load commit list.
GitHub Actions / Results failed Dec 17, 2024 in 0s

43078 passed, 10 failed and 296 skipped

Tests failed

Report Passed Failed Skipped Time
TestResults-Linux-MultiThreaded.trx 10772✅ 74⚪ 2340s
TestResults-Linux-SingleThread.trx 10762✅ 10❌ 74⚪ 1971s
TestResults-Windows-MultiThreaded.trx 10772✅ 74⚪ 3110s
TestResults-Windows-SingleThread.trx 10772✅ 74⚪ 2816s

✅ TestResults-Linux-MultiThreaded.trx

10846 tests were completed in 2340s with 10772 passed, 0 failed and 74 skipped.

❌ TestResults-Linux-SingleThread.trx

10846 tests were completed in 1971s with 10762 passed, 10 failed and 74 skipped.

Test suite Passed Failed Skipped Time
osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation 30✅ 10❌ 5s

❌ osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation

✅ TestAddAudioTrack
✅ TestAddAudioTrack
✅ TestBackgroundFileChangesPreserveOnEncode
✅ TestBackgroundFileChangesPreserveOnEncode
✅ TestConstructor
✅ TestConstructor
✅ TestCopyDifficulty
✅ TestCopyDifficulty
✅ TestCopyDifficultyDoesNotChangeCollections
✅ TestCopyDifficultyDoesNotChangeCollections
✅ TestCreateMultipleNewDifficultiesSucceeds
✅ TestCreateMultipleNewDifficultiesSucceeds
✅ TestCreateNewBeatmap
✅ TestCreateNewBeatmap
✅ TestCreateNewDifficulty(False)
✅ TestCreateNewDifficulty(False)
✅ TestCreateNewDifficulty(True)
✅ TestCreateNewDifficulty(True)
✅ TestCreateNewDifficultyForInconvertibleRuleset
✅ TestCreateNewDifficultyForInconvertibleRuleset
✅ TestCreateNewDifficultyWithScrollSpeed_DifferentRuleset
❌ TestCreateNewDifficultyWithScrollSpeed_DifferentRuleset
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestCreateNewDifficultyWithScrollSpeed_SameRuleset
❌ TestCreateNewDifficultyWithScrollSpeed_SameRuleset
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
❌ TestExitBlockedWhenSavingBeatmapWithSameNamedDifficulties
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestExitBlockedWhenSavingBeatmapWithSameNamedDifficulties
❌ TestExitWithoutSave
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestExitWithoutSave
✅ TestMultipleAudioFiles
❌ TestMultipleAudioFiles
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
❌ TestMultipleBackgroundFiles
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestMultipleBackgroundFiles
❌ TestSavingBeatmapFailsWithSameNamedDifficulties(False)
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestSavingBeatmapFailsWithSameNamedDifficulties(False)
❌ TestSavingBeatmapFailsWithSameNamedDifficulties(True)
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestSavingBeatmapFailsWithSameNamedDifficulties(True)
❌ TestSingleAudioFile
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
✅ TestSingleAudioFile
✅ TestSingleBackgroundFile
❌ TestSingleBackgroundFile
	System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
	  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.

✅ TestResults-Windows-MultiThreaded.trx

10846 tests were completed in 3110s with 10772 passed, 0 failed and 74 skipped.

✅ TestResults-Windows-SingleThread.trx

10846 tests were completed in 2816s with 10772 passed, 0 failed and 74 skipped.

Annotations

Check failure on line 37 in osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/ControlPointPart.cs

See this annotation in the file changed.

@github-actions github-actions / Results

osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation ► TestCreateNewDifficultyWithScrollSpeed_DifferentRuleset

Failed test found in:
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
  TestResults-Linux-SingleThread.trx
Error:
  System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
    ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
Raw output
System.AggregateException : One or more errors occurred. (Collection was modified; enumeration operation may not execute.)
  ----> System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
   at osu.Framework.Testing.TestScene.UseTestSceneRunnerAttribute.AfterTest(ITest test)
   at NUnit.Framework.Internal.Commands.TestActionCommand.<>c__DisplayClass0_0.<.ctor>b__1(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.<Execute>b__1()
   at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
--InvalidOperationException
   at System.Collections.Generic.List`1.Enumerator.MoveNext()
   at System.Linq.Enumerable.OfTypeIterator[TResult](IEnumerable source)+MoveNext()
   at osu.Game.Screens.Edit.Components.Timelines.Summary.Parts.ControlPointPart.<LoadBeatmap>b__1_0(Object _, NotifyCollectionChangedEventArgs args) in /home/runner/work/osu/osu/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/ControlPointPart.cs:line 37
   at osu.Game.Screens.Edit.Components.Timelines.Summary.Parts.ControlPointPart.LoadBeatmap(EditorBeatmap beatmap) in /home/runner/work/osu/osu/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/ControlPointPart.cs:line 26
   at osu.Game.Screens.Edit.Components.Timelines.Summary.Parts.TimelinePart`1.load(IBindable`1 beatmap, EditorClock clock) in /home/runner/work/osu/osu/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/TimelinePart.cs:line 51
   at InvokeStub_TimelinePart`1.load(Object, Span`1)
   at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of stack trace from previous location ---
   at osu.Framework.Allocation.BackgroundDependencyLoaderAttribute.<>c__DisplayClass7_0.<CreateActivator>b__3(Object target, IReadOnlyDependencyContainer dc)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
   at osu.Framework.Graphics.Containers.Container`1.AddInternal(Drawable drawable)
   at osu.Framework.Graphics.Containers.Container`1.AddRange(IEnumerable`1 range)
   at osu.Game.Screens.Edit.Components.Timelines.Summary.SummaryTimeline.load(OverlayColourProvider colourProvider) in /home/runner/work/osu/osu/osu.Game/Screens/Edit/Components/Timelines/Summary/SummaryTimeline.cs:line 24
   at InvokeStub_SummaryTimeline.load(Object, Span`1)
   at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of stack trace from previous location ---
   at osu.Framework.Allocation.BackgroundDependencyLoaderAttribute.<>c__DisplayClass7_0.<CreateActivator>b__3(Object target, IReadOnlyDependencyContainer dc)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__209_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
   at osu.Framework.Graphics.Containers.GridContainer.layoutContent()
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
   at osu.Framework.Graphics.Containers.CompositeDrawable.AddRangeInternal(IEnumerable`1 range)
   at osu.Game.Screens.Edit.BottomBar.load(Editor editor) in /home/runner/work/osu/osu/osu.Game/Screens/Edit/BottomBar.cs:line 44
   at InvokeStub_BottomBar.load(Object, Span`1)
   at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of stack trace from previous location ---
   at osu.Framework.Allocation.BackgroundDependencyLoaderAttribute.<>c__DisplayClass7_0.<CreateActivator>b__3(Object target, IReadOnlyDependencyContainer dc)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__209_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__209_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
   at osu.Game.Screens.Edit.Editor.load(OsuConfigManager config) in /home/runner/work/osu/osu/osu.Game/Screens/Edit/Editor.cs:line 331
   at InvokeStub_Editor.load(Object, Span`1)
   at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of stack trace from previous location ---
   at osu.Framework.Allocation.BackgroundDependencyLoaderAttribute.<>c__DisplayClass7_0.<CreateActivator>b__3(Object target, IReadOnlyDependencyContainer dc)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Drawable.LoadFromAsync(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadComponents[TLoadable](List`1 components, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext, CancellationToken cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c__DisplayClass13_0`1.<LoadComponentsAsync>b__1()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c__DisplayClass13_2`1.<LoadComponentsAsync>b__4()
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Platform.GameHost.UpdateFrame()
   at osu.Framework.Threading.GameThread.processFrame()
--- End of stack trace from previous location ---
   at osu.Framework.Platform.GameHost.<>c__DisplayClass142_0.<abortExecutionFromException>b__0()
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Platform.ThreadRunner.RunMainLoop()
   at osu.Framework.Platform.GameHost.windowUpdate()
   at osu.Framework.Platform.GameHost.Run(Game game)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)