Announcement

Collapse
No announcement yet.

DirectX 10 Test fails after running DirectX 9 on Intel graphics with 3 monitors

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • DirectX 10 Test fails after running DirectX 9 on Intel graphics with 3 monitors

    We recently came across a problem running the DirectX10 3D test in PerformanceTest.

    The test fails under the following conditions.
    1. Running Win10
    2. Running Intel integrated graphics
    3. Running 3 monitors connected to the motherboard
    4. Running the 3 monitors in Clone mode, as set from the Intel driver.
    5. Running the DX9 test prior to the DX10 test.
    When all the conditions are true the DirectX 10 test will fail. On older versions of the Intel driver you can get a crash. On newer versions you can get a black empty window and the test never finishes. We also had one customer report seeing "garbage" on the screen in clone mode.

    Upon deeper investigation we found that the error happens in IDXGISwapChain::SetFullscreenState(). Which is the device driver function to switch from Windowed mode to full screen mode.

    The returned error code is DXGI_ERROR_NOT_CURRENTLY_AVAILABLE. There are many reasons why a windowed-mode swap chain cannot switch to full-screen mode. For instance:
    • The application is running over Terminal Server.
    • The output window is occluded.
    • The output window does not have keyboard focus.
    • Another application is already in full-screen mode.
    But none of these apply in this case. So we think it is a device driver bug.

    Note: The problem doesn't happen on Win7, doesn't happen with single or dual monitors, and doesn't happen if you don't run DX9 first. The problem might also be limited to newer Intel CPUs (Skylake) as older ones didn't normally support 3 monitors.

    We are going to add an new error message for this case, "Failed to switch DirectX 10 test to full screen mode"

    Update: The problem has been reported to Intel, but they are blaming the application. Intel claim setting "ZeroedRecyclePages" in the Window registry will fix the problem. But it doesn't. In our view it is a device driver bug.
    (In case you were wondering, we don't really have any idea what ZeroedRecyclePages is or does, as it isn't documented and Intel didn't tell us).

  • #2
    There are a couple of similar problems to this one in the Intel driver.

    A crash in CreateDevice() when monitor 1 is not primary.
    A crash with igdumd64 Direct3D9EnableMaximizedWindowedModeShim when a USB monitor is connected

    Comment

    Working...
    X