hyperion.ng icon indicating copy to clipboard operation
hyperion.ng copied to clipboard

NVIDIA NVFBC Grabber

Open BayLee4 opened this issue 3 years ago • 2 comments

Feature request

It would be great to be able to use NVFBC to capture the screen.

What problem does this feature solve?

Huge performance benefits, and almost completely solve microstuttering

How should this be implemented in your opinion?

Like any other grabber, and maybe in a future revision add an option to chose between direct-capture (works with VRR) or not (does not work with VRR, but is able to downscale the grabbed frame, allowing to further enhance performance). The initial implementation should probably just use direct-capture, in order to be as simple as possible.

Are you willing to work on this yourself?

Yes, and any help like having a grabber mock implementation would speed up the development a lot

BayLee4 avatar Dec 25 '22 14:12 BayLee4

Hey @BayLee4

That sound great that you are volunteering to contribute with an additional screen grabber. Are you looking for a Linux or Windows implementation? I am just asking, as the Windows support seems having to be deprecated, but a native API is suggested.

To start with a template grabber, you might have a look at the Qt one (./libsrc/grabber/qt/). Unfortunately, the current screen grabbers are not multithreaded, but the video grabbers allow for multiple encoder threads (./libsrc/grabber/video/). Maybe a good time to refactor the grabbers for multi-threading consistently... but let us first have the capabilities running.

Suggest you pm me via the Hyperion discord channel, if you have further questions.

Lord-Grey avatar Dec 29 '22 16:12 Lord-Grey

Hello @Lord-Grey! I'm looking for a Linux implementation, because as you pointed out Nvidia themselves recommend using other means of capture for Windows, like the DDupl API.

I'll have a look at the Qt implementation, #1422 will also come handy to have an overview of the required changes. I'll try to set up a dev environment in the following weeks, I joined the Discord channel in the meantime, thank you!

BayLee4 avatar Jan 04 '23 13:01 BayLee4