aboutsummaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2023-07-26 02:31:12 +0200
committerdec05eba <dec05eba@protonmail.com>2023-07-26 02:31:12 +0200
commit4ad0118f359d954f9e5276ca6bf29a51e6dfa559 (patch)
tree8fdbef66cceedddff5425be79690e83bf9df96c9 /src/utils.c
parentbee99a69e39a0061790ffddbb84c991988681db5 (diff)
High priority egl context if possible, use eglBindAPI(EGL_OPENGL_ES_API)
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/utils.c b/src/utils.c
index 88893ac..16e928a 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -210,6 +210,7 @@ bool get_monitor_by_name(void *connection, gsr_connection_type connection_type,
}
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);
@@ -222,10 +223,14 @@ bool gl_get_gpu_info(gsr_egl *egl, gsr_gpu_info *info) {
goto end;
}
- if(gl_renderer && strstr((const char*)gl_renderer, "llvmpipe")) {
- fprintf(stderr, "gsr error: your opengl environment is not properly setup. It's using llvmpipe (cpu fallback) for opengl instead of your graphics card\n");
- supported = false;
- goto end;
+ if(gl_renderer) {
+ for(int i = 0; software_renderers[i]; ++i) {
+ if(strstr((const char*)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;
+ }
+ }
}
if(strstr((const char*)gl_vendor, "AMD"))