Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KlakSpout Fails to Display Spout texture created from separate display adapter. #62

Closed
DenverIW opened this issue Nov 19, 2020 · 2 comments
Assignees
Labels

Comments

@DenverIW
Copy link

DenverIW commented Nov 19, 2020

KlakSpout will fail to display the Spout shared texture if it was not created on the same graphics display adapter. Testing this requires use of a machine with multiple display adapters (in my particular case, an IGPU - Intel UHD graphics, and a GPU - NVIDIA 2080 Super ). The attached project is simply a new Unity Project (2019.4.10f1) with klakspout included following the directions on the github page. Additionally, the splash screen is toggled off and a text component was added to the scene to display the current SystemInfo.graphicsDeviceName to verify that the correct device was in use.

To replicate the issue, open the scene "Quad". Disable all components of type "Spout Sender" and create a build with this scene called SpoutReceiver. Then re-enable them and create another build call SpoutSender. This way, only one build is creating shared textures so there will be no naming collisions.

Using a terminal, launch each of these builds with the argument -force-device-index #. Specify a different # for the sender versus the receiver and verify that each is using a different adapter by looking at the text element near the center of the screen. Spout textures will fail to display and will appear black. This is a contrived example, but is important in situations where this plugin is used to read textures from other applications creating shared textures, and there is no guarantee what adapter the texture is created on.

SpoutTest.zip

@keijiro keijiro self-assigned this Nov 19, 2020
@keijiro
Copy link
Owner

keijiro commented Nov 19, 2020

My understanding is that Spout only supports sharing textures in a single GPU. Could you check if other Spout-compatible apps work as you intended with your setup?

@DenverIW
Copy link
Author

DenverIW commented Nov 20, 2020

I think you are correct and I misunderstood Spout's capabilities. I thought this was possible running Spout through CPU mode. I know that is used as a fallback to NV_DX_interop being unavailable but I incorrectly assumed this could also address applications on separate GPUs.

Thanks for pointing that out!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants