40GB+ RAM allocation by Sequencer Curve Editor

Hi!

I found an issue where something slate related basically allocates the RAM.

To replicate download this example project:
[Download from Google Drive][1]

Open it. It should have the minimal default map.
Open the level sequence RecordedSequence_0 in Sequencer. Do not be disturbed by the low framerate.

Change sequencer to curve editor mode.

Select the first Transform track. See image below.

Scroll down all the way to the lowest transform track. It will run really slow so please have patience.

Shift click on the lowest transform track and select it. Open up the task manager to see the memory usage of UE4.
It should be going up very quickly.

It seems this is caused in SCurveEditor.cpp SCurveEditor::PaintCurve, specifically the call to MakeLines here:

				//Add enclosed segments
				TArray<FRichCurveKey> Keys = Curve->GetCopyOfKeys();
				for(int32 i = 0;i<Keys.Num()-1;++i)
				{
					CreateLinesForSegment(Curve, Keys[i], Keys[i+1],LinePoints, ScaleInfo);
					FSlateDrawElement::MakeLines(OutDrawElements, LayerId, AllottedGeometry.ToPaintGeometry(), LinePoints, MyClippingRect, DrawEffects, Color);
					LinePoints.Empty();
				}

Cheers

Hi ,

Thanks for reporting this! I’ve entered UE-45707. You can track the report’s status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

Hi !
Thank you!

Quick update:
I looked a little bit further into the issue and it seems this issue is actually not related to Sequencer itself but to the way Slate allocates memory.

I have verified that all allocations by Sequencer are not the problem.
It seems to be a constant reallocation of the render(?) buffers of slate with increasing size.

So this issue will probably affect extreme uses of Slate in other use cases as well.

Cheers!

Hi ,

Our engineers will get to the bottom of the issue no matter what the cause, but thanks for the info.