Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Poor Sample Performance
#11
(09-09-2018, 12:25 AM)Armadous Wrote: Thanks jose, you've been a great help trying to figure out what's going on. A tested a build version on a slightly "newer" AMD computer, an FX-8300 with similar results. It's looking like the FX series isn't capable of running Obi fluid without a lot of compromises. 

I was finally able to achieve something runable by bringing down the simulation quality.
https://i.imgur.com/RlnVZek.gifv

Hi,

Glad to hear that you got it running half decently. We are working on the core solver to make it a bit more efficient on less powerful CPUs (specially these that have few but powerful cores, or many slower cores). Make sure to grab the new version once it is out, you'll probably get better results with it.

cheers!
Reply
#12
Greetings,

I seem to have a performance issue and I am unsure why. I have two scenes in unity, one has a bit more logic and one has a bit less. The obi fluid simulation part is identical in both scenes. However, the scene with more logic takes at least twice as long to run the ObiFixedUpdater. Can anyone explain why?
[Image: 7dIqR0x.png]

[Image: wQjRmVu.png]


[Image: FHj6Hlc.png]

[Image: 5RgiE8A.png]
Reply
#13
The second profiler pic clearly shows (in the Calls column) that FixedUpdate() is being called twice per frame, instead of just once. That’s why it takes twice the time.

In Unity (and all fixed-timestep engines), physics might be updated 0, 1, 2, 3... n times per frame, depending on how long the last frame took to render. This can result in a situation commonly -and jokingly- called “death spiral” or “well of despair”, where each frame takes longer to render than the previous one, forcing more physics updates, and even longer frames.

There’s multiple solutions to this: using a larger timestep, using a smaller max timestep, optimizing other parts of your game so that physics don’t have to be updated more than once per frame to catch up.

Read about fixed-timestepping schemes. It’s crucial to understand how they work to be able to profile and optimize physics in Unity (and many other engines)

Edit: here’s a really good (if a bit technical) explanation of different timestepping schemes, including fixed timestepping and death spiral: https://gafferongames.com/post/fix_your_timestep/
Reply