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@gmail.com>
Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de> (v1)
Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v1)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Emil Velikov 2019-05-16 18:01:39 +01:00 committed by Marek Olšák
parent 2282ec0ad6
commit 2f11957532

View file

@ -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);