Mesa (main): gbm: Create device directly in find_backend

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 6 17:27:20 UTC 2021


Module: Mesa
Branch: main
Commit: 00b2a45edf69833c4dcc6726e6b3e155ec6cc077
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=00b2a45edf69833c4dcc6726e6b3e155ec6cc077

Author: James Jones <jajones at nvidia.com>
Date:   Fri Dec 13 16:14:41 2019 -0800

gbm: Create device directly in find_backend

Signed-off-by: James Jones <jajones at nvidia.com>
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902>

---

 src/gbm/main/backend.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/gbm/main/backend.c b/src/gbm/main/backend.c
index 029a177fe64..50c874a86f2 100644
--- a/src/gbm/main/backend.c
+++ b/src/gbm/main/backend.c
@@ -46,20 +46,20 @@ static const struct backend_desc backends[] = {
    { "gbm_dri.so", &gbm_dri_backend },
 };
 
-static const struct backend_desc *
-find_backend(const char *name)
+static struct gbm_device *
+find_backend(const char *name, int fd)
 {
-   const struct backend_desc *backend = NULL;
+   struct gbm_device *dev = NULL;
    unsigned i;
 
    for (i = 0; i < ARRAY_SIZE(backends); ++i) {
       if (strcmp(backends[i].name, name) == 0) {
-         backend = &backends[i];
+         dev = backends[i].backend->create_device(fd);
          break;
       }
    }
 
-   return backend;
+   return dev;
 }
 
 struct gbm_device *
@@ -72,10 +72,7 @@ _gbm_create_device(int fd)
 
    b = getenv("GBM_BACKEND");
    if (b)
-      backend = find_backend(b);
-
-   if (backend)
-      dev = backend->backend->create_device(fd);
+      dev = find_backend(b, fd);
 
    for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) {
       backend = &backends[i];



More information about the mesa-commit mailing list