iOS - UMG widgets render errors on Metal with Scroll Box

Hi there,

We are currently running on UE 4.12.4 and we have an issue in one of our UMG Blueprint Screens where at randomly times when we scroll through our screen, certain widgets both inside the scroll box and outside of it, seem to get their rendering information broken for a single frame, causing them to be drawn over most of the screen in a distorted triangle.

For instance we have a button located in the top right of the screen and sometimes as we scroll, it suddenly get rendered from its anchor point, to near the opposite side of the screen, but as a triangle instead of its square size.

This behaviour does not occur every time we scroll, but when it does occur it seems to happen no matter how fast we are scrolling.

I was thinking it might be related to this bug Why do UMG Widgets Flicker on iOS/Why are pictures blurry on iOS? - UI - Unreal Engine Forums

This only occurs on Metal, as our project is setup not to run without metal. The widget itself consists of a few buttons that lie outside the scroll box, and then a scroll box which takes up about 66% of the screen, which contains a Uniform Grid Panel, which then contains a whole number of Vertical Boxes, each containing an image and text.

Like the other bug we do use the Canvas HUD system as well. I will try and get a video of the bug itself, as capturing it in a screenshot is next to impossible.

My first question is did the first bug in question get fixed and is it possible to try that?
What else can I provide to help track this down, as it is a bug which is holding back our release and Apple really want it fixed.

Edit: I have only managed to repro this very very rarely in a new project. It could be that the lower the frame rate is, the more often it occurs. I created a HUD which just draws a texture, and then a umg widget with a scrollbox which contains about 30-40 image widgets in a 4 column uniform grid layout. With this I can get it to happen only once after launch, on the first scroll only. It doesn’t happen 100%. I am going to do some more experimentation.

Hello .Driehuis,

After speaking with the developers the it appears that the report that was written up was actually working as intended. User Interface domain materials may only be used with slate and UMG. They are not intended to be used with Canvas. As for the issue that you are seeing. I was unable to reproduce this issue on our end with the information provided. I noticed that you said you are continuing to look into this issue for a reliable reproduction. When you have this worked out, could you reply back with a detailed list of steps to reproduce this issue on our end? Could you also include screen shots of any settings/blueprints that may be involved?

So the repro rate isnt as high in my test unreal project, again my big thought here is that the higher frame rate either hides or lessens the chance of this occurring. The simple project is too big to be attached here, so let me know where I can place that. In that project I see a very very quick distortion of the elements on the screen. All I do to make it happen is to continue to scroll. Faster scrolls on the new project seem to make it happen more, buts theres no definite.

For our actual engine source build project I have attached some images and have this video here of what we are seeing. It is way more common, much more obvious and happens even on slow scrolling at times.

And here are some images.

Hello ,

If you would like to provide the project, you can do so via google drive or drop box. If you would like to provide it privately, you could do so by sending it to me in a private message on the forums.

Thanks I have just done so, hope that helps track it down.

On an interesting note, to solve some other issues (animation jittering and some input issues) we turned on locking the game to 30 fps. This greatly reduces the amount of times we see the issue. It still happens but a huge magnitude of times less.

I know we have run into a few GPU crashes and other things during development with metal (Like this bug here https://answers.unrealengine.com/questions/427489/ios-gpu-hangcrash-on-devices-with-a7-and-a8-chipse.html ). My suspicion is that this could all be related in some way.

Hello .Driehuis,

After running a few tests with the project that was provided. I was unable to reproduce this issue on our end. I did not see the issue that is shown in the video provided. Are there any additional steps that need to be take to see this issue on our end with the project that was provided?

Hi Rudy,

I am updating the project link I sent you. This one I added a whole heap of foliage to slow the frame rate down which makes it much more noticeable. This makes it happen pretty regularly, as you scroll down to the bottom you should see it. Just scroll up and down and look for the big triangles of various colours.

I am running this on an iPhone 6S plus currently.

Hello .Driehuis,

I was able to reproduce this issue on our end with the project provided. I have written up a report and I have submitted it to the developers for further consideration. I have also provided a link to the public tracker. Please feel free to visit the provided thread for future updates.

Link: Unreal Engine Issues and Bug Tracker (UE-34172)

Make it a great day

Hello Guys,

only because this thread is almost 3 months old now.

We experience flickering textures on 4.13.1 with an animated UMG. Our App has a blue background with 4 cloud png’s, which are animated moving from left to right. On iOS with metal forward rendering activated the menu is flickering while the clouds are moving. If we deactivated the metal forward rendering it works without flickering.

As i said only to notice that others have this problem too.

Kind regards,
Marcel / pyr0t0n

As was stated on the public tracker this issue was closed as ‘Won’t Fix’ due to an extended period of time without updates. I have reopened this issue due to your renewed interest.

Make it a great day

Too bad too see this report flagged as a won’t fix, we are encountering the same issue with our 4.15.1 project.

Same problem here! did you guy find a way to fix it? or minimize the glitching?

Sorry what updates did you need to keep the bug alive, I assumed once I gave you the reproducible project there was nothing else required? Apologies if I missed something there. We ended up shipping with this problem, but if I can provide anything the help track this down let me know.

The only way we were able to minimise it was to lock our FPS to 30. This was not ideal, but it did limit the issue so it happened much less frequently and less noticeably. Other then that we did not understand why and shipped with it.

Hi,

Sorry it took so long. But this issue will be fixed in 4.17. In earlier releases you can apply simple code change to fix it.

In MetalRHIPrivate.h file find

#define BUFFER_DYNAMIC_REALLOC BUF_Volatile 

and replace it with

#define BUFFER_DYNAMIC_REALLOC BUF_AnyDynamic