[5.2] CRITICAL BUG - Can a developer please look at this?

Hi,

I posted about a critical bug in the UI a few days ago and even sent a project with one textbox + one tiny script clearly showing the issue.

https://fogbugz.unity3d.com/default.asp?727000_jv3r93cq7812oqdv

Its extremely depressing to find an email from QA saying they can’t reproduce it (i can reproduce 100% it on every android device I own, and 4 different PC’s with 4 different graphics cards!). A 5 year old child can reproduce this bug with the project I sent you, you just click the play button and watch the profiler!

Below are two screenshots showing the problem after running the test sample I sent you for 5 minutes on a Skylake 4.6ghz PC. Notice the 23.1ms spikes? Notice the ‘GFXDriver’ showing 49.6mb? The longer you leave it running, the bigger the spikes get and the more the memory goes up.

On an android device (and presumably IOS too, although I haven’t tested on IOS) running this scene with a single text box in it for 5 minutes goes from 60fps to 5fps and eventually crashes.

Every time a mesh is updated in the UI there is a leak! I can reproduce it with UIImage , text, anything.

Please look in to this issue, we need a patch.

Try running the scene I sent you in 5.1 , and you will see it clearly doesn’t happen in 5.1.

Thankyou.

3 Likes

So i’ve tested it with out dev branch and I as well dont see any difference after any period of time. I’ve poked another dev who is still working to see if he has any thought other wise i’ll look further tomorrow.

Hey.

I managed to reproduce, track down, and fix this issue. It will be fixed in a patch release soon.

The issue was that we were incorrectly tracking the size of an index buffer used by the canvas. It would grow each time the buffer was regenerated and never shrink. This is a super nasty bug. Thanks for reporting it.

3 Likes

woo hoo! Thankyou! It is indeed a super nasty bug, especially when working with UI Meshes that are large! :wink:

Another victory for the Unity community and developer collaboration (power of the forums)
And another -1 for Unity QA.

2 Likes

nooooo! The fix isn’t in 5.2p1 :frowning:

yea didnt make it, we are still working on getting it to a release asap

1 Like

And what about 5.2.1p1?

1 Like

Doesn’t look like it, can’t see it mentioned in the fix list… I’m giving up on 5.2 at this point, total waste of time…

2 Likes

Judging by the forums, everyone who has updated to 5.2 is having problems, and I haven’t seen any replies from the devs for about a week…

1 Like

Everyone was probably busy at Unity 2015 in Boston.

2 Likes

Not the best idea when 5.2 can’t even display a simple fps counter without leaking memory and crashing…

This is a critical bug that makes 5.2 basically useless. An emergency patch should have been issued for this bug. Releasing TWO patches without addressing this issue is just plain ridiculous.

Shipping games has currently no priority for Unity. Deal with it (⌐■_■)

1 Like

Totally agree - made a thread in general discussion about Unity performance testing…there not point releasing major versions 5.2 then using customers as indirect testers and when major bugs are found the patch release its hit or miss

That’s an extreme interpretation.
No priority is not the same as secondary priority to editor usage in general sense. However, that doesn’t mean we wouldn’t push for bugs like this to be addressed with high priority.

This bug was not discovered until post-ship. If it was discovered before, we likely would have pushed hard to have it in the full release if we’d have known about it then.

I can confirm that the Critical Bug is fixed in 5.2.1p1, however performance now sucks due to me having to call VertexHelper.SetUIVertex() several thousand timers per frame.

Outlines / Shadows no longer allocate memory, but they are also shocking slow (unusable).

why are you having to call that so much?

no choice. Its either that or call AddVertex several thousand times times per frame which would slow it down even more.

prior to the 5.2.1p1 update I could just do this:

mesh.vertices = m_Positions;
mesh.uv = m_Uv0S;
mesh.colors32 = m_Colors;
mesh.triangles = m_Indicies;
mesh.RecalculateBounds();

now I have to do this:

for (int i = 0; i < m_verts.Length; i++)
{
toFill.SetUIVertex(m_verts*, i);*
}

Hmm, so yea the whole new OnPopulateMesh (vertexhelper) was new to me when reading the threads this morning :S. I’ve messaged the developer that did it to see whats going on for both the performance issue and API change.

1 Like

cheers, hopefully we can get this fixed