Search Unity

Bug Burst Crashes Development Build on Specific GPU

Discussion in 'Burst' started by oTaijjo, Nov 23, 2022.

  1. oTaijjo

    oTaijjo

    Joined:
    Nov 3, 2019
    Posts:
    30
    Hello, builds of our game constantly crash on a colleague's PC and the logs reveal it's due to burst.

    These are her specs:
    OS: Windos 10 Pro (64 bit)
    CPU: Intel Core i7-3820
    GPU: NVIDIA GeForce GTX 1070
    RAM: 16 GB
    Unity: 2022.1.20f1
    Burst: 1.8.0 (We haven't written any Custom Code for Burst, we're just using the package and other packages that require/benefit from it)

    I've researched in the web and found some threads leading me to the Burst "Target 64Bit CPU Architectures" Setting. We tried a few builds with different settings. Here are the results:
    - Dev Build, Everything enabled (SSE2, SSE4, AVX, AVX2): Crash
    - Dev/Production Build, SSE2 and AVX2 only: Crash
    - Dev Build SSE2, SSE4, and AVX2: Crash
    - Production Build, SSE2, SSE4, and AVX2: Success!

    So, we managed to make a playable build by enabling SSE2, SSE4, and AVX2, but only if it's a NON-Dev build. If I build the same thing again as a DEV build the build crashes on her machine with the following log:

    0x00007FFD765967DA (lib_burst_generated) burst.initialize.statics.6d933222c5b0c0c915d062861958d408_avx2
    0x00007FFD765A9E06 (lib_burst_generated) burst.initialize.statics.a185c62eba2497c95197140e5282b27a_x64_sse4
    0x00007FFD765BE037 (lib_burst_generated) 6d933222c5b0c0c915d062861958d408
    SymInit: Symbol-SearchPath: '.;D:\SevenSinsBackup\221123_Dev_SSE2_SSE4_AVX2;D:\SevenSinsBackup\221123_Dev_SSE2_SSE4_AVX2;C:\WINDOWS;C:\WINDOWS\system32;SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols;', symOptions: 534, UserName: 'Secret'
    OS-Version: 10.0.0
    D:\SevenSinsBackup\221123_Dev_SSE2_SSE4_AVX2\SagaOfSins.exe:SagaOfSins.exe (00007FF6906E0000), size: 688128 (result: 0), SymType: '-exported-', PDB: 'D:\SevenSinsBackup\221123_Dev_SSE2_SSE4_AVX2\SagaOfSins.exe', fileVersion: 2022.1.20.55355
    C:\WINDOWS\SYSTEM32\ntdll.dll:ntdll.dll (00007FFD82050000), size: 2064384 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\SYSTEM32\ntdll.dll', fileVersion: 10.0.19041.2130
    C:\WINDOWS\System32\KERNEL32.DLL:KERNEL32.DLL (00007FFD817C0000), size: 782336 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\System32\KERNEL32.DLL', fileVersion: 10.0.19041.2251
    C:\WINDOWS\System32\KERNELBASE.dll:KERNELBASE.dll (00007FFD7F8B0000), size: 2957312 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\System32\KERNELBASE.dll', fileVersion: 10.0.19041.2193
    C:\WINDOWS\SYSTEM32\apphelp.dll:apphelp.dll (00007FFD7CFB0000), size: 593920 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\SYSTEM32\apphelp.dll', fileVersion: 10.0.19041.2075
    D:\SevenSinsBackup\221123_Dev_SSE2_SSE4_AVX2\UnityPlayer.dll:UnityPlayer.dll (00007FFCFD3A0000), size: 50749440 (result: 0), SymType: '-exported-', PDB: 'D:\SevenSinsBackup\221123_Dev_SSE2_SSE4_AVX2\UnityPlayer.dll', fileVersion: 2022.1.20.55355
    C:\WINDOWS\System32\USER32.dll:USER32.dll (00007FFD81880000), size: 1691648 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\System32\USER32.dll', fileVersion: 10.0.19041.2130
    C:\WINDOWS\System32\win32u.dll:win32u.dll (00007FFD7FDD0000), size: 139264 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\System32\win32u.dll', fileVersion: 10.0.19041.2251
    C:\WINDOWS\System32\GDI32.dll:GDI32.dll (00007FFD80EA0000), size: 176128 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\System32\GDI32.dll', fileVersion: 10.0.19041.2130
    C:\WINDOWS\System32\gdi32full.dll:gdi32full.dll (00007FFD7FC20000), size: 1110016 (result: 0), SymType: '-exported-', PDB: 'C:\WINDOWS\System32\gdi32full.dll', fileVersion: 10.0.19041.2130


    We're using dev builds mainly to feature test our builds. We got special features enabled depending on if a build is a dev build or not, and the colleague cannot properly report bugs with a non-dev builds. So I was wondering what's going on, or what else I could try to make it work.

    The GPU in question is supposed to support SSE4.2 and/or AVX, and a succesfull non-dev build shows that it generally works, but why aren't dev builds crashing then?

    Any help or pointers would be greatly appreciated.
     
  2. Spy-Master

    Spy-Master

    Joined:
    Aug 4, 2022
    Posts:
    628
    Burst only generates instructions for use by CPUs. Why do you think your problem is to do with a GPU?
     
  3. Lee_Hammerton

    Lee_Hammerton

    Unity Technologies

    Joined:
    Jul 26, 2018
    Posts:
    118
    Hi @oTaijjo ,

    I believe you meant CPU here,

    This looks like a bug that is fixed in 1.8.2. However, I cannot be 100% certain from what you have posted. If it still reproduces in 1.8.2, then it would be helpful if you could submit a crash dump, along with the lib_burst_generated.dll and lib_burst_generated.pdb as this might allow us to narrow down if its an instruction fault, or something else. Another possible approach is to select only 1 target cpu subset at a time and produce a build, e.g. only tick SSE2, if this is fine, move up to SSE4 and so on. But my current suspicion is this is being caused by the bug in 1.8.0/1.8.1 to do with how cpu subsets are dispatched for different processors.

    Lee
     
  4. oTaijjo

    oTaijjo

    Joined:
    Nov 3, 2019
    Posts:
    30
    Thanks for the quick answer. I indeed meant CPU, sorry.

    I know where to get the crash.dmp from, but where would I take the .dll, and the .pdb from? From the PC the build fails or from the machine where the build was made?

    How can I upgrade to Burst 1.8.2, my package manager doesn't show any upgrades to the package.
     
  5. tim_jones

    tim_jones

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    287
    Hi @oTaijjo - we are in the process of making 1.8.2 visible by default in Package Manager, but for now:

    - Open the Package Manager window
    - Click the "+" button in the top left of the window
    - Click "Add package by name..."
    - Set name to com.unity.burst and version to 1.8.2
    - Click Add
     
  6. tim_jones

    tim_jones

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    287
    @oTaijjo From either - you'll find it in the player build folder, in {ProjectName}_Data/Plugins/x86_64
     
  7. oTaijjo

    oTaijjo

    Joined:
    Nov 3, 2019
    Posts:
    30
    Thank you very much @tim_jones and @Lee_Hammerton !
    I will get back to you, when I come around to implement your suggestions (probably, on Monday). :)
     
    Lee_Hammerton likes this.
  8. oTaijjo

    oTaijjo

    Joined:
    Nov 3, 2019
    Posts:
    30
    Good Morning! Sorry, for taking so long, but I got down with a flu last week. Anyway, upgrading burst to 1.8.2 fixed the issue on my colleague's machine! (Although upgrading the usual way by adding the package by name did not work for some reason, so I've manually edited the manifest.json and packages-lock.json to do the upgrade...)

    Thank you!
     
    Lee_Hammerton likes this.