From 77aae06e6ce61ed2e8d67870195af6b892fd7529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Wed, 19 Jun 2024 16:20:35 +0900 Subject: =?UTF-8?q?FreeBSD:=20GPU=E6=83=85=E5=A0=B1=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gpu.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/gpu.c b/src/gpu.c index 7caa0dc..3603861 100644 --- a/src/gpu.c +++ b/src/gpu.c @@ -6,14 +6,6 @@ #include const char *run_gpu_command(const char *command) { - if ( - access("/bin/glxinfo", F_OK) == -1 && - access("/usr/bin/glxinfo", F_OK) == -1 && - access("/usr/local/bin/glxinfo", F_OK) == -1 && - access("/usr/X11R6/bin/glxinfo", F_OK) == -1 && - access("/usr/X11R7/bin/glxinfo", F_OK) == -1 && - access("/usr/pkg/bin/glxinfo", F_OK) == -1 - ) return NULL; char buf[128]; char *out = NULL; size_t outsize = 0; @@ -49,7 +41,22 @@ const char *run_gpu_command(const char *command) { } const char *display_gpu() { +#if defined(__FreeBSD__) || defined(__DragonFly__) + return run_gpu_command("pciconf -lv | grep -B 4 -F \"VGA\" | " + "grep -F \"device\" | sed 's/^.* device//' | " + "sed \"s/^.* '//\" | sed \"s/'//\" | tail -1 | " + "sed 's/ Core Processor Integrated Graphics Controller//'"); +#else + if ( + access("/bin/glxinfo", F_OK) == -1 && + access("/usr/bin/glxinfo", F_OK) == -1 && + access("/usr/local/bin/glxinfo", F_OK) == -1 && + access("/usr/X11R6/bin/glxinfo", F_OK) == -1 && + access("/usr/X11R7/bin/glxinfo", F_OK) == -1 && + access("/usr/pkg/bin/glxinfo", F_OK) == -1 + ) return NULL; return run_gpu_command("glxinfo -B | grep -F 'OpenGL renderer string' | " "sed 's/OpenGL renderer string: //' | sed 's/Mesa //' | " "sed 's/DRI //' | sed 's/(R)//' | sed 's/(.*$//'"); +#endif } -- cgit v1.2.3