xpra icon
Bug tracker and wiki

Opened 12 months ago

Closed 2 months ago

#1317 closed enhancement (fixed)

nvidia capture sdk support

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 2.1
Component: server Version: trunk
Keywords: shadow Cc:

Description (last modified by Antoine Martin)

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

Attachments (2)

nvfbc.pc-win32 (158 bytes) - added by Antoine Martin 5 months ago.
pkgconfig file to use on MS Windows
nvfbc.pc (226 bytes) - added by Antoine Martin 2 months ago.
pkg-config file used on Linux - fixes double-slash problem during rpmbuild: https://bugzilla.redhat.com/show_bug.cgi?id=304121

Download all attachments as: .zip

Change History (11)

comment:1 Changed 12 months ago by Antoine Martin

Description: modified (diff)
Status: newassigned

comment:2 Changed 7 months ago by Antoine Martin

Milestone: 2.02.1

comment:3 Changed 7 months ago by Antoine Martin

See also #1347 and #1308

comment:4 Changed 6 months ago by Antoine Martin

Keywords: shadow added

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.

Last edited 5 months ago by Antoine Martin (previous) (diff)

comment:5 Changed 5 months ago by Antoine Martin

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

comment:6 Changed 5 months ago by Antoine Martin

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

Changed 5 months ago by Antoine Martin

Attachment: nvfbc.pc-win32 added

pkgconfig file to use on MS Windows

comment:7 Changed 4 months ago by Antoine Martin

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
Last edited 4 months ago by Antoine Martin (previous) (diff)

comment:8 Changed 2 months ago by 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).

Last edited 2 months ago by Antoine Martin (previous) (diff)

Changed 2 months ago by Antoine Martin

Attachment: nvfbc.pc added

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

comment:9 Changed 2 months ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

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

Will follow up in #1597 + #1598.

Note: See TracTickets for help on using tickets.