Skip to main content
Up and Coming
August 29, 2014

Direct mode crashing compute shaders in DX11

I'm developing a windows-based DX11-based shader authoring tool. I switched my app over to use "Direct HMD Access" and now the video driver crashes ( Nvidia 780 ti, Windows 8.1 pro ) whenever I try to run certain compute shaders. This is only when in direct mode and calling the ovr_Initialize() function on startup and not even enabling the rest of the oculus initialization code, simply calling the ovr_initialize() to let the SDK hijack the device or whatever it's doing.

Removing ovr_Initialize() works fine with the shaders. Also running in "Extend Desktop to HMD" mode and calling ovr_Initialize() works fine, so it has something to do with Direct mode and compute shaders. It crashes before I can get any DX debug information.

My scene consists of only a bunch of compute shaders for a smooth particle hydrodynamics ( SPH ) real-time liquid effect and a vertex/geometry/pixel shader for rendering the final result, nothing else.

Is this a known bug?

    3 replies

    Up and Coming
    September 5, 2014
    Still a bug in 0.4.2.
    "Never trust a computer you can't throw out a window" - some old guy
    New Participant
    September 20, 2014
    I'm seeing this one as well with my compute shader.

    If I add some flushes around the dispatch call and step with the Visual Studio debugger it crashes the Nvidia driver almost every time when I step past the third line:

    device_context->Flush();
    device_context->Dispatch(5, 6, 1);
    device_context->Flush();

    This only happens when I use direct mode. It never happens when I run it without the rift.
    New Participant
    October 2, 2014
    Same problem here. No way to use DX11 Compute Shader with 0.4.2 Oculus SDK in Unity.
    That means all our experiences are not running anymore :(

    The crash seems to happen when we call Dispatch();
    And like ScottieBizzle, when we stop to call ovr_initialize(); all is working well... but no stereoscopic camera working of course.

    Any clue ?