Spout

Nestdrop via spout to resolume GL/DX interop issues

Hi,
I am having trouble with spout/nestdrop/resolume on a new laptop. I have had it working on previous laptop but cannot seem to troubleshoot this one.

Build is Intel UHD graphics and NVIDIA GeForce RTX3060 GPU on DirectX12
Windows 10.
Running Spout 2007

Issue is I can only get nestdrop running on intergrated graphics and it crashes resolume.
If I switch to GPU in NVIDIA settings it seems to switch back to CPU in demo
I can see in spout demo but when I load into Resolume it crashes and I get the GL/DX interop error from spout.
image

Logs:
Spoutsettings
2022-01-05 10:26:23
[notice] SpoutSettings : SpoutPanel already registered
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xEA4E0AC8)
[notice] spoutGL::CleanupDX11()
[notice] spoutDirectX::CloseDirectX11()
[notice] spoutGL::OpenDirectX11
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xE9EC0FD8)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xE9EC0FD8, width = 256, height = 256, format = 87
[notice] pTexture = 0xE6E5E878 : dxShareHandle = 0x0001FC2
[notice] Linking test - OpenGL texture (0x0000001) DX11 texture (0xE6E5E878)
[notice] spoutDirectX::ReleaseDX11Texture (0xE9EC0FD8)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CleanupDX11()
[notice] spoutDirectX::CloseDirectX11()

Demo setting when I run nestdrop
Reciever
2022-01-05 10:32:43
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0xF8F93B0
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xF918AD8)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xF918AD8, width = 256, height = 256, format = 87
[notice] pTexture = 0x6AE87B8 : dxShareHandle = 0x0002B42
[notice] Linking test - OpenGL texture (0x0000002) DX11 texture (0x6AE87B8)
[error] spoutGL::LinkGLDXtextures - wglDXRegisterObjectNV :error 13, (0xD)
Incorrect GL name, type or access parameters.
[notice] spoutDirectX::ReleaseDX11Texture (0xF918AD8)
[warning] spoutGL::GLDXready - GL/DX interop functions failed
[warning] spoutGL::OpenSpout - system is not compatible with GL/DX interop
[warning] Using CPU DirectX methods

Sender:
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0x8E5D46C0
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x8E6B5E98)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x8E6B5E98, width = 256, height = 256, format = 87
[notice] pTexture = 0x858D63F8 : dxShareHandle = 0x0000682
[notice] Linking test - OpenGL texture (0x0000009) DX11 texture (0x858D63F8)
[error] spoutGL::LinkGLDXtextures - wglDXRegisterObjectNV :error 13, (0xD)
Incorrect GL name, type or access parameters.
[notice] spoutDirectX::ReleaseDX11Texture (0x8E6B5E98)
[warning] spoutGL::GLDXready - GL/DX interop functions failed
[warning] spoutGL::OpenSpout - system is not compatible with GL/DX interop
[warning] Using CPU DirectX methods

Demo reciever says using DirectX9 which is the recommended by nestdrop.

Also noticed that the settings in spout do not list the UHD graphics card.
image

Thank you and please let me know if you need more info.

This looks like the same problem as reported here. I think it could be related to specific graphics drivers because reports are only recent.

I have updated the Demo programs :
Demo sender v2.049
Demo Receiver v2.049
SpoutSettings v1.049

Please try these to find whether the problem remains.

NestDrop uses DirectX9 internally but it’s compatible with all Spout applications that use DirectX 11.

The “secondary” adapter listed is the first one found. The UHD card is there but not listed in this diagnostic. The important one is the “display”.

Try the updated programs first so that we know where to look further.

Thank you for your help here.

Same issue - Nestdrop only works with CPU checked on (new) spoutsettings but when loaded into resolume it crashes with the same interop error message.

Reciever log
2022-01-05 23:09:51
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0x3ECD6800
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x3ED528C8)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x3ED528C8, width = 256, height = 256, format = 87
[notice] pTexture = 0x3EEF33F8 : dxShareHandle = 0x0000902
[notice] Linking test - OpenGL texture (0x0000002) DX11 texture (0x3EEF33F8)
[notice] spoutDirectX::ReleaseDX11Texture (0x3ED528C8)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[warning] Using CPU DirectX methods
[notice] Spout::InitReceiver(Spout Demo Sender, 640 x 360)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore already exists
[notice] Semaphore handle [0x000047C]
[notice] spoutDirectX::CreateDX11StagingTexture
[notice] pTexture = 0x3EF06838
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] spoutDirectX::ReleaseDX11Texture (0x3ED528C8)
[notice] Spout::InitReceiver(NestDrop Deck 1, 1920 x 1080)
[notice] spoutFrameCount::CreateAccessMutex - [NestDrop Deck 1_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [NestDrop Deck 1]
[notice] Semaphore handle [0x00006F8]
[notice] spoutDirectX::CreateDX11StagingTexture
[notice] pTexture = 0x3EFAAB38
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] spoutDirectX::ReleaseDX11Texture (0x3ED528C8)
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CloseDirectX()
[notice] spoutDirectX::CloseDirectX11()

Sender
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0xB7229DC0
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xB72F7168)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xB72F7168, width = 256, height = 256, format = 87
[notice] pTexture = 0xB74ADFF8 : dxShareHandle = 0x0001982
[notice] Linking test - OpenGL texture (0x0000009) DX11 texture (0xB74ADFF8)
[notice] spoutDirectX::ReleaseDX11Texture (0xB72F7168)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[warning] Using CPU DirectX methods
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xB72F7168, width = 640, height = 360, format = 87
[notice] pTexture = 0xC92F9178 : dxShareHandle = 0x0002C82
[notice] spoutSenderNames::CreateSender
[notice] [Spout Demo Sender] 640x360, share handle = 0x0002C82, format = 87
[notice] spoutSenderNames::SetSenderID(Spout Demo Sender, 1, 1)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] created - 0x00004AC
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore handle [0x00004A8]
[notice] spoutDirectX::CreateDX11StagingTexture
[notice] pTexture = 0xB75B73F8
[notice] spoutGL::UnloadTexturePixels - creating FBO
[notice] spoutGL::UnloadTexturePixels - creating PBO
[notice] SpoutFrameCount::CleanupFrameCount
[notice] SpoutFrameCount::CloseAccessMutex
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CloseDirectX()
[notice] spoutDirectX::CloseDirectX11()

Settings
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x2E79AE18)
[notice] spoutGL::CleanupDX11()
[notice] spoutDirectX::CloseDirectX11()
[notice] spoutGL::OpenDirectX11
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x2FA09518)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x2FA09518, width = 256, height = 256, format = 87
[notice] pTexture = 0x2FD39FF8 : dxShareHandle = 0x0000582
[notice] Linking test - OpenGL texture (0x0000001) DX11 texture (0x2FD39FF8)
[notice] spoutDirectX::ReleaseDX11Texture (0x2FA09518)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CleanupDX11()
[notice] spoutDirectX::CloseDirectX11()

Thx

These logs show that the wglDXRegisterObjectNV:error 13 is gone. Demo sender and Receiver should work together with CPU mode checked off.

You mention that “Nestdrop only works with CPU checked on”. By “works”, do you mean that it’s only received by the demo receiver with CPU mode checked on? If so, I will trace that though

The Resolume MessageBox warning is from Spout 2.006, so I suspect a different problem. Is the Spout demo sender received by Resolume?.

Demo sender and receiver work with CPU checked off however when sender is loaded into resolume the interop message comes up and crashes resolume.

When CPU is checked off and I load nestdrop the nestdrop output fails. Output shuts on/off with no image. When checked on the output works along with the demo receiver.

No idea why Resolume is seeing 2.006 as I deleted from registry and reloaded the new one.
Yes spout demo is loaded into resolume but crashes as soon as it is triggered in clips.

Receiver log:
2022-01-06 12:11:05
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0x2A749100
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x2A79E818)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x2A79E818, width = 256, height = 256, format = 87
[notice] pTexture = 0x21A26038 : dxShareHandle = 0x0000482
[notice] Linking test - OpenGL texture (0x0000002) DX11 texture (0x21A26038)
[notice] spoutDirectX::ReleaseDX11Texture (0x2A79E818)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[warning] Using CPU DirectX methods
[notice] Spout::InitReceiver(Spout Demo Sender, 640 x 360)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore already exists
[notice] Semaphore handle [0x0000474]
[notice] spoutDirectX::CreateDX11StagingTexture
[notice] pTexture = 0x2A947E78
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] spoutDirectX::ReleaseDX11Texture (0x2A79E818)
[notice] Spout::InitReceiver(NestDrop Deck 1, 1920 x 1080)
[notice] spoutFrameCount::CreateAccessMutex - [NestDrop Deck 1_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [NestDrop Deck 1]
[notice] Semaphore handle [0x0000658]
[notice] spoutDirectX::CreateDX11StagingTexture
[notice] pTexture = 0x2A98F8B8
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] spoutDirectX::ReleaseDX11Texture (0x2A79E818)
[error] spoutDirectX::OpenDX11shareHandle (0x0000782) failed : error = 87 (0x0000057)
[notice] spoutDirectX::CreateDX11StagingTexture
[fatal] spoutDirectX::CreateDX11StagingTexture ERROR : [0x57] : Unlisted error

Sender log:
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0x6A1618B0
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x6A16EA68)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x6A16EA68, width = 256, height = 256, format = 87
[notice] pTexture = 0x6A3E81B8 : dxShareHandle = 0x0000802
[notice] Linking test - OpenGL texture (0x0000009) DX11 texture (0x6A3E81B8)
[notice] spoutDirectX::ReleaseDX11Texture (0x6A16EA68)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[warning] Using CPU DirectX methods
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x6A16EA68, width = 640, height = 360, format = 87
[notice] pTexture = 0x7C212338 : dxShareHandle = 0x0000B82
[notice] spoutSenderNames::CreateSender
[notice] [Spout Demo Sender] 640x360, share handle = 0x0000B82, format = 87
[notice] spoutSenderNames::SetSenderID(Spout Demo Sender, 1, 1)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] created - 0x00004A0
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore handle [0x00004A4]
[notice] spoutDirectX::CreateDX11StagingTexture
[notice] pTexture = 0x6A4D7638
[notice] spoutGL::UnloadTexturePixels - creating FBO
[notice] spoutGL::UnloadTexturePixels - creating PBO
[notice] SpoutFrameCount::CleanupFrameCount
[notice] SpoutFrameCount::CloseAccessMutex
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CloseDirectX()
[notice] spoutDirectX::CloseDirectX11()

If the Spout demo Sender and Receiver work together, the graphics driver is compatible with the GL/DX interop functions for DirectX 11.

CPU share mode bypasses the interop functions, but I see errors in the Receiver log for “OpenDX11shareHandle” and “CreateDX11StagingTexture” that suggest that the DirectX9 shared texture from Nestdrop cannot be accessed.

Resolume is built using 2.006 Spout functions. There is nothing that the user can change. You could try the 2.006 demo sender and receiver.

I have made two programs that could be helpful.

The first is a diagnostic program that will show compatibility of the graphics driver for GL/DX interop functions with DirectX 11. This will probably show no errors because the Demo Sender and Receiver work together, but you can try it to find out. You can also run it as a check when using different graphics cards.

The second is a bridge program that was made to overcome the limited texture formats that NestDrop can use. It receives from a Spout sender in sends out again in a compatible format. This should produce an output that NestDrop can receive. As a receiver from Nestdrop, it’s likely to fail. But it gives something else to try.

Edit -
Here’s a DirectX 9 version of the GL/DX interop test.

There are also some DirectX 11 examples that do not use the Gl/DX interop which should work on your system. Tutorial04 is a sender. Tutorial07 is a receiver.

If Tutorial07 receives from NestDrop, and the Tutorial04 sender is received by Resolume, a DirectX bridge program could be made to convert the NestDrop output.

Hi, Apologies for the delay

See image re nestdrop accessing Dx9
image

I tried 2.006 and same issues (nestdrop won’t load on either cpu or gpu) however I can load demo into resolume and no crash (when nestdrop is off).

The DX11 diagnostic shows this error when running demo
image

DirectX9 GL/DX interop test shows the below with CPU selected:

wglDXOpenDeviceNV - device [0x7CFD1B0] : Error 0 (0x00) : No error
wglDXSetResourceShareHandleNV returned 1 : Error 0 (0x00)
wglDXRegisterObjectNV - object [0x7CE6290] : Error 0 (0x00) : No error
wglDXLockObjectsNV : Error 0 (0x00) : No error
wglUnlockDXLockObjectsNV : Error 0 (0x00) : No error
wglDXUnregisterObjectNV : Error 0 (0x00)
wglDXCloseDeviceNV returned 1 : Error 0 (0x00)

The bridge did not work unless I select CPU on spoutsettings and still crashes resolume when loading.

Tutotial07 receives from Nestdrop (when only when cpu selected)
Tutorial04 crashes resolume

Regardless of all tried fixes nestdrop will not run when cpu ticked off.

Sender Log
2022-01-18 13:15:29
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0xF0715730
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xF07AD7C8)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xF07AD7C8, width = 256, height = 256, format = 87
[notice] pTexture = 0xE7B06678 : dxShareHandle = 0x0000D42
[notice] Linking test - OpenGL texture (0x0000009) DX11 texture (0xE7B06678)
[notice] spoutDirectX::ReleaseDX11Texture (0xF07AD7C8)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[notice] Using GPU OpenGL GL/DX methods
[notice] spoutGL::CreateInterop
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xF07AD7C8, width = 640, height = 360, format = 87
[notice] pTexture = 0xF0AB0C78 : dxShareHandle = 0x0000D82
[notice] spoutGL::CreateInterop - m_pSharedTexture = 0xF0AB0C78 : m_dxShareHandle = 0x0000D82
[notice] m_hInteropObject = 0x000DAF0
[notice] spoutSenderNames::CreateSender
[notice] [Spout Demo Sender] 640x360, share handle = 0x0000D82, format = 87
[notice] spoutSenderNames::SetSenderID(Spout Demo Sender, 0, 1)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] created - 0x00004A8
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore handle [0x00004A4]
[notice] SpoutFrameCount::CleanupFrameCount
[notice] SpoutFrameCount::CloseAccessMutex
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CloseDirectX()
[notice] spoutDirectX::CloseDirectX11()

Receiver log
2022-01-18 13:15:35
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0xE437F70
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xE4AA068)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xE4AA068, width = 256, height = 256, format = 87
[notice] pTexture = 0x5635F78 : dxShareHandle = 0x0000E42
[notice] Linking test - OpenGL texture (0x0000002) DX11 texture (0x5635F78)
[notice] spoutDirectX::ReleaseDX11Texture (0xE4AA068)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[notice] Using GPU OpenGL GL/DX methods
[notice] Spout::InitReceiver(Spout Demo Sender, 640 x 360)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore already exists
[notice] Semaphore handle [0x0000478]
[notice] spoutGL::CreateInterop
[notice] spoutGL::CreateInterop - m_pSharedTexture = 0x5635F78 : m_dxShareHandle = 0x0000D82
[notice] m_hInteropObject = 0x0001590
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] Spout::InitReceiver(NestDrop Deck 1, 1920 x 1080)
[notice] spoutFrameCount::CreateAccessMutex - [NestDrop Deck 1_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [NestDrop Deck 1]
[notice] Semaphore handle [0x0000768]
[notice] spoutGL::CreateInterop
[notice] spoutGL::CreateInterop - m_pSharedTexture = 0x1877FBB8 : m_dxShareHandle = 0x0001682
[notice] Re-registering interop
[notice] m_hInteropObject = 0x0004F80
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] Spout::InitReceiver(Spout Demo Sender, 640 x 360)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore already exists
[notice] Semaphore handle [0x00005D4]
[notice] spoutGL::CreateInterop
[notice] spoutGL::CreateInterop - m_pSharedTexture = 0x5635F78 : m_dxShareHandle = 0x0000D82
[notice] Re-registering interop
[notice] m_hInteropObject = 0x0009B70
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CloseDirectX()
[notice] spoutDirectX::CloseDirectX11()

Thanks

Thanks for these reports.

The DX11 diagnostic is a simple program using fixed options for device creation, and will have to be re-written to avoid the error you see. It will be a little while before I can do that. DirectX 9 shows interop compatibility which is positive, but we don’t know the graphics adapter being used.

In your sender and receiver logs you will see :

[notice] Using GPU OpenGL GL/DX methods

which indicates that CPU mode was checked off for both. There are no errors receiving from NestDrop but presumably the received output is black.

However, your earlier report shows :

[error] spoutDirectX::OpenDX11shareHandle (0x0000782) failed : error = 87 (0x0000057).

The question is why the difference.

We don’t know the graphics card used by the receiver and I am wondering if this can be resolved through Nvidia profiles for each individual program.

You should find a profile already created for “Resolume Software (Resolume Arena/Arena.exe”. Have a look at “Power management” and it might be set to use the Global setting. Here you can specify “Prefer maximum performance” to make sure this is always used. Also I seem to recall that some people have found it necessary to plug a monitor into the Nvidia output.

Is this Windows 10 or Windows 11? What is the laptop brand and model?

Hi,
That’s strange as below it is definitely not ticked.
image
and nestdrop will not load. Output flashes on/off.
I must have tried something else last time and captured the wrong receiver log.

Sender
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0x62A971F0
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0x62B6AD38)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x62B6AD38, width = 256, height = 256, format = 87
[notice] pTexture = 0x59E763F8 : dxShareHandle = 0x00019C2
[notice] Linking test - OpenGL texture (0x0000009) DX11 texture (0x59E763F8)
[notice] spoutDirectX::ReleaseDX11Texture (0x62B6AD38)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[notice] Using GPU OpenGL GL/DX methods
[notice] spoutGL::CreateInterop
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0x62B6AD38, width = 640, height = 360, format = 87
[notice] pTexture = 0x62E3C6B8 : dxShareHandle = 0x0000A82
[notice] spoutGL::CreateInterop - m_pSharedTexture = 0x62E3C6B8 : m_dxShareHandle = 0x0000A82
[notice] m_hInteropObject = 0x0000B60
[notice] spoutSenderNames::CreateSender
[notice] [Spout Demo Sender] 640x360, share handle = 0x0000A82, format = 87
[notice] spoutSenderNames::SetSenderID(Spout Demo Sender, 0, 1)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] created - 0x00004B4
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore handle [0x00004B0]

Reciever:
[notice] spoutGL::OpenSpout - 64bit 2.007 - this 0xCB3F6150
[notice] spoutGL::OpenDirectX
[notice] spoutDirectX::OpenDirectX11()
[notice] spoutDirectX::CreateDX11device - pAdapterDX11 (0x0000000)
[notice] device (0xCB4698C8)
[notice] spoutGL::GLDXready - testing for GL/DX interop compatibility
[notice] GL/DX interop extensions available
[notice] spoutGL::GLDXready - testing GL/DX interop functions
[notice] spoutDirectX::CreateSharedDX11Texture
[notice] pDevice = 0xCB4698C8, width = 256, height = 256, format = 87
[notice] pTexture = 0xC26263B8 : dxShareHandle = 0x0002D42
[notice] Linking test - OpenGL texture (0x0000002) DX11 texture (0xC26263B8)
[notice] spoutDirectX::ReleaseDX11Texture (0xCB4698C8)
[notice] Test OpenGL and DX11 textures created and linked OK
[notice] spoutGL::OpenSpout - GL/DX interop compatible
[notice] Using GPU OpenGL GL/DX methods
[notice] Spout::InitReceiver(Spout Demo Sender, 640 x 360)
[notice] spoutFrameCount::CreateAccessMutex - [Spout Demo Sender_SpoutAccessMutex] already exists
[notice] SpoutFrameCount::EnableFrameCount : sender name [Spout Demo Sender]
[notice] Semaphore already exists
[notice] Semaphore handle [0x000047C]
[notice] spoutGL::CreateInterop
[notice] spoutGL::CreateInterop - m_pSharedTexture = 0xCB603778 : m_dxShareHandle = 0x0000A82
[notice] m_hInteropObject = 0x00051E0
[notice] SpoutFrameCount::CloseAccessMutex
[notice] SpoutFrameCount::CleanupFrameCount
[error] spoutDirectX::OpenDX11shareHandle (0x0002AC2) failed : error = 87 (0x0000057)
[notice] spoutGL::CleanupInterop
[notice] spoutGL::CloseDirectX()
[notice] spoutDirectX::CloseDirectX11()

Checked NVIDIA was set to maximum performance and resolume still crashed with interop error. All programs have been set to use NVIDIA GPU and also set them to integrated to try that with no change.

Pretty sure I checked with 2nd monitor but will try again.

Metabox Alpha-S NP70HP
Intel Core i7-11800H 8-Core (24M Cache up to 4.6 GHz)
NVIDIA GeForce RTX 3060 6GB GDDR6 VRAM (110W TGP & Dynamic Boost)
Windows 10

Thanks

I am sure you were right before, the logs show that the GPU is being used.

But for some reason there is a difference and we now see the same error as with receiving from NestDrop :

[error] spoutDirectX::OpenDX11shareHandle (0x0002AC2) failed : error = 87 (0x0000057)

Did it eventually receive OK despite the error? Or did the demo sender output flash on/off like with NestDrop?

I found notes from earlier work that OpenDX11shareHandle can fail or crash the program if the two shared textures are created using different graphics adapters.

Normally the “default” adapter is used and this should depend on the Intel/Nvidia selection. But in this case, the default might always be the Intel graphics.

It can easily be tested with the Tutorial04 example.

“File > Select graphics adapter” will show a drop-down list. The first displayed will be the one currently used. If this is the Intel adapter, it’s confirmation of the problem. Select the Nvidia adapter from the list. Change is immediate. Then open Resolume to see if it is received.

It looks like NVIDIA driver has been updated recently and now spout recognises.
image

I connected another display as well and between them that seemed to make all the difference
I had another monitor connect at the beginning of this thread however that still did not help then for some reason, but this is the key now.

Loaded into resolume and now it all works like a charm

Thanks for all your time helping me to trouble shoot, you truly are wonderful with your assistance and sense of community.

Cheers,
David

That’s excellent news.

There was a particular issue though, that I would like you to confirm if you have the time.

Now that the system is working, open Tutorial04.exe. You should see the NVIDIA adapter listed by default when you first open the dialog. Remove the monitor connected to the NVIDIA output. Then you might need to restart to be sure the system adapts.

Open Tutorial04 again. Is the NVIDIA adapter still shown as the default before you drop down the adapter list?

If there is a change to the Intel adapter it explains a lot and I will think about something to deal with it.

Hi

Yes NVIDIA adapter listed by default when monitor connected.
Removed monitor, restarted and the NVIDIA still is listed by default.

Thanks again

OK that eliminates the possibility. It looks like the driver was the problem.
Thanks for your time. I hope you can work successfully now.