Search Issue Tracker

Not Reproducible

Votes

2

Found in

5.3.3p3

Issue ID

778978

Regression

No

[GfxDevice][Substance] Race condition GfxDeviceWorker::WaitOnCPUFence, at least with Substance threads

Substances

-

Actual problem: race condition in the threaded GFX device CPU fence code. In particular, this code void GfxDeviceWorker::WaitOnCPUFence(UInt32 fence) -- see note on that below.

-- Original bug info:
Steps to reproduce:
1. Download and open attached project "VR Bug 2.zip"
2. Make sure Virtual Reality Support is on
3. Make sure VR headset is attached and on
4. Play scene "init"

Actual result: Unity freezes
Expected result: Unity does not freeze

Notes: If using LoadScene instead of LoadSceneAsync everything works fine. Even if no device is attached, it doesn't matter whether Virtual Reality Support is on or not.

Tested and reproduce on:
Windows 10
Unity 5.3.4p4, 5.4.0b16

Oculus DK2
OVR Plugin 1.3.2
OVR Runtime 1.3.2

Comments (3)

  1. MagicBrick

    Oct 09, 2016 07:39

    Same problem here. Usually happens after playing game for some time (eg. 1 hour).

  2. HereIAmItsMe

    Sep 19, 2016 20:57

    Crash log was from IPA built with Unity 5.4.1f1 on an iPhone 6 with iOS 10.0.1

  3. HereIAmItsMe

    Sep 19, 2016 20:54

    I'm seeing what appears to be a similar issue resulting in a crash on iOS. Crash log below:

    Thread 0 name: Dispatch queue: com.apple.main-thread
    Thread 0:
    0 libsystem_kernel.dylib 0x000000018db9c1a8 semaphore_wait_trap + 8
    1 libdispatch.dylib 0x000000018da877ec _dispatch_semaphore_wait_slow + 216
    2 myunityapp 0x0000000100aec188 GfxDeviceWorker::WaitOnCPUFence(unsigned int) (GfxDeviceWorker.cpp:284)
    3 myunityapp 0x00000001008c1bb0 ParticleSystem::SyncRenderJobs() (ParticleSystem.cpp:549)
    4 myunityapp 0x00000001008c0858 ParticleSystem::BeginUpdateAll() (ParticleSystem.cpp:2312)
    5 myunityapp 0x000000010080b97c PlayerLoop(bool, bool, IHookEvent*) (Player.cpp:1882)
    6 myunityapp 0x0000000100a87054 UnityPlayerLoopImpl(bool) (LibEntryPoint.mm:244)
    7 myunityapp 0x00000001000fd394 UnityRepaint (UnityAppController+Rendering.mm:237)
    8 myunityapp 0x00000001000fd290 -[UnityAppController(Rendering) repaintDisplayLink] (UnityAppController+Rendering.mm:49)
    9 QuartzCore 0x0000000191def640 CA::Display::DisplayLinkItem::dispatch(unsigned long long) + 44
    10 QuartzCore 0x0000000191def4ec CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 444
    11 IOKit 0x000000018ee58570 IODispatchCalloutFromCFMessage + 372
    12 CoreFoundation 0x000000018eb8256c __CFMachPortPerform + 180
    13 CoreFoundation 0x000000018eb9a934 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56
    14 CoreFoundation 0x000000018eb9a0e8 __CFRunLoopDoSource1 + 436
    15 CoreFoundation 0x000000018eb97bcc __CFRunLoopRun + 1840
    16 CoreFoundation 0x000000018eac6048 CFRunLoopRunSpecific + 444
    17 GraphicsServices 0x0000000190549198 GSEventRunModal + 180
    18 UIKit 0x0000000194a9f818 -[UIApplication _run] + 684
    19 UIKit 0x0000000194a9a550 UIApplicationMain + 208
    20 myunityapp 0x00000001000f712c main (main.mm:32)
    21 libdyld.dylib 0x000000018daa85b8 start + 4

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.