aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-12-01 16:00:12 +0100
committerSimon Ser <contact@emersion.fr>2021-01-16 08:57:42 +0100
commita53ab146feaf01a93bf5a4e38d99d84d8858591b (patch)
tree5e7cb89a4b20da830d805c3ccca7c4bc15f23e30
parent87293d1b15f539aae59219fa1e1b367bf55382dc (diff)
backend: add get_drm_fd to interface
This function allows backends to return the DRM FD they are using. This will allow the allocator and the renderer to use the right device.
-rw-r--r--backend/backend.c8
-rw-r--r--include/backend/backend.h8
-rw-r--r--include/wlr/backend/interface.h1
3 files changed, 17 insertions, 0 deletions
diff --git a/backend/backend.c b/backend/backend.c
index 7e299f9d..245bd429 100644
--- a/backend/backend.c
+++ b/backend/backend.c
@@ -16,6 +16,7 @@
#include <wlr/backend/wayland.h>
#include <wlr/config.h>
#include <wlr/util/log.h>
+#include "backend/backend.h"
#include "backend/multi.h"
#if WLR_HAS_X11_BACKEND
@@ -71,6 +72,13 @@ clockid_t wlr_backend_get_presentation_clock(struct wlr_backend *backend) {
return CLOCK_MONOTONIC;
}
+int backend_get_drm_fd(struct wlr_backend *backend) {
+ if (!backend->impl->get_drm_fd) {
+ return -1;
+ }
+ return backend->impl->get_drm_fd(backend);
+}
+
static size_t parse_outputs_env(const char *name) {
const char *outputs_str = getenv(name);
if (outputs_str == NULL) {
diff --git a/include/backend/backend.h b/include/backend/backend.h
new file mode 100644
index 00000000..f920cc9f
--- /dev/null
+++ b/include/backend/backend.h
@@ -0,0 +1,8 @@
+#ifndef BACKEND_H
+#define BACKEND_H
+
+#include <wlr/backend.h>
+
+int backend_get_drm_fd(struct wlr_backend *backend);
+
+#endif
diff --git a/include/wlr/backend/interface.h b/include/wlr/backend/interface.h
index 8782ae0b..3426bb45 100644
--- a/include/wlr/backend/interface.h
+++ b/include/wlr/backend/interface.h
@@ -19,6 +19,7 @@ struct wlr_backend_impl {
struct wlr_renderer *(*get_renderer)(struct wlr_backend *backend);
struct wlr_session *(*get_session)(struct wlr_backend *backend);
clockid_t (*get_presentation_clock)(struct wlr_backend *backend);
+ int (*get_drm_fd)(struct wlr_backend *backend);
};
/**