In some situation, Slate tries to secure incredible amount size data and run out of memory. This happens a cell having very long and complex serialized text appears on the editor and it is placed to left as much as possible on a large screen.
The case reported by the customer has small size data table (can't run out of memory), but it has data with thousands element on vector array. Then their "ControlPoint" field tries to have serialized text on Data Table for human eyes and it ends up to secure a super large space (111599 x 21 pixels) on Slate vertex buffer. This trigger ensureMsg like;
> LogOutputDevice: Error: Ensure condition failed: PixelSize.X >= 0.f && PixelSize.X <= (float)std::numeric_limits<uint16>::max() [Link Removed] [Line: 186]
The size X '111599.000000' is too small or big to fit in the SlateVertex buffer.
We may have received the similar report from community.
https://forums.unrealengine.com/t/unreal-5-3-1-bug-out-of-video-memory-reproduce/1326452/2
It is weird, but this excessive vertex buffer request does not let the system crash if you place the data table window to the right monitor, or your monitor is a single and Full HD. It seems to depend on how wide space is there between the cell in a question and the right border on a whole of your screen.
Note: Not to block the customer's business, I provided non-ideal & temporal workaround which trim text with 1024 characters at FTextLayout::CreateLineViewBlocks().
if (StopIndex != INDEX_NONE) { BlockStopIndex = FMath::Min(StopIndex, BlockStopIndex); } + else + { + // Workaround + BlockStopIndex = FMath::Min(BlockBeginIndex + 1024, BlockStopIndex); + }
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-208079 in the post.
0 |
Component | UE - Editor - UI Systems - Slate |
---|---|
Affects Versions | 5.3.2 |
Created | Feb 26, 2024 |
---|---|
Updated | Sep 30, 2024 |