Search Unity

  1. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  2. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  3. Participate with students all over the world and build projects to teach people. Join now!
    Dismiss Notice
  4. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Burst for standalone players

Discussion in 'Entity Component System and C# Job system' started by xoofx, Jul 10, 2018.

  1. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
    Hello,

    As part of the 2018.2 release of Unity, we are pleased to release an official preview of the burst package with support for standalone players (i.e AOT mode of burst) which is only working with 2018.2+

    This version `0.2.4-preview.20` is now accessible from the package manager:

    upload_2018-7-10_15-55-0.png

    User Documentation

    There is a documentation available through the burst package. This is an early preview. We expect to give more insights on how to better use burst to improve the performance of your games.

    Support for standalone players

    When building a player, burst will compile a single dynamic library for all the burst jobs in your game. Depending on the platform, the dynamic library will be output to a different folder (on Windows, it is in the path `Data/Plugins/lib_burst_generated.dll`)

    This library will be loaded by the Job system runtime on the first job compiled by burst.
    The settings to enable the compilation are controlled by the Jobs/burst menu, the same way than for the editor.
    In a future iteration, these settings will be moved to proper settings per platform/player.

    Supported platforms

    This release is supporting the following platforms for standalone players:

    - Windows
    - MacOS
    - Linux
    - Xbox One
    - PS4
    - Android (ARM v7 and v8+)
    - iOS (ARM v7 and v8+)

    Note that most platforms using Intel x64 processors should be working quite flawlessly. For the mobile platforms, this is something really new and you might encounter bugs for these platforms. Please let us know by reporting them via the Help menu and select Report a bug.

    Known issues

    We still have a few known issues with this release for standalone players support:

    - Accuracy/Precision are currently not supported
    - The target CPU is currently hardcoded per platform (e.g SSE4 for Windows 64 bits)

    These issues will be resolved in a future release of burst.

    Please note also that the latest release of ECS `0.0.12-preview.8` is not using this version of burst. A new version of ECS will be published in the coming days with the latest burst.
     
    Last edited: Jul 10, 2018
    rizu likes this.
  2. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    595
    FIRST! :p can it be used outside the job system? if so I will test it asap
     
  3. LordDarkon76

    LordDarkon76

    Joined:
    Apr 1, 2015
    Posts:
    21
    Can it be used with the Incremental Compiler? Or does it has any issue ?
     
  4. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
    Not for this version unfortunately. There are a few issues that prevented to release this feature in this release. Can't tell exactly when these will be resolved.
     
    sebas77 likes this.
  5. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
    Afaik, it should work with it. Burst doesn't work at C# compiler stage but by later post processing compiled .NET assemblies.
     
  6. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    595
    Apparantently I will be the last one to try it :D
     
  7. BernsteinA

    BernsteinA

    Joined:
    Jun 26, 2013
    Posts:
    13
    Is there an ETA on Burst for Nintendo Switch?
     
  8. Loofou

    Loofou

    Joined:
    Aug 22, 2012
    Posts:
    9
    Does it work with jobs outside of the ECS? I successfully used the job system for procedural Generation and now I want to experiment with the burst compiler as well. I added the package and put the [BurstCompile] attribute over a job struct, but it can't compile as it can't find the attribute. The only attribute found is BurstDiscard.

    I'm on 2018.2 and use the incremental compiler and assembly definition files.
     
  9. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    4,198
    Burst can be used without ECS. You need to include the Burst package in the package manager.
    (ECS package automatically includes a dependency on Burst)
     
  10. Loofou

    Loofou

    Joined:
    Aug 22, 2012
    Posts:
    9
    Thanks for the answer, but like I said, I have the package already installed from the package manager. The file is even there in the project browser, but even with including "Unity.Burst" the compiler can't seem to find the attribute. The Editor Tools coming with the Burst package seem to run fine though. I can open the Burst Job Inspector and so on. I simply can't compile any jobs, as the BurstCompile attribute is not recognized for some weird reason. I have the suspicion it might be related to assembly definition files, but I am not sure.

    BC_Issue_01.png BC_Issue_02.png BC_Issue_03.png
     
  11. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    4,198
    If your code is in a assembly definition file then you need to create a dependency / assembly reference to "Unity.Burst"
     
  12. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    3,470
    Any ETA on when the assemblies from packages will be available in the selection menu for references? Right now, in order to add a dependency to Unity.Burst, you have to open the asmdef file in a text editor.
     
    Prodigga likes this.
  13. M_R

    M_R

    Joined:
    Apr 15, 2015
    Posts:
    287
    you can drag it from the project folder if you have 2018.2 (under "Packages")
     
  14. Loofou

    Loofou

    Joined:
    Aug 22, 2012
    Posts:
    9
    Ah that makes sense, thank you. I already thought about doing that, but as it didn't show up in the drop down menu, I thought it might not be the case. Thank you very much!
     
  15. bgrz

    bgrz

    Joined:
    Mar 22, 2015
    Posts:
    37
    Maybe add to the documentation that Windows SDK and VC++ toolset has to be installed in order for burst to work in builds.
     
    FlightCrazed likes this.
  16. FlightCrazed

    FlightCrazed

    Joined:
    Aug 1, 2014
    Posts:
    54
    Thanks, and good idea! However, even after installing the sdk and vc++ I still get this error.I am on windows 10, VS2017, Unity 2018.2.2f1 and on Burst 0.2.4-preview.23


    Exception: C:\Users\GreatAce\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.burst@0.2.4-preview.23\.Runtime\bcl.exe did not run properly!
    UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:130)
    UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1[T] setupStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    Unity.Burst.Editor.BurstAotCompiler.OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport report) (at C:/Users/GreatAce/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.burst@0.2.4-preview.23/Editor/BurstAotCompiler.cs:215)
    UnityEditor.Build.BuildPipelineInterfaces.OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:452)
    UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()





    System.NotSupportedException: Burst compilation for standalone, is only supported with a suitable compiler tool chain. (C++ code builder is unable to build C++ code. In order to build C++ code for Windows Desktop, you must have one of these installed:
    Visual Studio 2010 with C++ compilers and Windows 7 SDK (it cannot build C++ code because it is not installed)
    Visual Studio 2010 installation is found by looking at "SOFTWARE\Microsoft\VisualStudio\10.0_Config\InstallDir" in the registry
    Windows 7 SDK is found by looking at "SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder" in the registry

    Visual Studio 2013 with C++ compilers and Windows 8.1 SDK (it cannot build C++ code because it is not installed)
    Visual Studio 2013 installation is found by looking at "SOFTWARE\Microsoft\VisualStudio\12.0_Config\InstallDir" in the registry
    Windows 8.1 SDK is found by looking at "SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1\InstallationFolder" in the registry

    Visual Studio 2015 with C++ compilers and Windows 10 SDK (it cannot build C++ code because it is not installed)
    Visual Studio 2015 installation is found by looking at "SOFTWARE\Microsoft\VisualStudio\14.0_Config\InstallDir" in the registry
    Windows 10 SDK is found by looking at "SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0\InstallationFolder" in the registry

    Visual Studio 2017 with C++ compilers and Windows 10 SDK (it cannot build C++ code because it is not installed)
    Visual Studio 2017 installation is found using Microsoft.VisualStudio.Setup.Configuration COM APIs
    Windows 10 SDK is found by looking at "SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0\InstallationFolder" in the registry

    ).
    at Burst.Compiler.IL.Aot.AotLinker.Link(IEnumerable`1 objFiles, String outPath)
    at Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    at Burst.Bcl.Program.Main(String[] args)
     
    Last edited: Aug 4, 2018
  17. uani

    uani

    Joined:
    Sep 6, 2013
    Posts:
    54
    These are the components I installed to remedy above error some months ago:

    upload_2018-8-5_20-41-35.png

    I don't remember the defaults, but perhaps the CLI (command line interface) is also necessary?

    Did you add the IL2CPP Windows build target inside Unitys installer?

    Other than that, try a restart of Windows :|


    @Unity: does posting "internal errors" reported in the console when using Burst help you? Such as :) :( :

    Code (CSharp):
    1. C:\buildslave\unity\build\Runtime\Jobs\Managed\IJobParallelForTransform.cs(32,13): error: Internal compiler error while processing function `System.Void UnityEngine.Jobs.IJobParallelForTransformExtensions/TransformParallelForLoopStruct`1::Execute(T&,System.IntPtr,System.IntPtr,Unity.Jobs.LowLevel.Unsafe.JobRanges&,System.Int32)`
    2.  
    3. While compiling job: System.Void UnityEngine.Jobs.IJobParallelForTransformExtensions/TransformParallelForLoopStruct`1<treePartWobbling>::Execute(T&,System.IntPtr,System.IntPtr,Unity.Jobs.LowLevel.Unsafe.JobRanges&,System.Int32)
    4.  
    5. Compiler exception: Burst.Compiler.IL.Syntax.BuilderException: Internal compiler error while processing function `System.Void UnityEngine.Jobs.IJobParallelForTransformExtensions/TransformParallelForLoopStruct`1::Execute(T&,System.IntPtr,System.IntPtr,Unity.Jobs.LowLevel.Unsafe.JobRanges&,System.Int32)` ---> System.InvalidOperationException: Unable to find interface method `System.Void UnityEngine.Jobs.IJobParallelForTransform::Execute(System.Int32,UnityEngine.Jobs.TransformAccess)` from type `treePartWobbling`
    6.   at Burst.Compiler.IL.Syntax.ILBuilder.DevirtualizeMethod (Mono.Cecil.TypeReference thisType, Mono.Cecil.MethodReference methodReference, Burst.Compiler.IL.Syntax.GenericContext& thisContext) [0x00147] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    7.   at Burst.Compiler.IL.Syntax.ILBuilder.Call (Mono.Cecil.Cil.Instruction inst, Mono.Cecil.MethodReference methodReference, Burst.Compiler.IL.Syntax.ILExpression thisArgument) [0x000c6] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    8.   at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstruction (Mono.Cecil.Cil.Instruction inst) [0x003d6] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    9.   at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstructions () [0x00074] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    10.    --- End of inner exception stack trace ---
    11.   at Burst.Compiler.IL.Syntax.ILBuilder.ThrowInternalError (System.Exception ex) [0x0002d] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    12.   at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstructions () [0x001de] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    13.   at Burst.Compiler.IL.Syntax.ILBuilder.ProcessFunctionBody () [0x000b7] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    14.   at Burst.Compiler.IL.Syntax.ILBuilder.Visit (Burst.Compiler.IL.Syntax.MethodBinding binding) [0x00099] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    15.   at Burst.Compiler.IL.ILVisitor.PrepareFunctionInternal (Burst.Compiler.IL.Syntax.MethodBinding methodBinding) [0x00065] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    16.   at Burst.Compiler.IL.ILVisitor.PrepareFunction (Burst.Compiler.IL.Syntax.MethodBinding methodBinding) [0x00000] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    17.   at Burst.Compiler.IL.ILVerifier.PrepareFunction (Burst.Compiler.IL.Syntax.MethodBinding methodBinding) [0x00000] in <a2ed9824c1aa48fdb9ed369837529c5f>:0
    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.Jobs;
    3. using Unity.Collections;
    4. using Unity.Burst;
    5.  
    6. [BurstCompile]
    7. public struct treePartWobbling : IJobParallelForTransform {
    8.  
    9.     [ReadOnly]
    10.     public Vector3 rotationAxis;
    11.  
    12.     [ReadOnly]
    13.     public float elongation;
    14.  
    15.     void IJobParallelForTransform.Execute(int index, TransformAccess transform)
    16.     {
    17.         transform.rotation *= Quaternion.AngleAxis(elongation, rotationAxis);
    18.     }
    19. }
    edit: every version up to date as of now
     
    FlightCrazed likes this.
  18. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
    Hopefully yes :)

    Could you change your method interface implementation to public instead of explicit? (Might not work with the later)
     
  19. uani

    uani

    Joined:
    Sep 6, 2013
    Posts:
    54
    Hi, nice, thank you. Do you mean
    public void I....Execute(…)
    ? This yields error "CS0106: The modifier `public' is not valid for this item"
     
  20. pavelkouril

    pavelkouril

    Joined:
    Jul 22, 2016
    Posts:
    95
    Actually,
    public void Execute(int index, TransformAccess transform)
    , without specifying the interface explicitly.
     
  21. uani

    uani

    Joined:
    Sep 6, 2013
    Posts:
    54
    Thank you, this "did the job": the error is gone.
     
  22. georgeq

    georgeq

    Joined:
    Mar 5, 2014
    Posts:
    398
    I'm getting a lot of errors referring to UnityEngine.Mathf, even after removing all references to Mathf, why is that?
     
  23. kaffiene

    kaffiene

    Joined:
    May 26, 2013
    Posts:
    21
    I'm getting a linking error trying to build with the burst compiler. It complains about missing MsWSock.lib which is in my SDK/Windows/7/lib dir but not the /8 dirs (which I think it's actually using). Not sure how I fix this?

    The error message was:

    C:\Users\Playtech\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.burst@0.2.4-preview.31\.Runtime\bcl.exe exited after 3422 ms.

    System.InvalidOperationException: The linker failed. Check previous exception in the log
    at Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess(TargetPlatform platform, TargetCpu targetCpu, List`1 plugins, List`1 inputFiles, String outputFile)
    at Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    at Burst.Bcl.Program.Main(String[] args)

    (Error: 1 Filename: Line: 0)

    Failed running C:\Users\Playtech\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.burst@0.2.4-preview.31\.Runtime\bcl.exe @C:\Users\Playtech\AppData\Local\Temp\tmp644b992e.tmp

    stdout:
    Compiling for the platform `Windows` using the following toolchain : MsvcDesktopToolChain
    Msvc Install Version: 12.0
    Msvc Install SDK Directory: C:\Program Files (x86)\Windows Kits\8.1
    Msvc Linker Path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\link.exe
    Msvc Compiler Path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\cl.exe

    System.Exception: Process C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\link.exe ended with exitcode 1181
    LINK : fatal error LNK1181: cannot open input file 'MsWSock.lib'

    at Unity.IL2CPP.Shell.ExecuteAndCaptureOutput(ExecuteArgs executeArgs)
    at Burst.Compiler.IL.Aot.AotLinker.Link(IEnumerable`1 objFiles, String outPath)
    at Burst.Linker.Program.Main(String[] args)
    Usage: blink.exe [options] <input .o/.obj/.ll files...>
    --help Show Help
    --platform=VALUE Target Platform <Windows|macOS|Linux|Android|iOS|
    PS4|XboxOne|Wasm|UWP>
    --target=VALUE Target CPU <Auto|X86_SSE2|X86_SSE4|X64_SSE2|X64_
    SSE4|AVX|AVX2|AVX512|WASM32|ARMV7A_NEON32|ARMV8A_
    AARCH64|THUMB2_NEON32>
    --il2cpp-plugin-folder=VALUE
    Plugin folder
    --output=VALUE Output shared library file

    An unexpected exception occurred:
    stderr:

    System.InvalidOperationException: The linker failed. Check previous exception in the log
    at Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess(TargetPlatform platform, TargetCpu targetCpu, List`1 plugins, List`1 inputFiles, String outputFile)
    at Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    at Burst.Bcl.Program.Main(String[] args)
     
  24. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
    Not sure, but it looks like you have only VS2013 installed, while burst has never been tested with it, so it could be likely this (VS2017 should work, VS2015 hopefully as well)
     
  25. kaffiene

    kaffiene

    Joined:
    May 26, 2013
    Posts:
    21
    I have VS2017 (along with earlier versions)... and it is VS2017 that I'm using with Unity. I guess the burst compiler is using the wrong Windows SDK, which I'm not sure how to change. I'm pretty sure I don't need any of those earlier versions so I'll just remove them and see if that fixes it.
     
  26. kaffiene

    kaffiene

    Joined:
    May 26, 2013
    Posts:
    21
    Heh. So removing VS2013 / VS2015 leads to me getting this error from the linker:

    Failed running C:\Users\Playtech\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.burst@0.2.4-preview.31\.Runtime\bcl.exe @C:\Users\Playtech\AppData\Local\Temp\tmp2e40c9d.tmp

    stdout:
    System.Exception: No MSVC installations were found on the machine!
    at Unity.IL2CPP.Building.ToolChains.MsvcVersions.MsvcInstallation.GetLatestFunctionalInstallation(Architecture architecture)
    at Unity.IL2CPP.Building.ToolChains.MsvcDesktopToolChain.get_MsvcInstallation()
    at Unity.IL2CPP.Building.ToolChains.MsvcToolChain.GetToolchainInfoForOutput()
    at Burst.Compiler.IL.Aot.AotLinker.Link(IEnumerable`1 objFiles, String outPath)
    at Burst.Linker.Program.Main(String[] args)

    ...but I definitely do still have VS2017 installed. So, this looks like an error with the IL2CPP toolchain not finding the MSVC installation for VS2017?
     
  27. davidfrk

    davidfrk

    Joined:
    Feb 13, 2017
    Posts:
    43
    I'm in the same situation, VS2017, WindowsSDK, VC ++, IL2CPP, Burst 0.2.4 preview31

    What are the requirements to build with burst?

    Why its say "No MSVC installations were found on the machine"?
     
  28. davidfrk

    davidfrk

    Joined:
    Feb 13, 2017
    Posts:
    43
    It's working now, and what a performance, good job for everyone involved.

    I'm not sure what solved it, but just updated visual studio and SDKs using VS.
     
  29. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    5,782
    You can install the required VS components by checking Visual Studio tools checkbox in Unity installer.
     
  30. julkiewicz

    julkiewicz

    Joined:
    Sep 11, 2016
    Posts:
    3
    For anybody having similar problems. There are actually a couple of situations where similar exceptions pop-up, not necessarily related to the use of explicit interface implementation.

    There's a bug in DevirtualizeMethod() implementation that confuses generic parameters from the caller context and callee context. So then if it so happens that there is a generic parameter T in the caller context and a generic parameter T in callee context and they are not substituted for the same thing, then Burst will fail to resolve method definition. A workaround is to just rename generic parameters on one of the sides.
     
  31. slim_trunks

    slim_trunks

    Joined:
    Dec 31, 2017
    Posts:
    41
    Are there any plans to support delegates that only reference static functions?

    I think this would open up many design possibilities for the Job System. For example quickly specifying an ECS systems behavior with delegates.

    I am aware of the 'static delegates' proposal https://github.com/dotnet/csharplang/issues/302 but we can only guess when to expect that.

    Side note: I was able to produce generic static delegates in IL with the calli opcode. But they are reasonably brittle without proper lang support.

    Edit: I just realized that if Burst was to support calli, I could flesh out my static delegates experiments and use that. Although I guess that would be pretty unsafe to use in actual builds.
     
    Last edited: Oct 24, 2018
    pcysl5edgo likes this.
  32. Husain136

    Husain136

    Joined:
    Sep 13, 2015
    Posts:
    2
    The burst compiles AOT right? So does it produce CPP code?
     
  33. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    5,782
    It produces machine code directly.
     
  34. Paul_Bronowski

    Paul_Bronowski

    Joined:
    Sep 3, 2014
    Posts:
    40
    I'm bumping into the Win10 SDK search problem on Unity 2018.2.14f1 with com.unity.burst@0.2.4-preview.34 and Visual Studio Community 2017 with options installed that should cover this scenario, and then some.

    Which search criteria is blink.exe/bcl.exe passing to the Microsoft.VisualStudio.Setup.Configuration COM APIs?

    Is there are hard requirement on NETFXSDK 4.6.1? I would think you would want it to find anything >= some min version.

    Spying on blink.exe; The Win10 SDK path it hits, feels antiquated/deprecated. Hmm.

    upload_2018-11-4_0-49-52.png


    Any suggestions?

    - appreciated


    EDIT: PLEASE DISREGARD.
    I'm looking at a very broken Visual Studio 2017 installation, where Window Installer packages for various SDKs are installed, but their Features/Components we're never flagged for install. That feels like a problem with the VS setup chainer. Forcing all features to fail-in for select packages is one fix. For example...

    C:\Windows\Installer>msiexec -i 28f6800.msi -l*vx TEMP.log VSEXTUI=1 ADDLOCAL=ALL

    ... but I'll force all VS-deployed packages off the system and then re-install. Apologies for the noise.
     
    Last edited: Nov 5, 2018
  35. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    5,782
    No, it tries to find it but doesn't actually do anything with it, so it shouldn't cause any issues if you don't have it installed.

    What error does it output?
     
  36. kakashi8841

    kakashi8841

    Joined:
    Apr 27, 2018
    Posts:
    7
    I have installed vs2017, I got 3 exceptions while I compile the fpssample (which on https://github.com/Unity-Technologies/FPSSample).

    The following Exceptions was shown by the order they appear.

    Exception 1:
    Code (CSharp):
    1. System.InvalidOperationException: The linker failed. Check previous exception in the log
    2.    �� Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess(TargetPlatform platform, TargetCpu targetCpu, List`1 plugins, List`1 inputFiles, String outputFile)
    3.    �� Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    4.    �� Burst.Bcl.Program.Main(String[] args)
    Exception 2:
    Code (CSharp):
    1. Failed running H:\fpssample\Library\PackageCache\com.unity.burst@0.2.4-preview.34\.Runtime\bcl.exe @C:\Users\admin\AppData\Local\Temp\tmp7ae78e81.tmp
    2.  
    3. stdout:
    4. System.Exception: No MSVC installations were found on the machine!
    5.    �� Unity.IL2CPP.Building.ToolChains.MsvcVersions.MsvcInstallation.GetLatestFunctionalInstallation(Architecture architecture)
    6.    �� Unity.IL2CPP.Building.ToolChains.MsvcDesktopToolChain.get_MsvcInstallation()
    7.    �� Unity.IL2CPP.Building.ToolChains.MsvcToolChain.GetToolchainInfoForOutput()
    8.    �� Burst.Compiler.IL.Aot.AotLinker.Link(IEnumerable`1 objFiles, String outPath)
    9.    �� Burst.Linker.Program.Main(String[] args)
    10. Usage: blink.exe [options] <input .o/.obj/.ll files...>
    11.       --help                 Show Help
    12.       --platform=VALUE       Target Platform <Windows|macOS|Linux|Android|iOS|
    13.                                PS4|XboxOne|Wasm|UWP>
    14.       --target=VALUE         Target CPU <Auto|X86_SSE2|X86_SSE4|X64_SSE2|X64_
    15.                                SSE4|AVX|AVX2|AVX512|WASM32|ARMV7A_NEON32|ARMV8A_
    16.                                AARCH64|THUMB2_NEON32>
    17.       --il2cpp-plugin-folder=VALUE
    18.                              Plugin folder
    19.       --output=VALUE         Output shared library file
    20.  
    21. An unexpected exception occurred:
    22. stderr:
    23.  
    24. System.InvalidOperationException: The linker failed. Check previous exception in the log
    25.    �� Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess(TargetPlatform platform, TargetCpu targetCpu, List`1 plugins, List`1 inputFiles, String outputFile)
    26.    �� Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    27.    �� Burst.Bcl.Program.Main(String[] args)
    28.  
    29. UnityEngine.Debug:LogError(Object)
    30. UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
    31. UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    32. Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs(BuildReport) (at Library/PackageCache/com.unity.burst@0.2.4-preview.34/Editor/BurstAotCompiler.cs:220)
    33. UnityEditor.BuildPipeline:BuildPlayer(String[], String, BuildTarget, BuildOptions)
    34. BuildTools:BuildGame(String, String, BuildTarget, BuildOptions, String, Boolean) (at Assets/Scripts/EditorTools/Editor/BuildTools.cs:112)
    35. BuildWindow:DrawBuildTools() (at Assets/Scripts/EditorTools/Editor/BuildWindow.cs:336)
    36. BuildWindow:OnGUI() (at Assets/Scripts/EditorTools/Editor/BuildWindow.cs:132)
    37. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    Exception 3:
    Code (CSharp):
    1. Exception: H:\fpssample\Library\PackageCache\com.unity.burst@0.2.4-preview.34\.Runtime\bcl.exe did not run properly!
    2. UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:130)
    3. UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1[T] setupStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    4. Unity.Burst.Editor.BurstAotCompiler.OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport report) (at Library/PackageCache/com.unity.burst@0.2.4-preview.34/Editor/BurstAotCompiler.cs:220)
    5. UnityEditor.Build.BuildPipelineInterfaces.OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:452)
    6. UnityEditor.BuildPipeline:BuildPlayer(String[], String, BuildTarget, BuildOptions)
    7. BuildTools:BuildGame(String, String, BuildTarget, BuildOptions, String, Boolean) (at Assets/Scripts/EditorTools/Editor/BuildTools.cs:112)
    8. BuildWindow:DrawBuildTools() (at Assets/Scripts/EditorTools/Editor/BuildWindow.cs:336)
    9. BuildWindow:OnGUI() (at Assets/Scripts/EditorTools/Editor/BuildWindow.cs:132)
    10. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

    My Environment :
    OS : Windows 7 Professional SP1 x64
    CPU : Intel Core i7-4790 3.60GHz
    RAM : 16GB
    Unity : 2018.3.0b7
    VS : Community 2017
     
  37. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    5,782
    Can you try building standalone player with IL2CPP Scripting backend? Burst is using an old version of IL2CPP (we fixed this in a new package version which is going to be released soon) which didn't have good error reporting, so you just get generic "No MSVC installations were found on the machine!" message. By building IL2CPP player directly, you should get detailed report of what it tried looking for and why it couldn't use your installed VS2017.
     
  38. brettj

    brettj

    Joined:
    Feb 9, 2015
    Posts:
    25
    I tried to compile with the newest version of Xcode and Mac OS 10.14. I get the error below. It looks like the 10.14 SDK isn't supported yet?

    Code (CSharp):
    1. stdout:
    2. Compiling for the platform `macOS` using the following toolchain : ClangToolChain
    3.     Mac Dev SDK:
    4.  
    5. System.NotSupportedException: Burst compilation for standalone, is only supported with a suitable compiler tool chain. (C++ code builder is unable to build C++ code. Please ensure the macOS SDK is installed in one of the following directories:
    6. /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
    7. /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
    8. /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
    9. /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
    10. /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
    11. ).
    12.   at Burst.Compiler.IL.Aot.AotLinker.Link (System.Collections.Generic.IEnumerable`1[T] objFiles, System.String outPath) [0x0006d] in <87259086a3764276a5831a4c1f750f9a>:0
    13.   at Burst.Linker.Program.Main (System.String[] args) [0x0017b] in <87259086a3764276a5831a4c1f750f9a>:0
    14. Usage: blink.exe [options] <input .o/.obj/.ll files...>
    15.       --help                 Show Help
    16.       --platform=VALUE       Target Platform <Windows|macOS|Linux|Android|iOS|
    17.                                PS4|XboxOne|Wasm|UWP>
    18.       --target=VALUE         Target CPU <Auto|X86_SSE2|X86_SSE4|X64_SSE2|X64_
    19.                                SSE4|AVX|AVX2|AVX512|WASM32|ARMV7A_NEON32|ARMV8A_
    20.                                AARCH64|THUMB2_NEON32>
    21.       --il2cpp-plugin-folder=VALUE
    22.                              Plugin folder
    23.       --output=VALUE         Output shared library file
    24.  
    25. An unexpected exception occurred:
    26. stderr:
    27.  
    28. System.InvalidOperationException: The linker failed. Check previous exception in the log
    29.   at Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess (Burst.Backend.TargetPlatform platform, Burst.Backend.TargetCpu targetCpu, System.Collections.Generic.List`1[T] plugins, System.Collections.Generic.List`1[T] inputFiles, System.String outputFile) [0x00141] in <8ccfa83e0f984072892c29638c340c1a>:0
    30.   at Burst.Compiler.IL.Aot.AotCompiler.Link (Burst.Backend.Module module, Burst.Compiler.IL.Aot.AotCompilerOptions compilerOptions) [0x00130] in <8ccfa83e0f984072892c29638c340c1a>:0
    31.   at Burst.Bcl.BclApp.CompileAndLink (System.Collections.Generic.List`1[T] methodsToCompile) [0x00033] in <c4e317a33f7644bd88bbcfcc0b0e4c36>:0
    32.   at Burst.Bcl.Program.Main (System.String[] args) [0x000d7] in <c4e317a33f7644bd88bbcfcc0b0e4c36>:0
    33.  
    34. UnityEngine.Debug:LogError(Object)
    35. UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
    36. UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    37. Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs(BuildReport) (at /Users/[username]/Library/Unity/cache/packages/packages.unity.com/com.unity.burst@0.2.4-preview.34/Editor/BurstAotCompiler.cs:220)
    38. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
     
  39. kakashi8841

    kakashi8841

    Joined:
    Apr 27, 2018
    Posts:
    7
    Thanks all !
    I have compile the script successfully and all exceptions which about the burst are now disappear.
    I reinstall vs2017 and almost its all component (except something obviously doesn't look like related, such as nodejs,asp etc.)
     
  40. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    262
    I have this very same problem. The burst compiler runs fine in editor but fails on build. When building using IL2CPP, I get the following errors:

    These errors appear in order on Console...

    Error 1:
    System.InvalidOperationException: The linker failed. Check previous exception in the log
    at Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess(TargetPlatform platform, TargetCpu targetCpu, List`1 plugins, List`1 inputFiles, String outputFile)
    at Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    at Burst.Bcl.Program.Main(String[] args)


    Error 2:
    Failed running C:\Users\Marnel\AppData\Local\Unity\cache\packages\staging-packages.unity.com\com.unity.burst@0.2.4-preview.35\.Runtime\bcl.exe @C:\Users\Marnel\AppData\Local\Temp\tmp168945c2.tmp

    stdout:
    System.Exception: No MSVC installations were found on the machine!
    at Unity.IL2CPP.Building.ToolChains.MsvcVersions.MsvcInstallation.GetLatestFunctionalInstallation(Architecture architecture)
    at Unity.IL2CPP.Building.ToolChains.MsvcDesktopToolChain.get_MsvcInstallation()
    at Unity.IL2CPP.Building.ToolChains.MsvcToolChain.GetToolchainInfoForOutput()
    at Burst.Compiler.IL.Aot.AotLinker.Link(IEnumerable`1 objFiles, String outPath)
    at Burst.Linker.Program.Main(String[] args)
    Usage: blink.exe [options] <input .o/.obj/.ll files...>
    --help Show Help
    --platform=VALUE Target Platform <Windows|macOS|Linux|Android|iOS|
    PS4|XboxOne|Wasm|UWP>
    --target=VALUE Target CPU <Auto|X86_SSE2|X86_SSE4|X64_SSE2|X64_
    SSE4|AVX|AVX2|AVX512|WASM32|ARMV7A_NEON32|ARMV8A_
    AARCH64|THUMB2_NEON32>
    --il2cpp-plugin-folder=VALUE
    Plugin folder
    --output=VALUE Output shared library file

    An unexpected exception occurred:
    stderr:

    System.InvalidOperationException: The linker failed. Check previous exception in the log
    at Burst.Compiler.IL.Aot.AotCompiler.CallLinkerProcess(TargetPlatform platform, TargetCpu targetCpu, List`1 plugins, List`1 inputFiles, String outputFile)
    at Burst.Compiler.IL.Aot.AotCompiler.Link(Module module, AotCompilerOptions compilerOptions)
    at Burst.Bcl.Program.Main(String[] args)

    UnityEngine.Debug:LogError(Object)
    UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
    UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs(BuildReport) (at C:/Users/Marnel/AppData/Local/Unity/cache/packages/staging-packages.unity.com/com.unity.burst@0.2.4-preview.35/Editor/BurstAotCompiler.cs:236)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)


    Error 3:
    System.Exception: C:\Users\Marnel\AppData\Local\Unity\cache\packages\staging-packages.unity.com\com.unity.burst@0.2.4-preview.35\.Runtime\bcl.exe did not run properly!
    at UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) [0x0011a] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:130
    at UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1[T] setupStartInfo) [0x00063] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:73
    at Unity.Burst.Editor.BurstAotCompiler.OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport report) [0x0054f] in C:\Users\Marnel\AppData\Local\Unity\cache\packages\staging-packages.unity.com\com.unity.burst@0.2.4-preview.35\Editor\BurstAotCompiler.cs:236
    UnityEngine.Debug:LogError(Object)
    Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs(BuildReport) (at C:/Users/Marnel/AppData/Local/Unity/cache/packages/staging-packages.unity.com/com.unity.burst@0.2.4-preview.35/Editor/BurstAotCompiler.cs:240)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)


    Error 4:
    UnityException: Build path contains project built with Mono scripting backend, while current project is using IL2CPP scripting backend. Consider building your project into an empty directory.
    UnityEditor.WindowsStandalone.WindowsDesktopStandalonePostProcessor.CheckSafeProjectOverwrite (UnityEditor.Modules.BuildPostProcessArgs args) (at C:/buildslave/unity/build/PlatformDependent/WinPlayer/Extensions/Managed/WindowsDesktopStandalonePostProcessor.cs:63)
    DesktopStandalonePostProcessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:38)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)


    Error 5:
    Build completed with a result of 'Failed'
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)


    Error 6:
    UnityEditor.BuildPlayerWindow+BuildMethodException: 5 errors
    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x0021f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:187
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x0007f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:94
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    I already updated my Visual Studio and added VS components through Unity Hub. Is there anything else that I can do with this?
     
  41. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    587
  42. kakashi8841

    kakashi8841

    Joined:
    Apr 27, 2018
    Posts:
    7
  43. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    778
    Hi there, is support for jobs/burst coming to UWP anytime soon?
     
  44. mons00n

    mons00n

    Joined:
    Sep 18, 2013
    Posts:
    212
    Is cross-platform compilation support coming in a future release? When using burst I can only compile a Mac client on macOS and a windows client on windows which throws a wrench in my build pipeline.
     
  45. capyvara

    capyvara

    Joined:
    Mar 11, 2010
    Posts:
    59
    I'm having this error while compiling for iOS IL2Cpp:

    Compiling for the platform `iOS` using the following toolchain : iOSClangToolChain
    iOS Dev SDK: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk

    Building lib_burst_generated.dylib with iOSClangToolChain
    iOS Dev SDK: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk

    Output directory: /var/folders/yf/_fy5r6g51hg14jw41ppwgcr40000gn/T/burst-aotln437t8p.w8p
    Cache directory: /var/folders/yf/_fy5r6g51hg14jw41ppwgcr40000gn/T/burst-il2cpp-apz6bcx7.nh5
    ObjectFiles: 1 of which compiled: 1
    Time Compile: 925 milliseconds lib_burst_generated.ll
    Total compilation time: 973 milliseconds.
    Unity.IL2CPP.Building.BuilderFailedException: /usr/bin/clang++ -o "/var/folders/yf/_fy5r6g51hg14jw41ppwgcr40000gn/T/burst-il2cpp-apz6bcx7.nh5/linkresult_8D1F9975DAFD1315E65FBF49935F6B60/lib_burst_generated.dylib" -dynamiclib -arch armv7 -lSystem -lc++ -lpthread -miphoneos-version-min=8.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -stdlib=libc++ "/var/folders/yf/_fy5r6g51hg14jw41ppwgcr40000gn/T/burst-il2cpp-apz6bcx7.nh5/globalcache/D8223F45F70CDCAB648BC52ED4CE6E3E.o"

    ld: warning: ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libSystem.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (armv7): /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libSystem.tbdignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libc++.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (armv7): /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libc++.tbd

    ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libpthread.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (armv7): /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libpthread.tbd
    Undefined symbols for architecture armv7:
    "_llvm.experimental.vector.reduce.fmax.f32.v4f32", referenced from:
    l_Unity.Entities.JobProcessComponentDataExtensions+JobStruct_Process3`4[[Unity.Rendering.MeshRenderBoundsUpdateSystem+BoundsJob, Unity.Rendering.Hybrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[Unity.Rendering.MeshRenderBounds, Unity.Rendering.Hybrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[Unity.Transforms.LocalToWorld, Unity.Transforms, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[Unity.Rendering.WorldMeshRenderBounds, Unity.Rendering.Hybrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], Unity.Entities, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::ExecuteChunk(Unity.Entities.JobProcessComponentDataExtensions+JobStruct_Process3`4[[Unity.Rendering.MeshRenderBoundsUpdateSystem+BoundsJob, Unity.Rendering.Hybrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[Unity.Rendering.MeshRenderBounds, Unity.Rendering.Hybrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[Unity.Transforms.LocalToWorld, Unity.Transforms, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[Unity.Rendering.WorldMeshRenderBounds, Unity.Rendering.Hybrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]&, Unity.Entities, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51|System.Int32, netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51|System.Int32, netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) in D8223F45F70CDCAB648BC52ED4CE6E3E.o
    ld: symbol(s) not found for architecture armv7
    clang: error: linker command failed with exit code 1 (use -v to see invocation)


    Unity 2018.3.9b9, Xcode 9.4.1 (iPhoneOS11.4sdk), Burst 0.2.4-preview.37
     
  46. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
    Thanks, we have logged an issue for this.
     
  47. x_unity897

    x_unity897

    Joined:
    Oct 2, 2018
    Posts:
    4
    Hi, we are enabling burst compiler for our job systems but encountered incorrect behavior when converting constant uint values to ulong. Basically this:
    Code (CSharp):
    1. ulong value = uint.MaxValue;
    will produce incorrect result 18446744073709551615 when burst is enabled.

    I have posted more details in https://forum.unity.com/threads/bug...en-converting-uint-constants-to-ulong.584173/ but haven't gotten any replies there yet.
     
  48. xoofx

    xoofx

    Unity Technologies

    Joined:
    Nov 5, 2016
    Posts:
    82
  49. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    2,469
    I just would like to say, I am amazed even more with burst.
    Running current stress test for my project and difference is by miles better with burst.

     
  50. eric_funktroniclabs

    eric_funktroniclabs

    Joined:
    Oct 4, 2018
    Posts:
    6
    Using Jobs+Burst to power a little physics engine, seeing some weird stuff with a large IJob that I have.

    In Unity 2018.3.0b11 my job is throwing errors when I try to build a Windows or Arm7 player.

    In 2018.2, on Arm7, the job runs but seems to be skipping/altering some code deep in the job, so I get different effects on x64/Windows vs arm7/Android.

    The errors:
    Code (CSharp):
    1.  
    2.  
    3. Burst.Compiler.IL.CompilerException: Error while processing function `System.Void Unity.Jobs.IJobExtensions/JobStruct`1<Fuji.JellyPhysics.JellyJobMacroJob>::Execute(T&,System.IntPtr,System.IntPtr,Unity.Jobs.LowLevel.Unsafe.JobRanges&,System.Int32)` ---> Burst.Compiler.IL.CompilerException: Unexpected error while processing `IL_0008: callvirt System.Void Fuji.JellyPhysics.JellyJobMacroJob::Execute() args(IL_0001)` ---> Burst.Compiler.IL.Syntax.BuilderException: Internal compiler error while processing function `System.Void Fuji.JellyPhysics.JellyJobMacroJob::Execute()` ---> System.InvalidOperationException: Stack empty.
    4.    at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
    5.    at System.Collections.Generic.Stack`1.Peek()
    6.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstruction(Instruction inst)
    7.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstructions()
    8.    --- End of inner exception stack trace ---
    9.    at Burst.Compiler.IL.Syntax.ILBuilder.ThrowInternalError(Exception ex)
    10.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstructions()
    11.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessFunctionBody()
    12.    at Burst.Compiler.IL.Syntax.ILBuilder.Visit(MethodBinding binding)
    13.    at Burst.Compiler.IL.ILVisitor.PrepareFunctionInternal(MethodBinding methodBinding)
    14.    at Burst.Compiler.IL.ILVisitor.Call(ILInstruction inst)
    15.    at Burst.Compiler.IL.ILVisitor.CompileInternal(ILInstruction inst)
    16.    at Burst.Compiler.IL.ILVisitor.Compile(ILInstruction inst)
    17.    at Burst.Compiler.IL.ILVisitor.ProcessBlock(ILBlock block)
    18.    --- End of inner exception stack trace ---
    19.    at Burst.Compiler.IL.ILVisitor.ProcessBlock(ILBlock block)
    20.    at Burst.Compiler.IL.ILVisitor.ProcessBlocks()
    21.    at Burst.Compiler.IL.ILVisitor.ProcessFunctionBody(ILFunction function)
    22.    at Burst.Compiler.IL.ILVisitor.VisitPendingFunctions()
    23.    --- End of inner exception stack trace ---
    24.    at Burst.Compiler.IL.ILVisitor.VisitPendingFunctions()
    25.    at Burst.Compiler.IL.ILVisitor.VisitEntryPointFunction(MethodReferenceWithHash methodReference)
    26.    at Burst.Compiler.IL.ILAnalyzer.Analyze(MethodReferenceWithHash method)
    27.    at Burst.Compiler.IL.NativeCompiler.Initialize()
    28.    at Burst.Compiler.IL.NativeCompiler.Compile()
    29.    at Burst.Bcl.BclApp.CompileAndLink(List`1 methodsToCompile)
    30.    at Burst.Bcl.Program.Main(String[] args)
    31.  
    Code (CSharp):
    1.  
    2. Failed running C:\Users\Eric\Desktop\BurstTest\Library\PackageCache\com.unity.burst@0.2.4-preview.38\.Runtime\bcl.exe @C:\Users\Eric\AppData\Local\Temp\tmp137c0603.tmp
    3.  
    4. stdout:
    5. An unexpected exception occurred:
    6. stderr:
    7. Burst.Compiler.IL.CompilerException: Error while processing function `System.Void Unity.Jobs.IJobExtensions/JobStruct`1<Fuji.JellyPhysics.JellyJobMacroJob>::Execute(T&,System.IntPtr,System.IntPtr,Unity.Jobs.LowLevel.Unsafe.JobRanges&,System.Int32)` ---> Burst.Compiler.IL.CompilerException: Unexpected error while processing `IL_0008: callvirt System.Void Fuji.JellyPhysics.JellyJobMacroJob::Execute() args(IL_0001)` ---> Burst.Compiler.IL.Syntax.BuilderException: Internal compiler error while processing function `System.Void Fuji.JellyPhysics.JellyJobMacroJob::Execute()` ---> System.InvalidOperationException: Stack empty.
    8.    at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
    9.    at System.Collections.Generic.Stack`1.Peek()
    10.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstruction(Instruction inst)
    11.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstructions()
    12.    --- End of inner exception stack trace ---
    13.    at Burst.Compiler.IL.Syntax.ILBuilder.ThrowInternalError(Exception ex)
    14.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessInstructions()
    15.    at Burst.Compiler.IL.Syntax.ILBuilder.ProcessFunctionBody()
    16.    at Burst.Compiler.IL.Syntax.ILBuilder.Visit(MethodBinding binding)
    17.    at Burst.Compiler.IL.ILVisitor.PrepareFunctionInternal(MethodBinding methodBinding)
    18.    at Burst.Compiler.IL.ILVisitor.Call(ILInstruction inst)
    19.    at Burst.Compiler.IL.ILVisitor.CompileInternal(ILInstruction inst)
    20.    at Burst.Compiler.IL.ILVisitor.Compile(ILInstruction inst)
    21.    at Burst.Compiler.IL.ILVisitor.ProcessBlock(ILBlock block)
    22.    --- End of inner exception stack trace ---
    23.    at Burst.Compiler.IL.ILVisitor.ProcessBlock(ILBlock block)
    24.    at Burst.Compiler.IL.ILVisitor.ProcessBlocks()
    25.    at Burst.Compiler.IL.ILVisitor.ProcessFunctionBody(ILFunction function)
    26.    at Burst.Compiler.IL.ILVisitor.VisitPendingFunctions()
    27.    --- End of inner exception stack trace ---
    28.    at Burst.Compiler.IL.ILVisitor.VisitPendingFunctions()
    29.    at Burst.Compiler.IL.ILVisitor.VisitEntryPointFunction(MethodReferenceWithHash methodReference)
    30.    at Burst.Compiler.IL.ILAnalyzer.Analyze(MethodReferenceWithHash method)
    31.    at Burst.Compiler.IL.NativeCompiler.Initialize()
    32.    at Burst.Compiler.IL.NativeCompiler.Compile()
    33.    at Burst.Bcl.BclApp.CompileAndLink(List`1 methodsToCompile)
    34.    at Burst.Bcl.Program.Main(String[] args)
    35.  
    36. UnityEngine.Debug:LogError(Object)
    37. UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
    38. UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    39. Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs(BuildReport) (at Library/PackageCache/com.unity.burst@0.2.4-preview.38/Editor/BurstAotCompiler.cs:236)
    40. UnityEngine.GUIUtility:processEvent(Int32, IntPtr)
    41.  
    Code (CSharp):
    1.  
    2. System.Exception: C:\Users\Eric\Desktop\BurstTest\Library\PackageCache\com.unity.burst@0.2.4-preview.38\.Runtime\bcl.exe did not run properly!
    3.   at UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) [0x0011f] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:130
    4.   at UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1[T] setupStartInfo) [0x00063] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:73
    5.   at Unity.Burst.Editor.BurstAotCompiler.OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport report) [0x0054f] in C:\Users\Eric\Desktop\BurstTest\Library\PackageCache\com.unity.burst@0.2.4-preview.38\Editor\BurstAotCompiler.cs:236
    6. UnityEngine.Debug:LogError(Object)
    7. Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs(BuildReport) (at Library/PackageCache/com.unity.burst@0.2.4-preview.38/Editor/BurstAotCompiler.cs:240)
    8. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    9.  
    10.  
    Any way to dive deeper and see what the problems are? I'm able to generate assembly for arm7 in the Burst Inspector, so, I'm at a dead end. I can't post too much code publicly, but I'd be happy to share a little repro project with the developers if it's helpful! Thanks!