拖动Editor的Border,会导致Editor Crash。

当拖动Editor的Border时候,会导致Editor Crash。(虽然这个问题不是常用的操作导致的,但确实存在这个问题)

造成该问题的原因是:在拖动Editor的Border时候,FEngineLoop::Tick()会被阻塞。而Slate的Render不会被阻塞。

在正常情况下,FEngineLoop::Tick不会被阻塞,在该函数中,会调用EndFrameRenderThread,在每次EndFrame的时候,会进行UploadHeapAllocator的Cleanup(释放内存)。

但当拖动Border的时候,FEngineLoop::Tick会被阻塞,ResizeWindow的时候,在FSlateApplication::OnSizeChanged中会调用PrivateDrawWindows(Window);当DrawWindows的时候,会申请内存(AllocateResource,在Pool中一直分配内存,CreateNewPool),这个过程中由于不会触发EndFrame,不会释放内存,但会一直申请新的内存,导致内存一直增加。

[Image Removed],可以看到共享GPU内存会一直增加,当分配不出来内存的时候就会Crash。

您好,感谢反馈,我这边跟Slate团队反馈一下这个问题😀

崩溃的堆栈或日志有时间的话最好也可以补充一下,没有也没关系

要稍等,我后边补充,外网现在有问题,接下来我尽可能补充完整。

好的~