.. | ||
.gitignore | ||
framework.h | ||
nvfbcbody.asm | ||
nvfbcdefs.h | ||
nvfbcwrp_main.cpp | ||
nvfbcwrp.def | ||
nvfbcwrp.sln | ||
nvfbcwrp.vcxproj | ||
nvfbcwrp.vcxproj.filters | ||
nvfbcwrp.vcxproj.user | ||
pch.cpp | ||
pch.h | ||
README.md |
nvfbcwrp
Wrapper for NvFBC64.dll
library which injects private keys into NvFBC_CreateEx
calls in order to enable NvFBC on customer-grade hardware (like GeForce cards) for all NvFBC-targeted applications. It should work at least with applications built with Nvidia Capture SDK versions 5.0 to 7.1.
Usage
- Obtain
nvfbcwrp64.dll
andnvfbcwrp32.dll
files. You may build them yourself with MSVS 2019 or download latest release here: nvfbcwrp64.dll, nvfbcwrp32.dll. - Backup your
%WINDIR\system32\NvFBC64.dll
and%WINDIR\SysWOW64\NvFBC.dll
files. - Rename file
%WINDIR\system32\NvFBC64.dll
to%WINDIR\system32\NvFBC64_.dll
- Rename file
%WINDIR\SysWOW64\NvFBC.dll
to%WINDIR\SysWOW64\NvFBC_.dll
- Rename
nvfbcwrp64.dll
and put it to%WINDIR\system32\NvFBC64.dll
(on the original place of renamedNvFBC64.dll
library). - Rename
nvfbcwrp32.dll
and put it to%WINDIR\SysWOW64\NvFBC.dll
(on the original place of renamedNvFBC.dll
library). - Restart any applications using this library. That's it.
This procedure has to be repeated after any driver reinstall/update, so keep your copies of nvfbcwrp64.dll
and nvfbcwrp32.dll
files.
Advanced Usage
nvfbcwrp
allows user to capture and replay privateData
used by other NvFBC applications (like GeForce Experience, Shadow Play and so on). It may be useful if built-in privateData
will render invalid for some reason. Wrapper recognizes two environment variables:
NVFBCWRP_DUMP_DIR
- output directory for dumps ofprivateData
sent by applications.NVFBCWRP_PRIVDATA_FILE
- name of file withprivateData
which should be used instead of default built-in vector. These files can be produced as output ofNVFBCWRP_DUMP_DIR
option. If file is not found or can't be loaded, default magic vector is used.
Hence, if default magic baked into nvfbcwrp doesn't work for you, you have to:
- Specify environment variable
NVFBCWRP_DUMP_DIR
in your configuration with path to existing writable directory. Here is a guide about environment variables edit. It's sufficient to add "user" environment variable. - Run some NvFBC application with valid
privateData
keys and initiate recording session. - Grab some output file and specify it's path in
NVFBCWRP_PRIVDATA_FILE
. At this point you can unsetNVFBCWRP_DUMP_DIR
to stopprivateData
capture.
3rd-party software
For some software (e.g Steam) it is also needed to add registry value to use NvFBC, which you can do by running:
reg add "HKEY_LOCAL_MACHINE\SSYSTEM\CurrentControlSet\Services\nvlddmkm" /v NVFBCEnable /d 1 /t REG_DWORD /f
(reboot / driver restart required to take effect)