loader: add loader_is_device_render_capable()
authorLeandro Ribeiro <leandro.ribeiro@collabora.com>
Fri, 22 Sep 2023 01:01:32 +0000 (22:01 -0300)
committerMarge Bot <emma+marge@anholt.net>
Tue, 17 Oct 2023 20:31:13 +0000 (20:31 +0000)
Add helper function to check if a device is render-capable.

Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>

src/loader/loader.c
src/loader/loader.h

index 4abb564..4b8f532 100644 (file)
@@ -192,6 +192,22 @@ loader_open_render_node_platform_device(const char * const drivers[],
    return fd;
 }
 
+bool
+loader_is_device_render_capable(int fd)
+{
+   drmDevicePtr dev_ptr;
+   bool ret;
+
+   if (drmGetDevice2(fd, 0, &dev_ptr) != 0)
+      return false;
+
+   ret = (dev_ptr->available_nodes & (1 << DRM_NODE_RENDER));
+
+   drmFreeDevice(&dev_ptr);
+
+   return ret;
+}
+
 char *
 loader_get_render_node(dev_t device)
 {
index 9c50c91..8cbfb1a 100644 (file)
@@ -50,6 +50,9 @@ int
 loader_open_render_node_platform_device(const char * const drivers[],
                                         unsigned int n_drivers);
 
+bool
+loader_is_device_render_capable(int fd);
+
 char *
 loader_get_render_node(dev_t device);