Search Unity

  1. Unity 2020 LTS & Unity 2021.1 have been released.
    Dismiss Notice

Cross-Platform build fail due to Burst

Discussion in 'Burst' started by MartijnGG, Aug 27, 2019.

  1. MartijnGG

    MartijnGG

    Joined:
    May 3, 2018
    Posts:
    73
    A few releases ago, Burst would print an error whenever I would try to build for MacOSX on a Windows machine, mentioning that Cross Platform compilation is not yet supported, and then succeed to build.

    It seems that now that I've upgraded to 1.1.2, this is no longer the case? A BuildFailedException is thrown and the build fails.
    Why was this behaviour changed?

    The work around I've used for now is to fully disable burst for all Standalone platforms (Linux64,MacOSX, Windows), as there is no other way for me to get a working build for platforms other then by working machine.

    Could burst be altered to instead check for cross platform building and not fail my build?

    Regards,

    Martijn
     
  2. judah4

    judah4

    Joined:
    Feb 6, 2011
    Posts:
    234
    I have the same issue with burst when building on Unity versions past 2019.1.11. Burst 1.1.0 and 1.1.1 failed on build for MacOS and linux but didn't stop the build. On a later version, like Unity 2019.1.14, burst fails and makes the whole build fail.

    I think something changed in 2019.1.12 because the release notes mention something about burst https://unity3d.com/unity/whats-new/2019.1.12? I'm not really sure.
     
  3. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    308
    Yes the behavior changed. Many users were confused that their project was not using burst while it was supposed to. This is now an error. If a project is compiling with burst on a different platform than the target platform, the build will fail. You need to disable explicitly burst in that case.

    Note that you can pass the option
    --burst-disable-compilation
    to Unity and it should disable compilation for a running Unity instance.
     
  4. MartijnGG

    MartijnGG

    Joined:
    May 3, 2018
    Posts:
    73
    The issue for me is that this is a project wide setting. Due to this, I have to disable Burst for MacOSX to have my "all platforms" build work. But my colleagues on MacOSX will have to turn it back on and turn Windows off instead.

    Our solution so far, has been to simply turn it off globally, which is a shame as Burst would be extremely helpful for performance.

    Is it not possible to change the behaviour to skip burst compilation if you try to build for another standalone platform?

    > Many users were confused that their project was not using burst while it was supposed to

    But its not supposed to? Cross platform compilation is not supported last time I checked.
     
  5. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    2,836
    You could just leave the BurstAotSettings_StandaloneWindows.json file out of git allowing users to have their own setting.

    Or simply write 10 lines of code for a build preprocessor to enable/disable if burst is cross platform.
     
  6. MartijnGG

    MartijnGG

    Joined:
    May 3, 2018
    Posts:
    73
    The PreProcessor is a good idea, though I hope it will be fixed on Unity's side.
     
unityunity