aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGurchetan Singh <[email protected]>2019-03-13 10:59:59 -0700
committerGurchetan Singh <[email protected]>2019-03-27 17:26:21 +0000
commita87096b79e649ab554e802cc5cb19817b26e9ad6 (patch)
tree40b7a3178181418df857e564752486380c2c7933
parentd4e7982b6ef494775556de333f8ad00d082d748b (diff)
egl/android: use software rendering when appropriate
Now the init logic fallbacks to or forces software rendering. v2: simplify flow (@eric) Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
-rw-r--r--src/egl/drivers/dri2/platform_android.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
index b6d58338d46..e25a6f73ed8 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -1545,14 +1545,11 @@ EGLBoolean
dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *disp)
{
_EGLDevice *dev;
+ bool device_opened = false;
struct dri2_egl_display *dri2_dpy;
const char *err;
int ret;
- /* Not supported yet */
- if (disp->Options.ForceSoftware)
- return EGL_FALSE;
-
dri2_dpy = calloc(1, sizeof(*dri2_dpy));
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
@@ -1566,8 +1563,12 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *disp)
}
disp->DriverData = (void *) dri2_dpy;
+ if (!disp->Options.ForceSoftware)
+ device_opened = droid_open_device(disp, false);
+ if (!device_opened)
+ device_opened = droid_open_device(disp, true);
- if (!droid_open_device(disp, false)) {
+ if (!device_opened) {
err = "DRI2: failed to open device";
goto cleanup;
}