Why does GPU texture transfer not work on my computer?


#1

NI mate uses a feature we call GPU texture transfer. This allows us to speed up the process of receiving the live feed from a sensor by using the graphics card for transferring the data. This is a significant speedup, but unfortunately does not work on all systems. If you experience crashes in NI mate this setting should be the first one to disable in Preferences -> Use GPU Texture Transfer.

If the GPU texture transfer is disabled you won’t be able to use Spout / Syphon output live feeds as the same feature is used by Spout and Syphon in handling their textures.

On Windows the OpenGL extension that is required is called NV_DX_interop.

https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_DX_interop.txt

To see if this extension is supported by your graphics card use this glview tool (Windows): http://www.realtech-vr.com/glview/

The extension is probably listed under NV or NVX, but sometimes it might be elsewhere.

When you report problems related to this feature, please include the following information:

  • Operating system
  • Graphics card
  • Does your system have multiple graphics card (integrated, SLI, Crossfire)
  • Any noteworthy log messages on the log tab in NI mate

NI mate should give you a warning if this extension is not found. Spout will still try to start itself in memory only mode, but this will cause issues as the memory only mode only allows for one feed to be received from the sensor.

If your system has an integrated graphics card on Windows in addition to a dedicated one, try using each of them to see if one of them has the interop extension.

On NVidia cards:

  • Right click the desktop
  • Click NVidia Control Panel
  • 3D Settings -> Manage 3D settings
  • Program settings
  • Add NI mate in the “Select a program to customize” box
  • Choose “High performance NVidia processor”
  • If this fails, try the integrated one by choosing the other option.

On AMD cards:

  • Right click the desktop
  • Click “Configure Switchable Graphics”
  • Click browse
  • Find NI mate (C:/Program Files/Delicode/NI mate 2/Delicode_NI_mate.exe by default)
  • Set it to high performance. If this fails, try setting it to power saving to force the integrated GPU.

2.11 Trial Crashing on adding Dummy Device / real device open control interface
Cannot create DirectX/OpenGL interop
Crashes with Kinect 1 / Kinect 2
Help with install -ni mate on Surface Book
Control Interface is blank (Windows 10 - Fresh install)
I am getting just a blue screen
Why is my ASUS Xtion / PrimeSense Carmine sensor disconnecting often?
Building a Dedicated MOCAP machine
Does NI Mate really works?
#2

I’m afraid the answer to this problem is simply that the required extension is not available on your graphics card(s). To be sure, see if one of your graphics cards work with NI mate. On AMD cards this is done by right clicking the desktop and clicking “Configure Switchable Graphics”. Click browse and find NI mate (C:/Program Files/Delicode/NI mate 2/Delicode_NI_mate.exe by default) and set it to high performance. If this fails, try setting it to power saving to force the Intel GPU.


Why doesn't my Kinect for Xbox 360 work?
#3

Thanks Jesse, we got Ni Mate to work by turning off the primary (slower) GPU in the system BIOS. Thanks for the help!


#4

We are now having the same problem with different hardware:

  • Kinect v2 (i.e. Kinect for Xbox One)
  • Intel NUC5i7RYH running:
    • Windows 10 Home 64bit
    • Single GPU = Iris Graphics 6100
    • 16gb Ram
    • CPU = Intel i7-5557U (up to 3.4GHz turbo)
    • DirectX 9 and 11

OpenGL supports the Intel Iris GPU. We have installed the WGL_NV_DX_interop patch too.

We can get a Spout feed into Isadora with DirectX 9, but if we run GPU Texture Transfer with DirectX 11 it crashes. Do you have any recommendations?


#5

We’ve had some issues using Intel NUCs ourselves, and the NUC with Iris at our office never worked with Spout. On the Spout development forums there’s been some discussion about Intel GPUs but my understanding is that they never got a fully working solution for some GPUs. We’ve managed to make some, but not all, of the Intel HD cards function properly though.

If the Spout demo works with DX9 but not DX11 I’m wondering if Spout defaults to the memory share mode with DX9 and manages to get that working. In memory share mode Spout does not actually use the GPU for transferring the textures and is limited to only one concurrent stream. NI mate does not work with this mode with Kinects as these sensors have two streams: One for depth and one for color.

These issues with GPUs are so complicated that we unfortunately don’t have a solution for this as of yet. If possible, try using a different GPU. We’ve had most success with NVidia cards.


#6

Hi… my graphic card is Nvidia gtx960M. the OpenGL viewer extension tool indicates the interop extension is supported, still i get the “Spout error: ERROR - Cannot create DirectX/OpenGL interop”. Im on win10, i have an intel integrated graphic card as well. Im using xbox 360 kinect sensor
this is the log messages i get
23:28:06: Input 1: Startup succesful
23:28:07: Spout error: ERROR - Cannot create DirectX/OpenGL interop
23:28:07: Input 1: LinkGLDXtextures error 1 : could not create interop device from 185e1f1c
23:28:07: Input 1: DX11 LinkGLDXtextures failed
23:28:07: Input 1: CreateInterop error 3
23:28:07: Input 1: Spout::InitSender error 2
23:28:07: Spout error: ERROR - Cannot create DirectX/OpenGL interop

I get exactly the same error with the integrated graphics card

I hope u can give me a hand


#7

Are you certain the NVidia card was used? Did you add a rule for using the discrete card with NI mate? If yes, you may need to add another rule for the Delicode_Sensor_X executable (where X is the type of sensor you’re using, the executables are in the NI mate folder).