Hello Everyone!
I was curious before I put the work in to do it myself if anyone had done any profiling of the various methods of sharing the frame buffer of a TOP between processes on the same physical hardware. Below are the ways I am considering, and I am curious if anyone has any experiences to share with the various options. As an added caveat I plan to use 100+ TOPs sharing their data out, but each TOP will be pretty low resolution (i.e. less than SD) so I place a premium on low-overhead solutions.
DirectX Out - It feels a bit inefficient to share the data to directx given the data is originally in OpenGL? But perhaps this is a no copy solution?
Syphon/Spout - I’ve found this relatively unreliable on Windows for use in production when there are lots of textures being shared
SharedMem - Hits the CPU so that’s a non-starter
Custom C++ Top CUDA - Transfer the data to my process via CUDA IPC
Thanks,
Matt