Hi,
Reading the mailing list about that issue, I get the following remarks:
. WL_bind_wayland_display support is advertised for dri3, but contrary
to all other
advertisers, it doesn't implement the authenticate function. It seems wrong,
and it should do like wayland, where on render nodes it prints a warning
and returns.
. Render-node support becoming quite common, why not just disable the
extension
why they are not available, instead of reverting to the dri2 backend ?
It seems to me this would solve the problem that the current patch
proposal wants to solve.
. If one wants to be perfectionnist, in case render nodes are not
available, but dri2 is, dri3 could still be used,
while a dri2 context would be initialised, just to handle the
authentication.
The proposed patch however doesn't seem very satisfying to me. For the
proposed behaviour, a configure option seems more adapted than a hack
based on whether wayland support is built. I favor however just not
advertising the extension when render-nodes aren't available (+ add a
noop authenticate with warning to have that extension properly implemented).
Yours,
Axel Davy
On 10/06/2016 18:35, 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 device node fds. However, this doesn't apply when Wayland support
is disabled, since the extension is no longer exposed.
Changes since v1:
- Make HAVE_WAYLAND_PLATFORM less inclusive (Martin Peres)
- Enhance DRI3 disabled warning (Martin Peres)
- Update commit message
Signed-off-by: Frank Binns <[email protected]>
---
src/egl/drivers/dri2/platform_x11_dri3.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c
b/src/egl/drivers/dri2/platform_x11_dri3.c
index 9363a8a..6c05956 100644
--- a/src/egl/drivers/dri2/platform_x11_dri3.c
+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
@@ -451,10 +451,13 @@ dri3_get_device_name(int fd)
* support, fall back to dri2. User can override it with environment
* variable if they don't need to use that extension.
*/
+#ifdef HAVE_WAYLAND_PLATFORM
if (getenv("EGL_FORCE_DRI3") == NULL) {
_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");
+ _eglLog(_EGL_WARNING, "Alternatively, you can rebuild Mesa without Wayland
support");
} else
+#endif
ret = loader_get_device_name_for_fd(fd);
return ret;
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev