Search Unity

ParticleSystem.Update using significant resources even for default particle system

Discussion in 'General Graphics' started by dgoyette, Dec 11, 2016.

  1. richardkettlewell

    richardkettlewell

    Unity Technologies

    Joined:
    Sep 9, 2015
    Posts:
    1,861
    For the current Particle System, no, we are not looking at making any further significant optimizations.
    However, we are developing a new, graph-based way to author particle systems, which performs all computation on the GPU. It's in preview in 2018.3: https://unity.com/visual-effect-graph

    Yeah, unfortunately that just "how it's always been" and we know it can cause performance spikes. We were recently asked about adding a faster, cruder pre-warm mechanism, which was less accurate, but far faster. I'd like to add this so you can reduce the stall in many cases. It would be even better if the prewarm could happen asynchronously on a thread, but that may be too large a change given that we are now shifting focus to the Visual Effect Graph.
     
  2. richardkettlewell

    richardkettlewell

    Unity Technologies

    Joined:
    Sep 9, 2015
    Posts:
    1,861
    Last edited: Jan 17, 2019
    karl_jones likes this.
  3. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    657
    It is not that I am misunderstanding that this could be difficult. What I am pointing out is that this is LTS. That means people choose LTS because it is meant to be supported long term. It means that projects will be started and ended with this particular branch because it is LTS. Now, given that, if a known issue is decided to be not fixed because it is hard and it has risks....well then it beats the whole purpose of the LTS. I might as well as use the 2019 Alpha, I mean seriously is there a real difference if known issues are to be handled this way? Why claim long term support when the issues that require long term support will not be worked on?

    This is just ridiculous.
     
  4. thelebaron

    thelebaron

    Joined:
    Jun 2, 2013
    Posts:
    670
    @richardkettlewell
    Hi Richard, is this particlesystem update issue fixed in 2018.3? I'm confused by the tracker page https://issuetracker.unity3d.com/is...op-after-upgrading-from-5-dot-6-to-2017-dot-1 which states "Fixed in Unity 2017.3.0f3" and your responses to jjejj87, basically saying it wouldn't be fixed for 2017.4, and only to be fixed in 2018.3?
    I'm currently getting a lot of slowdown(the profiler shows WaitForJobGroupID as the culprit) with several particle systems(with admittedly large quantities of particles each) in 2018.3.0f2 and it appears to be similar to what has been described in this thread by everyone else, but I don't know if this is a just pushing the limits of the system or if this is a continuation of that(is WaitForJobGroup the same as WaitForJobGroupID?) issue.
     
  5. richardkettlewell

    richardkettlewell

    Unity Technologies

    Joined:
    Sep 9, 2015
    Posts:
    1,861
    There is a fix for this issue currently being tested. The version it lands in will show up on the issue tracker link in the next few days:
    https://issuetracker.unity3d.com/is...als-null-error-and-lead-to-graphical-glitches

    I just had a look at the history of that bug, and it's actually for a different issue (but it's easy to be confused, especially as the public page isn't specific enough for you to know it's a different issue). That bug is actually a regression caused by us doing some work at every simulation step that only should be done during each rendering step (imagine a prewarm may run 1,000 simulation steps to prepare a particle system, but it only gets rendered 1 time after the prewarm. That bug was due to a bad change we made that moved some code from rendering to simulation.

    Maybe it got mentioned in this thread because other people mistook it for the WaitForPreviousRendering stall that this thread focuses on too (too many posts for me to check)

    The WaitForPreviousRendering fix is definitely only in 2018.3 and newer, no matter how much @jjejj87 stamps his feet about it ;)
     
    karl_jones and thelebaron like this.
  6. DarkVerse

    DarkVerse

    Joined:
    Jan 9, 2017
    Posts:
    48
    I am still getting this WaitForPreviousRendering lag (upto 100ms) and I am on 2018.3.12f.
    However, I only get hit if using MultiThreaded rendering, without MultiThreaded rendering the lag is not there and (consequently) performance is much better.
    I dont think this issue is fully resolved.
     
unityunity