summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2019-03-26 19:20:13 -0700
committerGurchetan Singh <gurchetansingh@chromium.org>2019-03-27 17:26:21 +0000
commitac839bbf79d9ddcc11669bd9d9f19ac62a0366c0 (patch)
tree630f70fcbe8720394acf891ddb74a09992da658a
parenta87096b79e649ab554e802cc5cb19817b26e9ad6 (diff)
egl/android: chose node type based on swrast and preprocessor flags
kms_swrast can work with primary nodes out of the box, but also with rendernodes if the build environment specifies the EGL_FORCE_RENDERNODE flag. Suggested-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
-rw-r--r--src/egl/drivers/dri2/platform_android.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
index e25a6f73ed8..e9ea9e6002b 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -1480,6 +1480,12 @@ droid_open_device(_EGLDisplay *disp, bool swrast)
char *vendor_name = NULL;
char vendor_buf[PROPERTY_VALUE_MAX];
+#ifdef EGL_FORCE_RENDERNODE
+ const unsigned node_type = DRM_NODE_RENDER;
+#else
+ const unsigned node_type = swrast ? DRM_NODE_PRIMARY : DRM_NODE_RENDER;
+#endif
+
if (property_get("drm.gpu.vendor_name", vendor_buf, NULL) > 0)
vendor_name = vendor_buf;
@@ -1490,13 +1496,13 @@ droid_open_device(_EGLDisplay *disp, bool swrast)
for (int i = 0; i < num_devices; i++) {
device = devices[i];
- if (!(device->available_nodes & (1 << DRM_NODE_RENDER)))
+ if (!(device->available_nodes & (1 << node_type)))
continue;
- dri2_dpy->fd = loader_open_device(device->nodes[DRM_NODE_RENDER]);
+ dri2_dpy->fd = loader_open_device(device->nodes[node_type]);
if (dri2_dpy->fd < 0) {
_eglLog(_EGL_WARNING, "%s() Failed to open DRM device %s",
- __func__, device->nodes[DRM_NODE_RENDER]);
+ __func__, device->nodes[node_type]);
continue;
}