none
Unable to run the Fusion Samples on a Surface Pro 2 RRS feed

  • Question

  • I'm trying to run the Kinect for Windows Developer Toolkit v1.8.0 samples on a Surface Pro 2 running Windows 8.1 and Visual Studio 2013

    DxDiag show my DirectX version as DirectX 11 but all of the fusion demos display the status.

    "No DirectX11 device detected, or invalid device index - Kinect Fusion requires a DirectX11 device for GPU-based reconstruction."

    NuiFusionGetDeviceInfo is returning E_NUI_BADINDEX.

    I am running the demos unmodified. I see the same behavior in the C# and C++ demos. The non-fusion demos run fine.

    Why would NuiFusionGetDeviceInfo fail on my machine?

    Sunday, November 10, 2013 1:33 AM

Answers

  • Kinect Fusion relies heavily on the GPU for computation and requires a powerfull graphic card which must be DirectX 11 compatible.

    Even if DirectX 11 is installed (as DxDiag mentionned it), it doesn't mean the graphic card (GPU) is DirectX11 compatible.

    I think the Intel HD Graphics 4400 (inside the Surface Pro 2) is not powerful enough to run realtime rendering.

    As stated on this page: http://msdn.microsoft.com/en-us/library/dn188670.aspx

    • Kinect Fusion can process data either on a DirectX 11 compatible GPU with C++ AMP, or on the CPU, by setting the reconstruction processor type during reconstruction volume creation. The CPU processor is best suited to offline processing as only modern DirectX 11 GPUs will enable real-time and interactive frame rates during reconstruction.
    • The minimum hardware requirement for GPU based reconstruction is a DirectX 11 compatible graphics card
      Kinect Fusion WILL NOT RUN on hardware that does not meet this requirement.
    • The minimum hardware requirement for video cards has not been specifically tested for Kinect Fusion has been tested on the NVidia GeForce GTX560 and the AMD Radeon 6950. These cards, or higher end cards from the same product lines, are expected to be able to run at interactive rates.

    Sorry for that


    Vincent Guigui Innovative Technologies Expert at OCTO Technology MVP Kinect

    Sunday, November 10, 2013 6:07 PM

All replies

  • Kinect Fusion relies heavily on the GPU for computation and requires a powerfull graphic card which must be DirectX 11 compatible.

    Even if DirectX 11 is installed (as DxDiag mentionned it), it doesn't mean the graphic card (GPU) is DirectX11 compatible.

    I think the Intel HD Graphics 4400 (inside the Surface Pro 2) is not powerful enough to run realtime rendering.

    As stated on this page: http://msdn.microsoft.com/en-us/library/dn188670.aspx

    • Kinect Fusion can process data either on a DirectX 11 compatible GPU with C++ AMP, or on the CPU, by setting the reconstruction processor type during reconstruction volume creation. The CPU processor is best suited to offline processing as only modern DirectX 11 GPUs will enable real-time and interactive frame rates during reconstruction.
    • The minimum hardware requirement for GPU based reconstruction is a DirectX 11 compatible graphics card
      Kinect Fusion WILL NOT RUN on hardware that does not meet this requirement.
    • The minimum hardware requirement for video cards has not been specifically tested for Kinect Fusion has been tested on the NVidia GeForce GTX560 and the AMD Radeon 6950. These cards, or higher end cards from the same product lines, are expected to be able to run at interactive rates.

    Sorry for that


    Vincent Guigui Innovative Technologies Expert at OCTO Technology MVP Kinect

    Sunday, November 10, 2013 6:07 PM
  • The Intel HD Graphics 4400 supports DirectX 11.1 http://www.intel.com/support/graphics/sb/CS-033757.htm

    I'm not expecting it to perform well but as long as the 4400 supports DirectX 11.1 it should meet the minimum requirement.

    From that same page: http://msdn.microsoft.com/en-us/library/dn188670.aspx
            Note: It is possible to use Kinect Fusion on laptop class DirectX11 GPU hardware, but this typically runs significantly slower than desktop-class hardware.         In general, aim to process at the same frame rate as the Kinect sensor (30fps) to enable the most robust camera pose tracking.

    Sunday, November 10, 2013 6:54 PM
  • Sometime the driver doesn't support the complete set of features that are required for DirectX 11/C++ AMP. It may support most features for DX11, but the feature set required may not be supported by that driver.


    Carmine Sirignano - MSFT

    Tuesday, November 12, 2013 12:46 AM
  • Is there any documentation on which features of DirectX 11 are required for Kinect Fusion?
    Wednesday, November 20, 2013 12:15 AM
  • As posted on the Kinect Fusion page, the main requirement for GPU based calculations are handled by C++ AMP. We have only tested with the NVidia and AMD GPU listed on the page.

    http://msdn.microsoft.com/en-us/library/dn188670.aspx

    Kinect Fusion can process data either on a DirectX 11 compatible GPU with C++ AMP, or on the CPU, by setting the reconstruction processor type during reconstruction volume creation. The CPU processor is best suited to offline processing as only modern DirectX 11 GPUs will enable real-time and interactive frame rates during reconstruction.

    You can force CPU based rendering, but that will have its disadvantages if you are trying to do this real-time.

    http://msdn.microsoft.com/en-us/library/vstudio/hh265136.aspx


    Carmine Sirignano - MSFT

    Friday, November 22, 2013 5:47 PM
  • Can you share how to change the processing mode from GPU to CPU in the samples, so we non-GPU endowed developers can at least get it to work (albeit not real-time or fast)?
    Monday, March 3, 2014 10:20 PM