On 10/06/16 13:30, Frank Binns wrote:
In order to support the WL_bind_wayland_display extension it's necessary to
make use of render nodes as DRI3 doesn't provide a mechanism for authenticating
client opened fds. However, this does not apply when Wayland support isn't
enabled.

Out of curiosity, why don't you want to use render nodes? Are you using a very old kernel?


Signed-off-by: Frank Binns <frank.bi...@imgtec.com>
---
 src/egl/drivers/dri2/platform_x11_dri3.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c 
b/src/egl/drivers/dri2/platform_x11_dri3.c
index 9363a8a..80aac01 100644
--- a/src/egl/drivers/dri2/platform_x11_dri3.c
+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
@@ -442,6 +442,7 @@ dri3_get_device_name(int fd)
 {
    char *ret = NULL;

+#ifdef HAVE_WAYLAND_PLATFORM
    ret = drmGetRenderDeviceNameFromFd(fd);
    if (ret)
       return ret;

I would rather move the #ifdef HAVE_WAYLAND_PLATFORM to after the comment about WL_bind_wayland_display. This way, we keep the same logic of first asking libdrm, and then asking our internal function.

@@ -455,6 +456,7 @@ dri3_get_device_name(int fd)
       _eglLog(_EGL_WARNING, "Render node support not available, falling back to 
dri2");
       _eglLog(_EGL_WARNING, "If you want to force dri3, set EGL_FORCE_DRI3 
environment variable");

Maybe reworking this error message to add that if, as a user, you do not care about wayland, you can compile it out and the error will go away.

    } else
+#endif
       ret = loader_get_device_name_for_fd(fd);

    return ret;


Now, did you actually test this patch? If you were using normal nodes and not render nodes, I wonder how you managed to get any context since no authentication is performed :s

Please provide more context :)

Martin
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to