I just pinpointed the resource hog closer. It appears that the bottleneck comes from the code you blatantly copied from the VQueloUIPlugin over at https://github.com//VaQuoleUI/blob/master/Source/VaQuoleUIPlugin/Private/VaQuoleUIComponent.cpp.
I commented out the rendering part, and the framerates more than halves and the stutter is immense. The little @TODO mentions it’s not a big deal. Apparantly the copying butchers my framerate on a pretty beastly PC.
// @TODO This is a bit heavy to keep reallocating/deallocating, but not a big deal. Maybe we can ping pong between buffers instead.
TArray<uint32> ViewBuffer;
ViewBuffer.Init(Width * Height);
FMemory::Memcpy(ViewBuffer.GetData(), buffer, size);
TextureDataPtr dataPtr = MakeShareable(new TextureData);
dataPtr->SetRawData(Width, Height, sizeof(uint32), ViewBuffer);
// Clean up from the per-render
ViewBuffer.Empty();
buffer = 0;