Xpra: Ticket #1317: nvidia capture sdk support

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).

Tue, 27 Sep 2016 09:42:47 GMT - Antoine Martin: status, description changed

Sun, 19 Feb 2017 06:30:42 GMT - Antoine Martin: milestone changed

Mon, 20 Feb 2017 11:43:52 GMT - Antoine Martin:

See also #1347 and #1308

Mon, 27 Mar 2017 06:01:46 GMT - Antoine Martin: keywords set

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.

Fri, 28 Apr 2017 04:52:10 GMT - Antoine Martin:

Recorded some progress here: ticket:389#comment:21. Needs porting to Linux.

Tue, 02 May 2017 16:42:36 GMT - Antoine Martin:

Partial port to Linux done in r15787. (CUDA variant still needs doing, will be useful for toying with GPU pre-compression)

Tue, 02 May 2017 17:36:45 GMT - Antoine Martin: attachment set

pkgconfig file to use on MS Windows

Wed, 24 May 2017 06:09:53 GMT - Antoine Martin:

RPM packaging fix in r15941 so users without the nvidia proprietary drivers can still install the package!


$ rpm -qpR ./RPMS/x86_64/python2-xpra-2.1-0.fc26.x86_64.rpm  | grep -i nvidia

and after:

$ rpm -qpR ./RPMS/x86_64/python2-xpra-2.1-0.fc26.x86_64.rpm  | grep -i nvidia

Sat, 22 Jul 2017 13:12:10 GMT - Antoine Martin:

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).

Sun, 23 Jul 2017 16:22:05 GMT - Antoine Martin: attachment set

pkg-config file used on Linux - fixes double-slash problem during rpmbuild: https://bugzilla.redhat.com/show_bug.cgi?id=304121

Mon, 24 Jul 2017 13:14:41 GMT - Antoine Martin: status changed; resolution set

Linux fixes in r16492, re-tested on win32 too. Closing at last.

Will follow up in #1597 + #1598.

Tue, 03 Oct 2017 05:42:11 GMT - Antoine Martin:

r17078 adds support for loading API license keys.

Tue, 25 Jun 2019 15:53:57 GMT - Antoine Martin:

NVFBC WINDOWS 10 SUPPORT DEPRECATION. The recommended alternative is Desktop Duplication API. (some details are already in #389)

Tue, 03 Dec 2019 01:35:15 GMT - Antoine Martin:

To enable this on win32 consumer hardware, see nvidia-patch Windows: NvFBC support

Sat, 23 Jan 2021 05:20:57 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1317