Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Disappointed with performance

Discussion in 'Developer Preview Archive' started by angel_m, Dec 22, 2011.

  1. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    I am happy they list several bugs being fixed with regards to browser interaction and of course this silly splash screen problem. I only wish they would take from the Program name in the editor or let us name the xCode project name ourselves.
     
  2. jlevel

    jlevel

    Joined:
    Jan 23, 2012
    Posts:
    20
    Wozik, not to be rude, but have one million of users is not a valid excuse to "lose reports" if they haven't a complete project attached.

    Some cases doesn't require attach the full project and should be treated as equal. The severity of bug does not depends if have a full project attached or not.

    I can understand the situation, I'm working as profesional developer for 10+ years ago, but I can't imagine the faces of our clients if I've to request the full source on each bug.

    Remember that If Unity have one million users, it's because users had trusted on their product. Not solving bugs or ignoring them produces the opposite reaction.
     
  3. Tiles

    Tiles

    Joined:
    Feb 5, 2010
    Posts:
    2,481
    Another point, why should i attach a file with severals mb or even gb of file size when the bug isn`t something to reproduce with a file, but just contains a description of let`s say a UI bug? A not proper working slider for example, or a value that is hard to select with the mouse sometimes (i hope that this one is fixed in 3.51, heh. I have no clue if somebody hasn`t already reported that baby)? That there is no file attached does not make such a bug less valid. A rating system to cut away such bug reports without attachments is not really a good idea.

    It`s at Unity`s end, it`s how the bug tracker works that Unity has so much work with bug reports. This is home made. There is a very valid better way. Make the bug tracker public, or make it at least public to folks who has already submited minimum one or three valid bugs. In that way everybody can have a look if the bug that he has found isn`t already posted by another person. And this will reduce the number of bug reports dramatically. It`s somehow crazy to skim through hundrets, thousands or even tenthousands of bug reports for the very same bug, and it`s even crazier to even think about answering them one by one. So no wonder that the one or another report stays unanswered.
     
  4. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thanks Wozik, I understand the massive amount of report. (and replied to OnDestroy() case by mail).

    That would be an awesome benefit for both Unity and users, I'm pretty sure. This is an excellent proposition.
    Also, it would make users lose far less time in trying to nail the potential bug with neverending Debug traces.
     
    Last edited: Apr 12, 2012
  5. Patapouffe

    Patapouffe

    Joined:
    Apr 3, 2010
    Posts:
    88
    @Tiles

    The intention is good but there is a downside to making it public as well. What if they can't reproduce a bug with a specific project ? The people will look on there and think that it is being fixed since it was reported. However, it will be removed later and then other people will have to send their project anyways.
     
  6. rextr09

    rextr09

    Joined:
    Dec 22, 2011
    Posts:
    416
    This would be the most significant improvement in the entire unity history. Excellent idea!! This way I can see the opened bugs so that I won't spend time struggling with a problem caused by a "well-known" bug which I didn't know.
     
  7. droderick

    droderick

    Joined:
    Aug 25, 2008
    Posts:
    169
    In response to Tiles' and other's comments on this thread. There are a myriad of ways that Unity could create a community-included participatory bug tracker. Answers.unity3d.com is an excellent example of such. Why not create something similar to Unity Answers, but have a more stringent karma system in place so only real bugs can be posted, etc.

    @ Patapouffe - If Unity Techs can't reproduce a bug with a specific project, they should say so and make it public–allowing for additional steps to be taken if necessary (more info from bug-reporter, etc.).

    In general, it seems like the only way to encourage the community to track bugs is to make it a two-way conversation... Otherwise you end up with devs who don't report bugs because they feel there's no hope of them being fixed.
     
  8. Tiles

    Tiles

    Joined:
    Feb 5, 2010
    Posts:
    2,481
    ... and will be reported again when the bug report vanishes without the bug being fixed. Works like charm for Blender for example. So i don`t see a real problem here. At least not at this corner. Well, yeah, Blender has daily or even hourly builds at Graphicall. Means an unfixed bug will very fast be resubmitted. I doubt that we will see this for Unity.

    What could be problematic is that with a closed bug tracker you can send in your whole project, without the fear to break NDA. Just Unity devs can see it, and they will surely not break NDA for one of its paying customers. That would be very bad for Unity. To deal with the projects that way is of course not possible with an open bug tracker. Here you have to care about copyrighted material and NDA then when you submit a bug. But from my angle of view a bug needs to be reproduceable anyways so that the devs can fix it. And this can also be done in an example project. Which is most of the times much much smaller than a whole game project.
    That`s the key. And a public bug tracker is one possible solution to it.
     
  9. bmackenzie

    bmackenzie

    Joined:
    Jan 5, 2011
    Posts:
    37
    Same story here, a 20 fps degradation within a simple scene when I went from previous version 3.5 to new 3.5.1f2 update! Hard-fail!
     
  10. Bllacky

    Bllacky

    Joined:
    Oct 7, 2011
    Posts:
    17
    We are talking here about the game "Uplift". You can find it on Google Play.
    Here is a FPS comparison between versions:

    Desire S - Adreno GPU


    Average FPS for Level 1
    Average FPS calculated every 30 sec.



    3.4.2 | 3.5.1
    29.40 | 29.55
    27.04 | 25.90
    25.55 | 27.65
    27.58 | 26.78
    Avrg: 27.3925 | Avrg: 27.47

    Average FPS for Level 2
    Average FPS calculated every 30 sec.

    3.4.2 | 3.5.1
    19.04 | 16.61
    21.55 | 17.47
    19.99 | 18.63
    22.96 | 17.15
    Avrg: 20.885 | Avrg: 17.465






    Galaxy S (PowerVR 540)

    Average FPS for Level 1
    Average FPS calculated every 30 sec.

    3.4.2 | 3.5.1
    32.58 | 20.35
    36.02 | 18.70
    35.38 | 19.30
    36.71 | 18.68
    33.54 | 20.59
    29.93 | 19.90
    Avrg: 34.02 | Avrg: 19.58

    Average FPS for Level 2
    Average FPS calculated every 30 sec.

    3.4.2 | 3.5.1
    25.43 | 12.47
    20.26 | 12.61
    25.55 | 13.61
    22.92 | 12.55
    23.58 | 12.76
    Avrg: 23.54 | Avrg: 12.80

    This issue has now been submitted as a bug to Unity. We await a reply from you regarding this issue.
     
    Last edited: Apr 21, 2012
  11. rextr09

    rextr09

    Joined:
    Dec 22, 2011
    Posts:
    416
    @Bllacky, did you use T4M for the terrain? or is it just a static mesh?
     
  12. Bllacky

    Bllacky

    Joined:
    Oct 7, 2011
    Posts:
    17
    I have no idea what you are talking about.
    But we used unity's terrain generator which with a lot of tweaking can work really well.
     
  13. Moonjump

    Moonjump

    Joined:
    Apr 15, 2010
    Posts:
    2,572
    I've gone back to a project for the first time since 3.4, now on 3.5.1. It ran really smoothly before, but on my return it was all choppy. But with some work I have managed to claw back most of the performance. but one odd thing made a big difference.

    As I am mostly using the Unlit shader, I was setting Normals and Tangents to None on the model imports as I don't appear to be using them. Changed them to Import and the game ran much better.
     
  14. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Was your console getting spammed with 'Shaders wants normals but mesh doesn't have them' messages? If so, that'll be why your performance died - debug spam is a total framerate killer.
     
  15. Bllacky

    Bllacky

    Joined:
    Oct 7, 2011
    Posts:
    17
    I don't get any debug spam as far as I know. But I will try again.

    Edit:
    Verts,Trist and Draw Calls seem to be the same in both 3.4.2 and 3.5.1.
    Ok, no debug spam. All I can notice as a significant difference chunk of the CPU is now used for Animation Rendering and Animation Update as well as Particle Update (around 20-25%).
     
    Last edited: Apr 22, 2012
  16. Moonjump

    Moonjump

    Joined:
    Apr 15, 2010
    Posts:
    2,572
    I was getting those spam messages on 3.4 and it wasn't a problem. Performance was bad on iOS, so no spam messages there.

    Performance was choppy in the Editor as well, but I wasn't sure of the frame rate there as Stats fps has locked itself to the computer refresh rate and my question on the forums of how to fix it has gone unanswered ( http://forum.unity3d.com/threads/133127-Unity-property-list-on-Lion ).
     
  17. Bllacky

    Bllacky

    Joined:
    Oct 7, 2011
    Posts:
    17
    In my view your problem is specific to your project.
    What we are discussing here is a project independent problem. You can see from my above comparison that the performance hit is rather small for Adreno and huge for PowerVR, in my view this can only be cause by Unity.
     
  18. Deleted User

    Deleted User

    Guest

    That's interesting, I've also seen a 2x slowdown upgrading from 3.4 to 3.5, and I've only tested on PowerVR. Although my logcat profile seems to show the bottleneck is in dynamic batching, and I don't see how that's GPU-dependent.
     
  19. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Interesting.
    Maybe batching was reported to GPU, just like skinning was a long time ago ?

    edit : I'm wrong, google told skinning was done on CPU. I was pretty sure it was reported to GPU back in early 3.x ... nevermind.

    edit 2 : in fact it was the opposite, it went from GPU to CPU, according to Unity iOS 1.5 release notes :
     
    Last edited: Apr 24, 2012
  20. Bllacky

    Bllacky

    Joined:
    Oct 7, 2011
    Posts:
    17
    So what happens if you disable dynamic batching ? I am way so I can't test right now...
     
  21. Deleted User

    Deleted User

    Guest

    In one case, my Fugu Maze app, I turned off dynamic batching and replaced it with a call to StaticBatchingUtility.Combine, but that's a special case since that whole maze can be statically batched. In any case, I got closer to the previous performance (and according to users, much better after upgrading from 3.5. to 3.5.1). For my other app where it's an obvious issue, HyperBowl, I haven't bothered to try that since I've already statically batched everything I can and I know it depends on proper dynamic batching for decent performance. So that's still on 3.4.
     
  22. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    I tried some tests of drawcalls by disabling/enabling static/dynamic batching in this post. I still don't understand the results, as you can see in the last paragraph.
     
  23. jtbentley

    jtbentley

    Joined:
    Jun 30, 2009
    Posts:
    1,397
    Any insight on this? We're also suffering pretty bad on both Android and iOS platforms at the moment..
     
  24. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Yeah, 3.5.1 didn't change a thing about it :/
    Actually the Profiler (deep mode) is unusable, as it's indeed the most nested parts of framework that are often the target of desired profiling.
     
  25. Deleted User

    Deleted User

    Guest

    I got a reply from QA that explains at least some of my dynamic batching slowdown on Android:

     
  26. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    That is a critical tip, thanks for sharing technicat.
    But this one is so important to know that I guess it should be exposed directly inside the Editor ... (like for example in the mouseover help bubble)

    edit : can't they fix it inside the engine themselves ? Like detect if the bound shader does use normals/tangents or not ?
     
  27. Moonjump

    Moonjump

    Joined:
    Apr 15, 2010
    Posts:
    2,572
    That is weird, I have had the opposite experience. My iOS game had slowed down with 3.5.1 (went straight to it from 3.4). It uses unlit shaders and I had normals and tangents disabled. I got a large part of my performance back on the devices by enabling normals and tangents.

    Of course it also stops me getting spammed in the editor with error messages relating to normals being needed for the shader used in the Editor, but not in the game.
     
  28. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Bump. This problem is really critical, as right now it's just impossible to monitor high Profiler peaks. Any news ?
     
  29. nbalexis1

    nbalexis1

    Joined:
    Jul 21, 2011
    Posts:
    89
    Did you file the bug report? I think they don't know this bug
    Really hope the performance issue been fixed. My game obviously slow down using 3.5.1f2 than 3.4.2f3, but I deleted the 3.4.2f3 so I can do anything with that now.
     
  30. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Of course I filed it ;)
    No scene attached though.
     
  31. Tiles

    Tiles

    Joined:
    Feb 5, 2010
    Posts:
    2,481
    Ha Ha :D
     
  32. nbalexis1

    nbalexis1

    Joined:
    Jul 21, 2011
    Posts:
    89
    PowerVR might be the bad guy.
    I googled my phone and find out that my phone is indeed using a PowerVR GPU
     
  33. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    5,203
    There is one side effect of an optimization we did in 3.5 that a lot of people run into apparently.

    In 3.4 we created a VBO at load time based on the layout that was required by the shader. Thus if you have tangents and UV2 in your mesh but no materials are using it. We would never upload uv2 and tangents to the VBO.

    The downside of the 3.4 approach was that it commonly led to hiccups during gameplay, when a new material in the middle of a game started using a tangents or normals. In that case the mesh would be reuploaded to the graphics card and this sometimes led to a noticable hiccup. So for 3.5 we changed the code to always keep the same VBO data irregardless of what the assigned shaders require. This reduces hiccups when uploading vertex data (because there is less copying) and lets us implement "non-readable" mesh support in the future.


    The issue in 3.5 is that it is apparently very common that people have normals tangents UV2 in their mesh data but are actually not using it. In mesh skinning this can lead to a drastic reduction in performance.
    You can fix it in your content by disabling Tangent or normal generation where appropriate.

    We have implemented a feature that will automatically remove vertex data that is not used by any materials at build time by analyzing all scenes included in the build. It's gonna be a checkbox in the playersettings and should be very easy to use.
    This will be part of the 3.5.3. (3.5.2 with a bunch of bug fixes is coming out very soon)
     
  34. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    5,203
    @NOMAD:

    We have found the issue with deep profiler running out of memory. This fix will be part of 3.5.3.
    (The fix was too late for 3.5.2, which is on it's way to shipping)
     
  35. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Great news ! Thank you Joachim.
    (and thanks for the indepth explanation above too)
     
    Last edited: May 14, 2012
  36. TrialByFun

    TrialByFun

    Joined:
    Jun 23, 2009
    Posts:
    97

    This is really useful information! Thanks for sharing.

    Do you think we could work out together a better way of communicating these sort of underlying changes with us in the future?
    Something more descriptive than just the bulleted build notes we currently get. Having this sort of knowledge up front helps get to why certain aspects of a game are performing differently and how we can fix it, without just shooting in the dark.

    Its also really interesting to know this stuff.
     
  37. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    +100 !
     
  38. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    Sorry for reviving this thread, I need info on this.


    Hi Joachim, I have a question about this,
    is the mobile platform - hiccups preventing - static call:
    Code (csharp):
    1.  Shaders.WarmsUpAllShaders()
    still useful since you added the PlayerSettings option for reducing vertex infos sent to the VBO or not ?

    It sounds this new feature, "kills" the need of Warming things up ?

    Thank you in advance for clarifying this,
     
    Last edited: Aug 27, 2012