From f38ed36271ab417fbff005452e721a57c53641fe Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 9 Jul 2023 23:30:38 +0200 Subject: Test fix using correct gpu when multiple gpus are connected --- src/utils.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/utils.c b/src/utils.c index bee57f3..0c57a4f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -4,6 +4,8 @@ #include #include #include +#include +#include double clock_get_monotonic_seconds(void) { struct timespec ts; @@ -109,7 +111,19 @@ bool gl_get_gpu_info(Display *dpy, gsr_gpu_info *info) { bool gsr_get_valid_card_path(char *output) { for(int i = 0; i < 10; ++i) { sprintf(output, "/dev/dri/card%d", i); - if(access(output, F_OK) == 0) + int fd = open(output, O_RDONLY); + if(fd == -1) + continue; + + bool is_display_card = false; + drmModeResPtr resources = drmModeGetResources(fd); + if(resources) { + is_display_card = true; + drmModeFreeResources(resources); + } + close(fd); + + if(is_display_card) return true; } return false; -- cgit v1.2.3