diff options
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | src/capture/kms_cuda.c | 1 | ||||
-rw-r--r-- | src/capture/kms_vaapi.c | 1 |
3 files changed, 3 insertions, 0 deletions
@@ -30,6 +30,7 @@ For you as a user this only means that if you installed GPU Screen Recorder as a On a system with a i5 4690k CPU and a GTX 1080 GPU:\ When recording Legend of Zelda Breath of the Wild at 4k, fps drops from 30 to 7 when using OBS Studio + nvenc, however when using this screen recorder the fps remains at 30.\ When recording GTA V at 4k on highest settings, fps drops from 60 to 23 when using obs-nvfbc + nvenc, however when using this screen recorder the fps only drops to 58. The quality is also much better when using gpu screen recorder.\ +GPU Screen Recorder also produces much smoother videos than OBS when GPU utilization is close to 100%, see comparison here: [https://www.youtube.com/watch?v=zfj4sNVLLLg](https://www.youtube.com/watch?v=zfj4sNVLLLg).\ It is recommended to save the video to a SSD because of the large file size, which a slow HDD might not be fast enough to handle. Using variable framerate mode (-fm vfr) which is the default is also recommended as this reduces encoding load. Ultra quality is also overkill most of the time, very high (the default) or lower quality is usually enough. ## Note about optimal performance on NVIDIA NVIDIA driver has a "feature" (read: bug) where it will downclock memory transfer rate when a program uses cuda (or nvenc, which uses cuda), such as GPU Screen Recorder. To work around this bug, GPU Screen Recorder can overclock your GPU memory transfer rate to it's normal optimal level.\ diff --git a/src/capture/kms_cuda.c b/src/capture/kms_cuda.c index b3e8361..9ef25f8 100644 --- a/src/capture/kms_cuda.c +++ b/src/capture/kms_cuda.c @@ -457,6 +457,7 @@ static int gsr_capture_kms_cuda_capture(gsr_capture *cap, AVFrame *frame) { (void)frame; gsr_capture_kms_cuda *cap_kms = cap->priv; + cap_kms->params.egl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f); cap_kms->params.egl->glClear(GL_COLOR_BUFFER_BIT); for(int i = 0; i < cap_kms->kms_response.num_fds; ++i) { diff --git a/src/capture/kms_vaapi.c b/src/capture/kms_vaapi.c index d86389c..18a8c2d 100644 --- a/src/capture/kms_vaapi.c +++ b/src/capture/kms_vaapi.c @@ -456,6 +456,7 @@ static vec2i swap_vec2i(vec2i value) { static int gsr_capture_kms_vaapi_capture(gsr_capture *cap, AVFrame *frame) { gsr_capture_kms_vaapi *cap_kms = cap->priv; + cap_kms->params.egl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f); cap_kms->params.egl->glClear(GL_COLOR_BUFFER_BIT); for(int i = 0; i < cap_kms->kms_response.num_fds; ++i) { |