[PATCH weston v2] simple-dmabuf-drm: fix build with --disable-egl
Emilio Pozuelo Monfort
emilio.pozuelo at collabora.co.uk
Tue Jul 10 15:40:09 UTC 2018
On 10/07/18 15:16, Pekka Paalanen wrote:
> On Mon, 9 Jul 2018 17:38:49 +0200
> Emilio Pozuelo Monfort <pochu27 at gmail.com> wrote:
>
>> This code calls into EGL to see if the dmabuf import modifiers
>> extension is available, and if not it assumes XRGB8888 is supported.
>>
>> Rather than disabling this client doesn't get build if one disables
>> EGL, we can just remove this and stop lying to ourselves.
>>
>> Signed-off-by: Emilio Pozuelo Monfort <emilio.pozuelo at collabora.co.uk>
>> ---
>>
>> Alright, this removes this check entirely, which means the client will
>> fail if the extension is not available. This is just a test client, so
>> it's not the end of the world if that combination is tested.
>>
>> clients/simple-dmabuf-drm.c | 11 -----------
>> 1 file changed, 11 deletions(-)
>>
>> diff --git a/clients/simple-dmabuf-drm.c b/clients/simple-dmabuf-drm.c
>> index fcab30e5..2a21fe51 100644
>> --- a/clients/simple-dmabuf-drm.c
>> +++ b/clients/simple-dmabuf-drm.c
>> @@ -57,7 +57,6 @@
>>
>> #include <wayland-client.h>
>> #include "shared/zalloc.h"
>> -#include "shared/platform.h"
>> #include "xdg-shell-unstable-v6-client-protocol.h"
>> #include "fullscreen-shell-unstable-v1-client-protocol.h"
>> #include "linux-dmabuf-unstable-v1-client-protocol.h"
>> @@ -850,7 +849,6 @@ static struct display *
>> create_display(int opts, int format)
>> {
>> struct display *display;
>> - const char *extensions;
>>
>> display = malloc(sizeof *display);
>> if (display == NULL) {
>> @@ -863,15 +861,6 @@ create_display(int opts, int format)
>> display->req_dmabuf_immediate = opts & OPT_IMMEDIATE;
>> display->req_dmabuf_modifiers = (format == DRM_FORMAT_NV12);
>>
>> - /*
>> - * hard code format if the platform egl doesn't support format
>> - * querying / advertising.
>> - */
>> - extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
>> - if (extensions && !weston_check_egl_extension(extensions,
>> - "EGL_EXT_image_dma_buf_import_modifiers"))
>> - display->xrgb8888_format_found = 1;
>> -
>> display->registry = wl_display_get_registry(display->display);
>> wl_registry_add_listener(display->registry,
>> ®istry_listener, display);
>
> Hi Emilio,
>
> while this change is good, I found a couple more things that this
> exposes.
>
> The app still gets linked to libEGL and libgbm when it should not.
>
> The code you remove here was hiding a bug where xrgb8888_format_found
> was not set if the dmabuf interface was negotiated to version 2 or 1.
> The handler dmabuf_format() has no code. Another patch to fix this
> would be nice.
Yes, I have just found some problems when testing this patch for another change.
So let's not apply this for now, I will see what's going on and send an updated one.
Cheers,
Emilio
More information about the wayland-devel
mailing list