mirror of
https://repo.dec05eba.com/gpu-screen-recorder
synced 2026-10-28 09:44:02 +00:00
Allow unknown (unsupported) gpu vendors to run
This commit is contained in:
1 parent
fc887bd506
commit
ee2c6ca1e0
5 files changed
+12
-4
No files matched your search
@@ -350,3 +350,5 @@ This appears to be a bug in wlroots or sway. Capturing a window instead fixes th
|
||||
GPU Screen Recorder doesn't have the option to do that yet, but you can change the volume by starting recording and then open `pavucontrol`, go to the `Recording` tab and set the volume there. The system will remember the settings even after reboot, as long as the audio capture options remain the same.
|
||||
## My game and recorded video is stuttering but my frame rate is high
|
||||
This is an issue with linux kernel graphics scheduling when the gpu usage is 99-100%. The only workaround at the moment is to either run X11 with the compositor disabled or on Wayland it may work if you disable the screen tearing option in the desktop environment/compositor display settings and/or enable vsync in the game.
|
||||
## DisplayLink doesn't work
|
||||
GPU Screen Recorder doesn't support DisplayLink at the moment with monitor capture. On X11 it may still work, if it doesn't you can record a window instead (`-w <window_id>`). On Wayland you have to record with desktop portal instead (`-w portal`).
|
||||
+2
-1
@@ -11,7 +11,8 @@ typedef enum {
|
||||
GSR_GPU_VENDOR_INTEL,
|
||||
GSR_GPU_VENDOR_NVIDIA,
|
||||
GSR_GPU_VENDOR_BROADCOM,
|
||||
GSR_GPU_VENDOR_APPLE
|
||||
GSR_GPU_VENDOR_APPLE,
|
||||
GSR_GPU_VENDOR_UNKNOWN,
|
||||
} gsr_gpu_vendor;
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -58,6 +58,9 @@ static void list_gpu_info(gsr_egl *egl) {
|
||||
case GSR_GPU_VENDOR_APPLE:
|
||||
printf("vendor|apple\n");
|
||||
break;
|
||||
case GSR_GPU_VENDOR_UNKNOWN:
|
||||
printf("vendor|unknown\n");
|
||||
break;
|
||||
}
|
||||
printf("card_path|%s\n", egl->card_path);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,8 @@ gsr_video_encoder* create_video_encoder(gsr_egl *egl, const gsr_recorder_setting
|
||||
case GSR_GPU_VENDOR_AMD:
|
||||
case GSR_GPU_VENDOR_INTEL:
|
||||
case GSR_GPU_VENDOR_BROADCOM:
|
||||
case GSR_GPU_VENDOR_APPLE: {
|
||||
case GSR_GPU_VENDOR_APPLE:
|
||||
case GSR_GPU_VENDOR_UNKNOWN: {
|
||||
gsr_video_encoder_vaapi_params params;
|
||||
params.egl = egl;
|
||||
params.color_depth = color_depth;
|
||||
@@ -73,6 +74,7 @@ bool get_supported_video_codecs(gsr_egl *egl, gsr_video_codec video_codec, bool
|
||||
case GSR_GPU_VENDOR_INTEL:
|
||||
case GSR_GPU_VENDOR_BROADCOM:
|
||||
case GSR_GPU_VENDOR_APPLE:
|
||||
case GSR_GPU_VENDOR_UNKNOWN:
|
||||
return gsr_get_supported_video_codecs_vaapi(video_codecs, egl->card_path, cleanup);
|
||||
case GSR_GPU_VENDOR_NVIDIA:
|
||||
return gsr_get_supported_video_codecs_nvenc(video_codecs, egl->card_path, cleanup);
|
||||
|
||||
+2
-2
@@ -498,8 +498,8 @@ bool gl_get_gpu_info(gsr_egl *egl, gsr_gpu_info *info) {
|
||||
else if(strstr(gl_vendor, "Mesa") && gl_renderer && strstr(gl_renderer, "Apple"))
|
||||
info->vendor = GSR_GPU_VENDOR_APPLE;
|
||||
else {
|
||||
gsr_log(GSR_LOG_LEVEL_ERROR, "unknown gpu vendor: %s, renderer: %s", gl_vendor, gl_renderer ? gl_renderer : "Unknown");
|
||||
return false;
|
||||
gsr_log(GSR_LOG_LEVEL_WARNING, "unknown (unsupported) gpu vendor: %s, renderer: %s, recording may not work but continuing anyways", gl_vendor, gl_renderer ? gl_renderer : "Unknown");
|
||||
info->vendor = GSR_GPU_VENDOR_UNKNOWN;
|
||||
}
|
||||
|
||||
if(gl_renderer) {
|
||||
|
||||
Reference in new issue
Block a user