Mesa (master): egl: keep the software device at the end of the list

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 5 17:35:55 UTC 2019


Module: Mesa
Branch: master
Commit: 2f1195753282d1176edd7b9772aad17eced24dd8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f1195753282d1176edd7b9772aad17eced24dd8

Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu May 16 18:01:39 2019 +0100

egl: keep the software device at the end of the list

By default, the user is likely to pick the first device so it should
not be the least performant (aka software) one.

v2: Drop odd comment (Marek)

Suggested-by: Marek Olšák <maraeo at gmail.com>
Reviewed-by: Mathias Fröhlich <Mathias.Froehlich at web.de> (v1)
Reviewed-by: Marek Olšák <marek.olsak at amd.com> (v1)
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Signed-off-by: Marek Olšák <marek.olsak at amd.com>

---

 src/egl/main/egldevice.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/egl/main/egldevice.c b/src/egl/main/egldevice.c
index c5c9a21273a..82af1f47fed 100644
--- a/src/egl/main/egldevice.c
+++ b/src/egl/main/egldevice.c
@@ -293,13 +293,25 @@ _eglQueryDevicesEXT(EGLint max_devices,
       goto out;
    }
 
+   /* Push the first device (the software one) to the end of the list.
+    * Sending it to the user only if they've requested the full list.
+    *
+    * By default, the user is likely to pick the first device so having the
+    * software (aka least performant) one is not a good idea.
+    */
    *num_devices = MIN2(num_devs, max_devices);
 
-   for (i = 0, dev = devs; i < *num_devices; i++) {
+   for (i = 0, dev = devs->Next; dev && i < max_devices; i++) {
       devices[i] = dev;
       dev = dev->Next;
    }
 
+   /* User requested the full device list, add the sofware device. */
+   if (max_devices >= num_devs) {
+      assert(_eglDeviceSupports(devs, _EGL_DEVICE_SOFTWARE));
+      devices[num_devs - 1] = devs;
+   }
+
 out:
    mtx_unlock(_eglGlobal.Mutex);
 




More information about the mesa-commit mailing list