Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Chunk iteration time splicing and determinism

Discussion in 'Data Oriented Technology Stack' started by yc960, Feb 8, 2019.

  1. yc960


    Apr 30, 2015
    Let's say I have some pathfinding workload that I want done over multiple frames. So I have 12 chunks of entities and I iterate one chunk per frame so everything gets done in 12 frames. My question is that, would the result be deterministic across different platforms/specs? What is the recommend pattern for time splicing workload while preserving determinism in ECS/C# jobs?
  2. Brendon_Smuts


    Jun 12, 2017
    At the moment we are guaranteed determinism only when executing on the same platform.

    In theory you would have cross platform determinism in the execution order of your ECS systems and scheduled jobs so long as you are not using any floating point math to make decisions on whether you want to execute a system/schedule a job.

    In the future the intention is that the Burst compiler will be able to enable floating point determinism across platforms through class/method compilation using attributes.
  3. Joachim_Ante


    Unity Technologies

    Mar 16, 2005
    Deterministic simulation will generally have to assume that the order of chunks is the same across machines.

    So in terms of timeslicing processing, you just have to have some index for which chunks to process every frame that index has to be chosen deterministically. Should be very straightforward.