diff options
author | Gurchetan Singh <[email protected]> | 2019-03-26 19:20:13 -0700 |
---|---|---|
committer | Gurchetan Singh <[email protected]> | 2019-03-27 17:26:21 +0000 |
commit | ac839bbf79d9ddcc11669bd9d9f19ac62a0366c0 (patch) | |
tree | 630f70fcbe8720394acf891ddb74a09992da658a | |
parent | a87096b79e649ab554e802cc5cb19817b26e9ad6 (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 <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
-rw-r--r-- | src/egl/drivers/dri2/platform_android.c | 12 |
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; } |