[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,
>>  				 &registry_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