mirror of
https://repo.dec05eba.com/gpu-screen-recorder
synced 2026-03-31 09:07:13 +09:00
Test broadcom (raspberry pi) support
This commit is contained in:
@@ -185,3 +185,5 @@ To fix this you can either record the video in .mkv format or constant frame rat
|
||||
## Colors look incorrect when recording HDR (with hevc_hdr/av1_hdr) or using an ICC profile
|
||||
KDE Plasma version 6.2 broke HDR and ICC profiles for screen recorders. This was changed in KDE plasma version 6.3 and recording HDR works now, as long as you set HDR brightness to 100% (which means setting "Maximum SDR Brightness" in KDE plasma display settings to 203) and set color accuracy to "Prefer color accuracy". If you want to convert HDR to SDR then record with desktop portal option (`-w portal`) instead.
|
||||
I don't know how well recording HDR works in wayland compositors other than KDE plasma.
|
||||
## GPU Screen Recorder starts lagging after 30-40 minutes when launching GPU Screen Recorder from steam command launcher
|
||||
This is a [steam issue](https://github.com/ValveSoftware/steam-for-linux/issues/11446). Prepend the gpu-screen-recorder command with `LD_PREFIX=""`, for example `LD_PREFIX="" gpu-screen-recorder -w screen -o video.mp4`.
|
||||
@@ -6,7 +6,8 @@
|
||||
typedef enum {
|
||||
GSR_GPU_VENDOR_AMD,
|
||||
GSR_GPU_VENDOR_INTEL,
|
||||
GSR_GPU_VENDOR_NVIDIA
|
||||
GSR_GPU_VENDOR_NVIDIA,
|
||||
GSR_GPU_VENDOR_BROADCOM
|
||||
} gsr_gpu_vendor;
|
||||
|
||||
typedef struct {
|
||||
|
||||
10
src/main.cpp
10
src/main.cpp
@@ -1922,7 +1922,8 @@ static gsr_video_encoder* create_video_encoder(gsr_egl *egl, bool overclock, gsr
|
||||
|
||||
switch(egl->gpu_info.vendor) {
|
||||
case GSR_GPU_VENDOR_AMD:
|
||||
case GSR_GPU_VENDOR_INTEL: {
|
||||
case GSR_GPU_VENDOR_INTEL:
|
||||
case GSR_GPU_VENDOR_BROADCOM: {
|
||||
gsr_video_encoder_vaapi_params params;
|
||||
params.egl = egl;
|
||||
params.color_depth = color_depth;
|
||||
@@ -1956,6 +1957,7 @@ static bool get_supported_video_codecs(gsr_egl *egl, VideoCodec video_codec, boo
|
||||
switch(egl->gpu_info.vendor) {
|
||||
case GSR_GPU_VENDOR_AMD:
|
||||
case GSR_GPU_VENDOR_INTEL:
|
||||
case GSR_GPU_VENDOR_BROADCOM:
|
||||
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, cleanup);
|
||||
@@ -2029,6 +2031,9 @@ static void list_gpu_info(gsr_egl *egl) {
|
||||
case GSR_GPU_VENDOR_NVIDIA:
|
||||
printf("vendor|nvidia\n");
|
||||
break;
|
||||
case GSR_GPU_VENDOR_BROADCOM:
|
||||
printf("vendor|broadcom\n");
|
||||
break;
|
||||
}
|
||||
printf("card_path|%s\n", egl->card_path);
|
||||
}
|
||||
@@ -2369,6 +2374,9 @@ static bool gpu_vendor_from_string(const char *vendor_str, gsr_gpu_vendor *vendo
|
||||
} else if(strcmp(vendor_str, "nvidia") == 0) {
|
||||
*vendor = GSR_GPU_VENDOR_NVIDIA;
|
||||
return true;
|
||||
} else if(strcmp(vendor_str, "broadcom") == 0) {
|
||||
*vendor = GSR_GPU_VENDOR_BROADCOM;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -396,6 +396,8 @@ bool gl_get_gpu_info(gsr_egl *egl, gsr_gpu_info *info) {
|
||||
info->vendor = GSR_GPU_VENDOR_INTEL;
|
||||
else if(strstr((const char*)gl_vendor, "NVIDIA"))
|
||||
info->vendor = GSR_GPU_VENDOR_NVIDIA;
|
||||
else if(strstr((const char*)gl_vendor, "Broadcom"))
|
||||
info->vendor = GSR_GPU_VENDOR_BROADCOM;
|
||||
else {
|
||||
fprintf(stderr, "gsr error: unknown gpu vendor: %s\n", gl_vendor);
|
||||
supported = false;
|
||||
|
||||
Reference in New Issue
Block a user