Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libnvidia-egl-wayland.so doesn't export wl_eglstream_controller_interface anymore #14

Closed
pp3345 opened this issue Oct 14, 2018 · 3 comments

Comments

@pp3345
Copy link

pp3345 commented Oct 14, 2018

I might be missing something, but it seems that after 1fdde29, libnvidia-egl-wayland.so isn't exporting the wl_eglstream_controller_interface symbol anymore. mutter looks for this symbol in https://gitlab.gnome.org/GNOME/mutter/blob/master/src/wayland/meta-wayland-egl-stream.c#L91. Using a branch that has all commits up to 1676d1d but excluding the meson fixes (newer commits cherry-picked), things work fine.

This short program may be used for testing (use -ldl):

#include <dlfcn.h>
#include <stdio.h>

void main() {
    void *lib = dlopen("libnvidia-egl-wayland.so.1", RTLD_NOW);
    if(lib == NULL) {
        printf("lib not found\n");
        return;
    }

    void *if_ptr = dlsym(lib, "wl_eglstream_controller_interface");
    if(if_ptr == NULL) {
        printf("wl_eglstream_controller_interface not found\n");
        return;
    }

    printf("ok\n");
}
fafryd1125 added a commit to fafryd1125/egl-wayland that referenced this issue Oct 14, 2018
The option "code" was deprecated in favour of "public-code" with a
warning message produced to guide people.

Fixes: NVIDIA#14
@fafryd1125
Copy link
Contributor

mvicomoya pushed a commit that referenced this issue Oct 15, 2018
The option "code" was deprecated in favour of "public-code" with a
warning message produced to guide people.

Fixes: #14
@evelikov
Copy link

From my chat with the Wayland people, their recommendation is that applications should generate/use the the interface locally.

The code in xserver is doing this exact thing (search for wayland-eglstream-protocols).

Perhaps mutter should be fixed and the "fix" reverted?

@mvicomoya
Copy link

From my chat with the Wayland people, their recommendation is that applications should generate/use the the interface locally.

The code in xserver is doing this exact thing (search for wayland-eglstream-protocols).

Perhaps mutter should be fixed and the "fix" reverted?

Actually, wayland-eglstream interfaces should be private, while wayland-eglstream-controller ones should be public. I'll prepare a patch to fix that both with autotools and meson.

We didn't want to make mutter depend on libnvidia-egl-wayland.so, so we deliberately made it dlsym() the required interface. If not found, mutter just keeps going as usual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants