[Bug report] Bad widget performance : Slate : ProcessMouseMove

Visible with console command “Stat Slate”, the ProcessMouseMoveEvent of Slate slows down FPS to a crawl on relatively simple UserWidgets.

with a “Relatively simple UserWidget” I mean for example a game main menu containing lists of setting UserWidgets for the graphics, audio, anything you’d expect from a modern game.

Surprisingly, during mouse movement, Slate seems to go through a set of logic for every widget in the hierarchy, even if they are removed from the screen (RemoveFromParent), invisible, or not hit testable.

This means if you open and remove your UserWidget menu rapidly, Slate will crawl until the UserWidgets are garbage collected.

Why does Slate behave like this, as it is in my opinion unacceptable for any serious game project. Can ProcessMouseMoveEvent be avoided entirely during a lifetime stage of a UserWidget?

1 Like

Is this fixed in UE5?

:up:

With no response and no patch even in UE5.1.1, I ended up making my own lazy load implementation which runs the garbage collector before things get out of hand by people spamming a “open / close” action on a menu which is dynamically generated. Keeping this one open for the bug report (if EPIC sees it…)

Hello from the future :slight_smile: EPIC?