Search Unity

Crash from graphics driver issue

Discussion in 'General Graphics' started by Ewanuk, Feb 27, 2018.

  1. Ewanuk

    Ewanuk

    Joined:
    Jul 9, 2011
    Posts:
    257
    A feature of our project is we capture and record frames to make videos.

    After upgrading to 2017.3.0f3 (from 5.5.1f1), we're seeing crashes in certain conditions.

    This is the typical logic flow when recording:
    • Frame starts
    • Update()
    • Render to window as normal
    • EndOfFrame()
      • Setup a render texture (reusing each frame) at x2 the current screensize (for super-sampling)
      • Capture this frame and save it to disk
      • Return the active render texture back to default
    • Frame Ends

    Now, after a few frames, the application crashes. We see some graphics exceptions start getting logged, then after a frame or two, it will crash when attempting to capture the super-sampled frame. Our error logs show lots of:

    d3d11: failed to create buffer (target 0x1 mode 0 size 1536) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 156) [0x887A0005]
    Assertion failed on expression: 'SUCCEEDED(hr)'
    d3d11: attempt to lock null buffer
    d3d11: attempt to lock null buffer



    Finally, this is the crashes stack trace output:

    ========== OUTPUTING STACK TRACE ==================

    0x00007FFEC90D3354 (d3d11) D3DPerformance_SetMarker
    0x0000000141CB2DE3 (Unity) GfxDeviceD3D11Base::EndBufferWrite
    0x000000014060BF02 (Unity) GenericDynamicVBO::ReleaseChunkInternal
    0x0000000140619E8A (Unity) DynamicVBO::GetChunk
    0x00000001409A595F (Unity) GeometryJobTasks::ScheduleDynamicVBOGeometryJobs
    0x0000000141D2FACF (Unity) GfxDeviceWorker::RunCommand
    0x0000000141D3757B (Unity) GfxDeviceWorker::RunExt
    0x0000000141D14F09 (Unity) GfxDeviceWorker::Run
    0x0000000141D22BD9 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
    0x00000001408B7458 (Unity) Thread::RunThreadWrapper
    0x00007FFECC2913D2 (KERNEL32) BaseThreadInitThunk
    0x00007FFECE4054F4 (ntdll) RtlUserThreadStart

    ========== END OF STACKTRACE ===========



    Edit: If I turn off the x2 super-sampling (render the video frame at the same resolution as the window) it doesn't crash.

    Edit: Adding some log statements for the described events, including a statement at the start and end of a frame:
    start = first: update()
    end = last: yield return new WaitForEndOfFrame()

    We can see that the first set of errors are occurring between the end of a frame and the start of the next frame. Is it possible that the functions throwing these errors are on a different thread?


    (Full file attached)
    Frame End: 20280

    Assertion failed on expression: 'SUCCEEDED(hr)'
    0x00000001412F15D6 (Unity) StackWalker::GetCurrentCallstack
    0x00000001412F214F (Unity) StackWalker::ShowCallstack
    0x00000001411B11C0 (Unity) GetStacktrace
    0x00000001406DA453 (Unity) DebugStringToFile
    0x00000001406DAC31 (Unity) DebugStringToFile
    0x0000000141CADD71 (Unity) D3D11Window::EndRendering
    0x0000000141D35CF4 (Unity) GfxDeviceWorker::RunCommand
    0x0000000141D3757B (Unity) GfxDeviceWorker::RunExt
    0x0000000141D14F09 (Unity) GfxDeviceWorker::Run
    0x0000000141D22BD9 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
    0x00000001408B7458 (Unity) Thread::RunThreadWrapper
    0x00007FFECC2913D2 (KERNEL32) BaseThreadInitThunk
    0x00007FFECE4054F4 (ntdll) RtlUserThreadStart

    d3d11: failed to create buffer (target 0x1 mode 0 size 1632) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 168) [0x887A0005]
    Assertion failed on expression: 'SUCCEEDED(hr)'
    0x00000001412F15D6 (Unity) StackWalker::GetCurrentCallstack
    0x00000001412F214F (Unity) StackWalker::ShowCallstack
    0x00000001411B11C0 (Unity) GetStacktrace
    0x00000001406DA453 (Unity) DebugStringToFile
    0x00000001406DAC31 (Unity) DebugStringToFile
    0x0000000141CADD71 (Unity) D3D11Window::EndRendering
    0x0000000141D35CF4 (Unity) GfxDeviceWorker::RunCommand
    0x0000000141D3757B (Unity) GfxDeviceWorker::RunExt
    0x0000000141D14F09 (Unity) GfxDeviceWorker::Run
    0x0000000141D22BD9 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
    0x00000001408B7458 (Unity) Thread::RunThreadWrapper
    0x00007FFECC2913D2 (KERNEL32) BaseThreadInitThunk
    0x00007FFECE4054F4 (ntdll) RtlUserThreadStart


    d3d11: failed to create buffer (target 0x1 mode 0 size 864) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 96) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 672) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 72) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1440) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 156) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 672) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 72) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 576) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 60) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 480) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 48) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 480) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 48) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 672) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 72) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1056) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 84) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 768) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 84) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 960) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 96) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 960) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 108) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 768) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 84) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 768) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 84) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1632) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 192) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 576) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 60) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1920) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 216) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 288) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 24) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 672) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 72) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 960) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 108) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 768) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 84) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1344) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 144) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 960) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 108) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 864) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 96) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 672) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 72) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1536) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 168) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1440) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 156) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1152) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 120) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1440) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 156) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1824) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 192) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1248) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 132) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 1920) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 204) [0x887A0005]
    d3d11: failed to create buffer (target 0x1 mode 0 size 55872) [0x887A0005]
    d3d11: failed to create buffer (target 0x2 mode 0 size 5484) [0x887A0005]

    Frame Start: 20281
     

    Attached Files:

    Last edited: Feb 27, 2018
  2. Talasas

    Talasas

    Joined:
    May 14, 2011
    Posts:
    8
    Did you ever work this one out? I'm seeing the same thing now with builds.