Split from #365: the nvidia documentation is finally available: NVIDIA Capture SDK.
We could use this for high performance shadow servers or with stereo rendering, especially for win32 (#389) where this solves the biggest problem (efficient pixel capture).
Problem is that the SDK states: NVIDIA Quadro 2000 class or higher, select Tesla including M6/M60/M10 and P40. And sure enough, I tried on on both Linux and MS Windows 7, no go with a GTX 1070 / GTX 970. Looks like a purely commercial licensing restriction, again.
We probably need a Quadro Maxwell or newer to be able to do capture at 4k to HEVC, and those cards aren't cheap: M4000 costs ~$800. The M2000 is a bit cheaper at $420, but for our purpose the performance will be similar to my old GTX 750 Ti... which costs $100, sigh.
For non-proprietary options, see ticket:389#comment:19
A good explanation of the differences between NvFBC, NvIFR, NvENC:Steam : Explanation NvFBC, NvIFR, NvENC.
Recorded some progress here: ticket:389#comment:21. Needs porting to Linux.
Partial port to Linux done in r15787. (CUDA variant still needs doing, will be useful for toying with GPU pre-compression)
pkgconfig file to use on MS Windows
RPM packaging fix in r15941 so users without the nvidia proprietary drivers can still install the package!
before:
$ rpm -qpR ./RPMS/x86_64/python2-xpra-2.1-0.fc26.x86_64.rpm | grep -i nvidia libnvidia-fbc.so.1()(64bit)
and after:
$ rpm -qpR ./RPMS/x86_64/python2-xpra-2.1-0.fc26.x86_64.rpm | grep -i nvidia
Important fix in r16457, see ticket:1552#comment:4.
We now have zero-copy GPU transfers! See ticket:365#comment:12
For Linux, as of r16479, the download-to-host-memory version works, the CUDA imagewrapper does not (memcpy_dtod
fails).
pkg-config file used on Linux - fixes double-slash problem during rpmbuild: https://bugzilla.redhat.com/show_bug.cgi?id=304121
Linux fixes in r16492, re-tested on win32 too. Closing at last.
Will follow up in #1597 + #1598.
r17078 adds support for loading API license keys.
NVFBC WINDOWS 10 SUPPORT DEPRECATION. The recommended alternative is Desktop Duplication API. (some details are already in #389)
To enable this on win32 consumer hardware, see nvidia-patch Windows: NvFBC support
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1317