Mesa (main): gbm: Consolidate env var and default backend loops

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


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

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

gbm: Consolidate env var and default backend loops

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 | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/gbm/main/backend.c b/src/gbm/main/backend.c
index 50c874a86f2..6e563dcf239 100644
--- a/src/gbm/main/backend.c
+++ b/src/gbm/main/backend.c
@@ -52,11 +52,11 @@ find_backend(const char *name, int fd)
    struct gbm_device *dev = NULL;
    unsigned i;
 
-   for (i = 0; i < ARRAY_SIZE(backends); ++i) {
-      if (strcmp(backends[i].name, name) == 0) {
-         dev = backends[i].backend->create_device(fd);
-         break;
-      }
+   for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) {
+      if (name && strcmp(backends[i].name, name))
+         continue;
+
+      dev = backends[i].backend->create_device(fd);
    }
 
    return dev;
@@ -65,20 +65,15 @@ find_backend(const char *name, int fd)
 struct gbm_device *
 _gbm_create_device(int fd)
 {
-   const struct backend_desc *backend = NULL;
    struct gbm_device *dev = NULL;
-   unsigned i;
    const char *b;
 
    b = getenv("GBM_BACKEND");
    if (b)
       dev = find_backend(b, fd);
 
-   for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) {
-      backend = &backends[i];
+   if (!dev)
+      dev = find_backend(NULL, fd);
 
-      dev = backend->backend->create_device(fd);
-   }
-   
    return dev;
 }



More information about the mesa-commit mailing list