aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils.c
diff options
context:
space:
mode:
authorMaria Lisina <sekoohaka.sarisan@gmail.com>2026-07-21 18:05:34 +0300
committerMaria Lisina <sekoohaka.sarisan@gmail.com>2026-07-21 18:05:34 +0300
commit7025c8be1fe227ea3ab36bc8566c787d51919b1f (patch)
tree5c7a41c2d47f4a7bd7b9b97101d82fa56a50b761 /src/utils.c
parent5b6633bebe2610b110fdbb5f756279dfa68ca0f2 (diff)
parent7baf5e25f9ea9adc3a685f6512a516b25e61dfeb (diff)
Merge tag '5.15.2' of https://repo.dec05eba.com/gpu-screen-recorder into debian
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/utils.c b/src/utils.c
index 9010064..31853e2 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -358,53 +358,48 @@ bool drm_monitor_get_display_server_data(const gsr_window *window, const gsr_mon
bool gl_get_gpu_info(gsr_egl *egl, gsr_gpu_info *info) {
const char *software_renderers[] = { "llvmpipe", "SWR", "softpipe", NULL };
- bool supported = true;
- const unsigned char *gl_vendor = egl->glGetString(GL_VENDOR);
- const unsigned char *gl_renderer = egl->glGetString(GL_RENDERER);
+ const char *gl_vendor = (const char*)egl->glGetString(GL_VENDOR);
+ const char *gl_renderer = (const char*)egl->glGetString(GL_RENDERER);
info->gpu_version = 0;
info->is_steam_deck = false;
if(!gl_vendor) {
fprintf(stderr, "gsr error: failed to get gpu vendor\n");
- supported = false;
- goto end;
+ return false;
}
if(gl_renderer) {
for(int i = 0; software_renderers[i]; ++i) {
- if(strstr((const char*)gl_renderer, software_renderers[i])) {
+ if(strstr(gl_renderer, software_renderers[i])) {
fprintf(stderr, "gsr error: your opengl environment is not properly setup. It's using %s (software rendering) for opengl instead of your graphics card. Please make sure your graphics driver is properly installed\n", software_renderers[i]);
- supported = false;
- goto end;
+ return false;
}
}
}
- if(strstr((const char*)gl_vendor, "AMD"))
+ if(strstr(gl_vendor, "AMD"))
info->vendor = GSR_GPU_VENDOR_AMD;
- else if(strstr((const char*)gl_vendor, "Mesa") && gl_renderer && strstr((const char*)gl_renderer, "AMD"))
+ else if(strstr(gl_vendor, "Mesa") && gl_renderer && strstr(gl_renderer, "AMD"))
info->vendor = GSR_GPU_VENDOR_AMD;
- else if(strstr((const char*)gl_vendor, "Intel"))
+ else if(strstr(gl_vendor, "Intel"))
info->vendor = GSR_GPU_VENDOR_INTEL;
- else if(strstr((const char*)gl_vendor, "NVIDIA"))
+ else if(strstr(gl_vendor, "NVIDIA"))
info->vendor = GSR_GPU_VENDOR_NVIDIA;
- else if(strstr((const char*)gl_vendor, "Broadcom"))
+ else if(strstr(gl_vendor, "Broadcom"))
info->vendor = GSR_GPU_VENDOR_BROADCOM;
else {
fprintf(stderr, "gsr error: unknown gpu vendor: %s\n", gl_vendor);
- supported = false;
- goto end;
+ return false;
}
if(gl_renderer) {
if(info->vendor == GSR_GPU_VENDOR_NVIDIA)
- sscanf((const char*)gl_renderer, "%*s %*s %*s %d", &info->gpu_version);
- info->is_steam_deck = strstr((const char*)gl_renderer, "vangogh") != NULL;
+ sscanf(gl_renderer, "%*s %*s %*s %d", &info->gpu_version);
+ info->is_steam_deck = strstr(gl_renderer, "vangogh") != NULL;
}
- end:
- return supported;
+ return true;
}
bool try_card_has_valid_plane(const char *card_path) {