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>
This commit is contained in:
parent
a87096b79e
commit
ac839bbf79
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue