All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [v3,0/2] package/efl: enable libdrm support
@ 2016-11-20 18:59 pierre floury
  2016-11-20 18:59 ` [Buildroot] [v3,1/2] " pierre floury
  2016-11-20 18:59 ` [Buildroot] [v3,2/2] package/efl: add Evas GL DRM Engine support pierre floury
  0 siblings, 2 replies; 8+ messages in thread
From: pierre floury @ 2016-11-20 18:59 UTC (permalink / raw)
  To: buildroot

From: Pierre Floury <devpfl@gmail.com>

the folowing patches are the work done by Romain Naour
to add drm and gl-drm support to package/efl

cf http://lists.busybox.net/pipermail/buildroot/2016-September/172422.html

I just rebase the v2 patches on top of the master

Romain Naour (2):
  package/efl: enable libdrm support
  package/efl: add Evas GL DRM Engine support

 package/efl/Config.in | 13 +++++++++++++
 package/efl/efl.mk    | 17 ++++++++++++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [v3,1/2] package/efl: enable libdrm support
  2016-11-20 18:59 [Buildroot] [v3,0/2] package/efl: enable libdrm support pierre floury
@ 2016-11-20 18:59 ` pierre floury
  2016-11-20 19:26   ` Romain Naour
  2016-11-20 18:59 ` [Buildroot] [v3,2/2] package/efl: add Evas GL DRM Engine support pierre floury
  1 sibling, 1 reply; 8+ messages in thread
From: pierre floury @ 2016-11-20 18:59 UTC (permalink / raw)
  To: buildroot

From: Romain Naour <romain.naour@gmail.com>

add drm support to efl

drm can be used without compositor, just like it was with
the framebuffer for standalone applications

As stated in configure.ac, libdrm support needs libdrm, elput,
libxkbcommon and libgbm.

libgbm is only provided by mesa3d package when OpenGL EGL support is
enabled, so add a direct dependency on mesa3d.

Rework the libxkbcommon dependency since it's now required for
elput and libdrm support.

[1] https://www.enlightenment.org/about-wayland

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Pierre Floury <devpfl@gmail.com>

---
libgdm can be found as a standalone library on github [2] but it seems
not very active. I prefer to rely on Mesa3d version.
[2] https://github.com/robclark/libgbm

v2: use "select" BR2_PACKAGE_EFL_ELPUT instead of "depends on" (ThomasP)
    fix commit log after 373c24cd1bb98a8b826b92034f7cb39780719625 (ThomasP)
---
v3: rebase v2 on top of master
    no wayland reference anymore
    Signed-off-by: Pierre Floury <devpfl@gmail.com>
---
 package/efl/Config.in | 13 +++++++++++++
 package/efl/efl.mk    | 11 ++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/package/efl/Config.in b/package/efl/Config.in
index 69b0dcf..58e3558 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -192,6 +192,19 @@ config BR2_PACKAGE_EFL_ELPUT
 	  ecore_drm, etc) to handle interfacing with libinput without
 	  having to duplicate the code in each subsystem.
 
+config BR2_PACKAGE_EFL_DRM
+	bool "Evas DRM Engine"
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
+	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
+	select BR2_PACKAGE_EFL_ELPUT
+	select BR2_PACKAGE_LIBDRM
+	select BR2_PACKAGE_LIBXKBCOMMON
+	help
+	  This option enable building support for the Evas DRM Engine.
+
+comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
+
 comment "libevas loaders"
 
 config BR2_PACKAGE_EFL_PNG
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index 6af7aa0..d6b2bf5 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -148,7 +148,7 @@ endif # BR2_PACKAGE_OPENSSL
 
 ifeq ($(BR2_PACKAGE_EFL_ELPUT),y)
 EFL_CONF_OPTS += --enable-elput
-EFL_DEPENDENCIES += libinput libxkbcommon
+EFL_DEPENDENCIES += libinput
 else
 EFL_CONF_OPTS += --disable-elput
 endif
@@ -192,6 +192,15 @@ else ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y)
 EFL_CONF_OPTS += --with-opengl=none
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_DRM),y)
+EFL_CONF_OPTS += --enable-drm
+EFL_DEPENDENCIES += libdrm libegl mesa3d
+else
+EFL_CONF_OPTS += --disable-drm
+endif
+
+EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
+
 # Loaders that need external dependencies needs to be --enable-XXX=yes
 # otherwise the default is '=static'.
 # All other loaders are statically built-in
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [v3,2/2] package/efl: add Evas GL DRM Engine support
  2016-11-20 18:59 [Buildroot] [v3,0/2] package/efl: enable libdrm support pierre floury
  2016-11-20 18:59 ` [Buildroot] [v3,1/2] " pierre floury
@ 2016-11-20 18:59 ` pierre floury
  2016-11-20 19:30   ` [Buildroot] [v3, 2/2] " Romain Naour
  1 sibling, 1 reply; 8+ messages in thread
From: pierre floury @ 2016-11-20 18:59 UTC (permalink / raw)
  To: buildroot

From: Romain Naour <romain.naour@gmail.com>

This support is required for Enlightenment wayland support [1].

As stated in configure, Evas GL DRM Engine needs OpenGL ES with EGL and
wayland (wayland-client >= 1.8.0)

[1] https://www.enlightenment.org/about-wayland

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Pierre Floury <devpfl@gmail.com>

---
v2: rename the option to BR2_PAKCAGE_EFL_GLES_DRM (ThomasP)
    fix the help text (ThomasP)
---
v3: rebase v2 on top of master
    Signed-off-by: Pierre Floury <devpfl@gmail.com>
---
 package/efl/efl.mk | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index d6b2bf5..fdeea47 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -199,6 +199,12 @@ else
 EFL_CONF_OPTS += --disable-drm
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yy)
+EFL_CONF_OPTS += --enable-gl-drm
+else
+EFL_CONF_OPTS += --disable-gl-drm
+endif
+
 EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
 
 # Loaders that need external dependencies needs to be --enable-XXX=yes
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [v3,1/2] package/efl: enable libdrm support
  2016-11-20 18:59 ` [Buildroot] [v3,1/2] " pierre floury
@ 2016-11-20 19:26   ` Romain Naour
  0 siblings, 0 replies; 8+ messages in thread
From: Romain Naour @ 2016-11-20 19:26 UTC (permalink / raw)
  To: buildroot

Hi Pierre,

Thanks for this new version!

Le 20/11/2016 ? 19:59, pierre floury a ?crit :
> From: Romain Naour <romain.naour@gmail.com>
> 
> add drm support to efl
> 
> drm can be used without compositor, just like it was with
> the framebuffer for standalone applications
> 
> As stated in configure.ac, libdrm support needs libdrm, elput,
> libxkbcommon and libgbm.
> 
> libgbm is only provided by mesa3d package when OpenGL EGL support is
> enabled, so add a direct dependency on mesa3d.
> 
> Rework the libxkbcommon dependency since it's now required for
> elput and libdrm support.
> 
> [1] https://www.enlightenment.org/about-wayland
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Signed-off-by: Pierre Floury <devpfl@gmail.com>
> 
> ---
> libgdm can be found as a standalone library on github [2] but it seems
> not very active. I prefer to rely on Mesa3d version.
> [2] https://github.com/robclark/libgbm
> 
> v2: use "select" BR2_PACKAGE_EFL_ELPUT instead of "depends on" (ThomasP)
>     fix commit log after 373c24cd1bb98a8b826b92034f7cb39780719625 (ThomasP)
> ---
> v3: rebase v2 on top of master
>     no wayland reference anymore

This patch is based on master after the wayland removal:
https://git.buildroot.net/buildroot/commit/?id=4f04be1659f186765f506c68f5bfbf6845fc40dc

So we must wait for the 2016.11 release to apply this patch.

Best regards,
Romain

>     Signed-off-by: Pierre Floury <devpfl@gmail.com>
> ---
>  package/efl/Config.in | 13 +++++++++++++
>  package/efl/efl.mk    | 11 ++++++++++-
>  2 files changed, 23 insertions(+), 1 deletion(-)
> 
> diff --git a/package/efl/Config.in b/package/efl/Config.in
> index 69b0dcf..58e3558 100644
> --- a/package/efl/Config.in
> +++ b/package/efl/Config.in
> @@ -192,6 +192,19 @@ config BR2_PACKAGE_EFL_ELPUT
>  	  ecore_drm, etc) to handle interfacing with libinput without
>  	  having to duplicate the code in each subsystem.
>  
> +config BR2_PACKAGE_EFL_DRM
> +	bool "Evas DRM Engine"
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
> +	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
> +	select BR2_PACKAGE_EFL_ELPUT
> +	select BR2_PACKAGE_LIBDRM
> +	select BR2_PACKAGE_LIBXKBCOMMON
> +	help
> +	  This option enable building support for the Evas DRM Engine.
> +
> +comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
> +
>  comment "libevas loaders"
>  
>  config BR2_PACKAGE_EFL_PNG
> diff --git a/package/efl/efl.mk b/package/efl/efl.mk
> index 6af7aa0..d6b2bf5 100644
> --- a/package/efl/efl.mk
> +++ b/package/efl/efl.mk
> @@ -148,7 +148,7 @@ endif # BR2_PACKAGE_OPENSSL
>  
>  ifeq ($(BR2_PACKAGE_EFL_ELPUT),y)
>  EFL_CONF_OPTS += --enable-elput
> -EFL_DEPENDENCIES += libinput libxkbcommon
> +EFL_DEPENDENCIES += libinput
>  else
>  EFL_CONF_OPTS += --disable-elput
>  endif
> @@ -192,6 +192,15 @@ else ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y)
>  EFL_CONF_OPTS += --with-opengl=none
>  endif
>  
> +ifeq ($(BR2_PACKAGE_EFL_DRM),y)
> +EFL_CONF_OPTS += --enable-drm
> +EFL_DEPENDENCIES += libdrm libegl mesa3d
> +else
> +EFL_CONF_OPTS += --disable-drm
> +endif
> +
> +EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
> +
>  # Loaders that need external dependencies needs to be --enable-XXX=yes
>  # otherwise the default is '=static'.
>  # All other loaders are statically built-in
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [v3, 2/2] package/efl: add Evas GL DRM Engine support
  2016-11-20 18:59 ` [Buildroot] [v3,2/2] package/efl: add Evas GL DRM Engine support pierre floury
@ 2016-11-20 19:30   ` Romain Naour
  2016-11-20 21:49     ` Romain Naour
  0 siblings, 1 reply; 8+ messages in thread
From: Romain Naour @ 2016-11-20 19:30 UTC (permalink / raw)
  To: buildroot

Hi Pierre,

Le 20/11/2016 ? 19:59, pierre floury a ?crit :
> From: Romain Naour <romain.naour@gmail.com>
> 
> This support is required for Enlightenment wayland support [1].
> 
> As stated in configure, Evas GL DRM Engine needs OpenGL ES with EGL and
> wayland (wayland-client >= 1.8.0)
> 
> [1] https://www.enlightenment.org/about-wayland
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Signed-off-by: Pierre Floury <devpfl@gmail.com>
> 
> ---
> v2: rename the option to BR2_PAKCAGE_EFL_GLES_DRM (ThomasP)
>     fix the help text (ThomasP)
> ---
> v3: rebase v2 on top of master
>     Signed-off-by: Pierre Floury <devpfl@gmail.com>

As suggested by Thomas [1], enable gl-drm only if all dependencies are available
without using another Kconfig symbol (BR2_PAKCAGE_EFL_GLES_DRM)

This series is ok for me :)

Best regards,
Romain

[1] http://lists.busybox.net/pipermail/buildroot/2016-September/172422.html
> ---
>  package/efl/efl.mk | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/efl/efl.mk b/package/efl/efl.mk
> index d6b2bf5..fdeea47 100644
> --- a/package/efl/efl.mk
> +++ b/package/efl/efl.mk
> @@ -199,6 +199,12 @@ else
>  EFL_CONF_OPTS += --disable-drm
>  endif
>  
> +ifeq ($(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yy)
> +EFL_CONF_OPTS += --enable-gl-drm
> +else
> +EFL_CONF_OPTS += --disable-gl-drm
> +endif
> +
>  EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
>  
>  # Loaders that need external dependencies needs to be --enable-XXX=yes
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [v3, 2/2] package/efl: add Evas GL DRM Engine support
  2016-11-20 19:30   ` [Buildroot] [v3, 2/2] " Romain Naour
@ 2016-11-20 21:49     ` Romain Naour
  2016-11-20 23:29       ` pierre
  0 siblings, 1 reply; 8+ messages in thread
From: Romain Naour @ 2016-11-20 21:49 UTC (permalink / raw)
  To: buildroot

Hi Pierre,

Le 20/11/2016 ? 20:30, Romain Naour a ?crit :
> Hi Pierre,
> 
> Le 20/11/2016 ? 19:59, pierre floury a ?crit :
>> From: Romain Naour <romain.naour@gmail.com>
>>
>> This support is required for Enlightenment wayland support [1].
>>
>> As stated in configure, Evas GL DRM Engine needs OpenGL ES with EGL and
>> wayland (wayland-client >= 1.8.0)
   ^^^^^^^
:)

>>
>> [1] https://www.enlightenment.org/about-wayland
>>
>> Signed-off-by: Romain Naour <romain.naour@gmail.com>
>> Signed-off-by: Pierre Floury <devpfl@gmail.com>
>>
>> ---
>> v2: rename the option to BR2_PAKCAGE_EFL_GLES_DRM (ThomasP)
>>     fix the help text (ThomasP)
>> ---
>> v3: rebase v2 on top of master
>>     Signed-off-by: Pierre Floury <devpfl@gmail.com>
> 
> As suggested by Thomas [1], enable gl-drm only if all dependencies are available
> without using another Kconfig symbol (BR2_PAKCAGE_EFL_GLES_DRM)
> 
> This series is ok for me :)

Humm, I missed something in my initial patch... the Evas GL DRM doesn't build
without Wayland package.

From config.log:
configure:42726: checking whether to enable OpenGL Drm rendering backend
configure:42728: result: yes
configure:42747: $PKG_CONFIG --exists --print-errors "egl ${gl_library} libdrm
gbm wayland-client >= 1.11.0"
Package wayland-client was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayland-client.pc'
to the PKG_CONFIG_PATH environment variable
Package 'wayland-client', required by 'world', not found
configure:42750: $? = 1
configure:42875: error: OpenGL Drm dependencies not found

In a previous local version I added a dependency to wayland to elput support but
I finally dropped it in the final patch submission. I forgot to add it for the
GL DRM support.

I guess we should re-add BR2_PAKCAGE_EFL_GLES_DRM to define the wayland,
efl-drm, opengl-es dependencies otherwise gl-drm would be enabled by:

ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yyy)
EFL_CONF_OPTS += --enable-gl-drm
else
EFL_CONF_OPTS += --disable-gl-drm
endif

which is not really nice.

I prefer:

efl.mk:
ifeq ($(BR2_PAKCAGE_EFL_GLES_DRM),y)
EFL_CONF_OPTS += --enable-gl-drm
else
EFL_CONF_OPTS += --disable-gl-drm
endif

Config.in:
config BR2_PAKCAGE_EFL_GLES_DRM
	bool "Evas GLES DRM Engine"
	depends on BR2_PACKAGE_EFL_DRM
	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
	depends on BR2_PACKAGE_WAYLAND
	help
	  This option enable building support for the Evas DRM OpenGL ES
	  based engine.

comment "Evas GL DRM Engine needs Evas DRM Engine, OpenGL ES w/ EGL, Wayland"
	depends on BR2_PACKAGE_EFL_DRM && !BR2_PACKAGE_EFL_OPENGLES && !BR2_PACKAGE_WAYLAND


Thoughts ?

Best regards,
Romain

> 
> Best regards,
> Romain
> 
> [1] http://lists.busybox.net/pipermail/buildroot/2016-September/172422.html
>> ---
>>  package/efl/efl.mk | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/package/efl/efl.mk b/package/efl/efl.mk
>> index d6b2bf5..fdeea47 100644
>> --- a/package/efl/efl.mk
>> +++ b/package/efl/efl.mk
>> @@ -199,6 +199,12 @@ else
>>  EFL_CONF_OPTS += --disable-drm
>>  endif
>>  
>> +ifeq ($(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yy)
>> +EFL_CONF_OPTS += --enable-gl-drm
>> +else
>> +EFL_CONF_OPTS += --disable-gl-drm
>> +endif
>> +
>>  EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
>>  
>>  # Loaders that need external dependencies needs to be --enable-XXX=yes
>>
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [v3, 2/2] package/efl: add Evas GL DRM Engine support
  2016-11-20 21:49     ` Romain Naour
@ 2016-11-20 23:29       ` pierre
  2016-11-22 23:12         ` Romain Naour
  0 siblings, 1 reply; 8+ messages in thread
From: pierre @ 2016-11-20 23:29 UTC (permalink / raw)
  To: buildroot

Hi Romain,


On 11/20/2016 10:49 PM, Romain Naour wrote:
> Hi Pierre,
>
> Le 20/11/2016 ? 20:30, Romain Naour a ?crit :
>> Hi Pierre,
>>
>> Le 20/11/2016 ? 19:59, pierre floury a ?crit :
>>> From: Romain Naour <romain.naour@gmail.com>
>>>
>>> This support is required for Enlightenment wayland support [1].
>>>
>>> As stated in configure, Evas GL DRM Engine needs OpenGL ES with EGL and
>>> wayland (wayland-client >= 1.8.0)
>    ^^^^^^^
> :)
>
>>>
>>> [1] https://www.enlightenment.org/about-wayland
>>>
>>> Signed-off-by: Romain Naour <romain.naour@gmail.com>
>>> Signed-off-by: Pierre Floury <devpfl@gmail.com>
>>>
>>> ---
>>> v2: rename the option to BR2_PAKCAGE_EFL_GLES_DRM (ThomasP)
>>>     fix the help text (ThomasP)
>>> ---
>>> v3: rebase v2 on top of master
>>>     Signed-off-by: Pierre Floury <devpfl@gmail.com>
>>
>> As suggested by Thomas [1], enable gl-drm only if all dependencies are available
>> without using another Kconfig symbol (BR2_PAKCAGE_EFL_GLES_DRM)
>>
>> This series is ok for me :)
>
> Humm, I missed something in my initial patch... the Evas GL DRM doesn't build
> without Wayland package.
>
> From config.log:
> configure:42726: checking whether to enable OpenGL Drm rendering backend
> configure:42728: result: yes
> configure:42747: $PKG_CONFIG --exists --print-errors "egl ${gl_library} libdrm
> gbm wayland-client >= 1.11.0"
> Package wayland-client was not found in the pkg-config search path.
> Perhaps you should add the directory containing `wayland-client.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'wayland-client', required by 'world', not found
> configure:42750: $? = 1
> configure:42875: error: OpenGL Drm dependencies not found
>
> In a previous local version I added a dependency to wayland to elput support but
> I finally dropped it in the final patch submission. I forgot to add it for the
> GL DRM support.

you are right, I miss the wayland-client dependency..
But, I do not get why this is requested.. efl are running well without 
wayland, just with drm..

I've got an other error :

arm-linux-gnueabihf/bin/ld: cannot find -lGL
this is due to
configure.ac:2624:evas_engine_gl_common_libs="-lGL"

on my side, I replace "-lGL" with "" in configure.ac :

--- a/configure.ac
+++ b/configure.ac
@@ -2621,7 +2621,7 @@ evas_engine_gl_common_cflags=""
  if test "x${have_egl}" = "xyes"; then
     evas_engine_gl_common_libs="-lEGL"
  else
-   evas_engine_gl_common_libs="-lGL"
+   evas_engine_gl_common_libs=""
  fi

and regenerate configure.

What would be the best solution to fix that ? just add a patch on the 
configure file ? or patch theses 3 files :

configure               | 26 +++++++++++++-------------configure.ac 
       |  2 +-
m4/evas_check_engine.m4 | 12 ++++++------

>
> I guess we should re-add BR2_PAKCAGE_EFL_GLES_DRM to define the wayland,
> efl-drm, opengl-es dependencies otherwise gl-drm would be enabled by:
>
> ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yyy)
> EFL_CONF_OPTS += --enable-gl-drm
> else
> EFL_CONF_OPTS += --disable-gl-drm
> endif
>
> which is not really nice.
>
> I prefer:
>
> efl.mk:
> ifeq ($(BR2_PAKCAGE_EFL_GLES_DRM),y)
> EFL_CONF_OPTS += --enable-gl-drm
> else
> EFL_CONF_OPTS += --disable-gl-drm
> endif
>
> Config.in:
> config BR2_PAKCAGE_EFL_GLES_DRM
> 	bool "Evas GLES DRM Engine"
> 	depends on BR2_PACKAGE_EFL_DRM
> 	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
> 	depends on BR2_PACKAGE_WAYLAND
> 	help
> 	  This option enable building support for the Evas DRM OpenGL ES
> 	  based engine.
>
> comment "Evas GL DRM Engine needs Evas DRM Engine, OpenGL ES w/ EGL, Wayland"
> 	depends on BR2_PACKAGE_EFL_DRM && !BR2_PACKAGE_EFL_OPENGLES && !BR2_PACKAGE_WAYLAND
>
>
> Thoughts ?

yes, for me it makes sens to explicitly separate 'gl_drm' and 'drm' 
engines, as efl do it on the report of configure :
Ecore_Evas......: yes (+extn +ews -fb +drm +gl-drm -psl1ght 
-opengl-cocoa -software-sdl -opengl-sdl -wayland-shm -wayland-egl 
-software-gdi -software-ddraw -software-x11 -opengl-x11)


>
> Best regards,
> Romain
>
>>
>> Best regards,
>> Romain
>>
>> [1] http://lists.busybox.net/pipermail/buildroot/2016-September/172422.html
>>> ---
>>>  package/efl/efl.mk | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/package/efl/efl.mk b/package/efl/efl.mk
>>> index d6b2bf5..fdeea47 100644
>>> --- a/package/efl/efl.mk
>>> +++ b/package/efl/efl.mk
>>> @@ -199,6 +199,12 @@ else
>>>  EFL_CONF_OPTS += --disable-drm
>>>  endif
>>>
>>> +ifeq ($(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yy)
>>> +EFL_CONF_OPTS += --enable-gl-drm
>>> +else
>>> +EFL_CONF_OPTS += --disable-gl-drm
>>> +endif
>>> +
>>>  EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
>>>
>>>  # Loaders that need external dependencies needs to be --enable-XXX=yes
>>>
>>
>


Cheers,

Pierre

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [v3, 2/2] package/efl: add Evas GL DRM Engine support
  2016-11-20 23:29       ` pierre
@ 2016-11-22 23:12         ` Romain Naour
  0 siblings, 0 replies; 8+ messages in thread
From: Romain Naour @ 2016-11-22 23:12 UTC (permalink / raw)
  To: buildroot

Hi Pierre,

Le 21/11/2016 ? 00:29, pierre a ?crit :
> Hi Romain,
> 
> 
> On 11/20/2016 10:49 PM, Romain Naour wrote:
>> Hi Pierre,
>>
>> Le 20/11/2016 ? 20:30, Romain Naour a ?crit :
>>> Hi Pierre,
>>>
>>> Le 20/11/2016 ? 19:59, pierre floury a ?crit :
>>>> From: Romain Naour <romain.naour@gmail.com>
>>>>
>>>> This support is required for Enlightenment wayland support [1].
>>>>
>>>> As stated in configure, Evas GL DRM Engine needs OpenGL ES with EGL and
>>>> wayland (wayland-client >= 1.8.0)
>>    ^^^^^^^
>> :)
>>
>>>>
>>>> [1] https://www.enlightenment.org/about-wayland
>>>>
>>>> Signed-off-by: Romain Naour <romain.naour@gmail.com>
>>>> Signed-off-by: Pierre Floury <devpfl@gmail.com>
>>>>
>>>> ---
>>>> v2: rename the option to BR2_PAKCAGE_EFL_GLES_DRM (ThomasP)
>>>>     fix the help text (ThomasP)
>>>> ---
>>>> v3: rebase v2 on top of master
>>>>     Signed-off-by: Pierre Floury <devpfl@gmail.com>
>>>
>>> As suggested by Thomas [1], enable gl-drm only if all dependencies are available
>>> without using another Kconfig symbol (BR2_PAKCAGE_EFL_GLES_DRM)
>>>
>>> This series is ok for me :)
>>
>> Humm, I missed something in my initial patch... the Evas GL DRM doesn't build
>> without Wayland package.
>>
>> From config.log:
>> configure:42726: checking whether to enable OpenGL Drm rendering backend
>> configure:42728: result: yes
>> configure:42747: $PKG_CONFIG --exists --print-errors "egl ${gl_library} libdrm
>> gbm wayland-client >= 1.11.0"
>> Package wayland-client was not found in the pkg-config search path.
>> Perhaps you should add the directory containing `wayland-client.pc'
>> to the PKG_CONFIG_PATH environment variable
>> Package 'wayland-client', required by 'world', not found
>> configure:42750: $? = 1
>> configure:42875: error: OpenGL Drm dependencies not found
>>
>> In a previous local version I added a dependency to wayland to elput support but
>> I finally dropped it in the final patch submission. I forgot to add it for the
>> GL DRM support.
> 
> you are right, I miss the wayland-client dependency..
> But, I do not get why this is requested.. efl are running well without wayland,
> just with drm..

wayland-client dependency was added to enable EGL wayland extensions to Evas_GL
as far I understand: see https://phab.enlightenment.org/D1507

> 
> I've got an other error :
> 
> arm-linux-gnueabihf/bin/ld: cannot find -lGL
> this is due to
> configure.ac:2624:evas_engine_gl_common_libs="-lGL"
> 
> on my side, I replace "-lGL" with "" in configure.ac :

Humm, weird. can you share your defconfig ?
I'm testing gl-drm with either X11 or Wayland support enabled. I'll test it
without them.

> 
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2621,7 +2621,7 @@ evas_engine_gl_common_cflags=""
>  if test "x${have_egl}" = "xyes"; then
>     evas_engine_gl_common_libs="-lEGL"
>  else
> -   evas_engine_gl_common_libs="-lGL"
> +   evas_engine_gl_common_libs=""
>  fi
> 
> and regenerate configure.
> 
> What would be the best solution to fix that ? just add a patch on the configure
> file ? or patch theses 3 files :

If a patch modify configure.ac or a m4 file, you need to regenerate the
configure script by setting EFL_AUTORECONF = YES. Also you need to regenerate
the gettext files with EFL_GETTEXTIZE = YES.

If you look at the efl package git history, I did that for the efl 1.15.3.

> 
> configure               | 26 +++++++++++++-------------configure.ac       |  2 +-
> m4/evas_check_engine.m4 | 12 ++++++------
> 
>>
>> I guess we should re-add BR2_PAKCAGE_EFL_GLES_DRM to define the wayland,
>> efl-drm, opengl-es dependencies otherwise gl-drm would be enabled by:
>>
>> ifeq
>> ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yyy)
>> EFL_CONF_OPTS += --enable-gl-drm
>> else
>> EFL_CONF_OPTS += --disable-gl-drm
>> endif
>>
>> which is not really nice.
>>
>> I prefer:
>>
>> efl.mk:
>> ifeq ($(BR2_PAKCAGE_EFL_GLES_DRM),y)
>> EFL_CONF_OPTS += --enable-gl-drm
>> else
>> EFL_CONF_OPTS += --disable-gl-drm
>> endif
>>
>> Config.in:
>> config BR2_PAKCAGE_EFL_GLES_DRM
>>     bool "Evas GLES DRM Engine"
>>     depends on BR2_PACKAGE_EFL_DRM
>>     depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
>>     depends on BR2_PACKAGE_WAYLAND
>>     help
>>       This option enable building support for the Evas DRM OpenGL ES
>>       based engine.
>>
>> comment "Evas GL DRM Engine needs Evas DRM Engine, OpenGL ES w/ EGL, Wayland"
>>     depends on BR2_PACKAGE_EFL_DRM && !BR2_PACKAGE_EFL_OPENGLES &&
>> !BR2_PACKAGE_WAYLAND
>>
>>
>> Thoughts ?
> 
> yes, for me it makes sens to explicitly separate 'gl_drm' and 'drm' engines, as
> efl do it on the report of configure :
> Ecore_Evas......: yes (+extn +ews -fb +drm +gl-drm -psl1ght -opengl-cocoa
> -software-sdl -opengl-sdl -wayland-shm -wayland-egl -software-gdi
> -software-ddraw -software-x11 -opengl-x11)

Yes, it was my first intention.

Best regards,
Romain

> 
> 
>>
>> Best regards,
>> Romain
>>
>>>
>>> Best regards,
>>> Romain
>>>
>>> [1] http://lists.busybox.net/pipermail/buildroot/2016-September/172422.html
>>>> ---
>>>>  package/efl/efl.mk | 6 ++++++
>>>>  1 file changed, 6 insertions(+)
>>>>
>>>> diff --git a/package/efl/efl.mk b/package/efl/efl.mk
>>>> index d6b2bf5..fdeea47 100644
>>>> --- a/package/efl/efl.mk
>>>> +++ b/package/efl/efl.mk
>>>> @@ -199,6 +199,12 @@ else
>>>>  EFL_CONF_OPTS += --disable-drm
>>>>  endif
>>>>
>>>> +ifeq ($(BR2_PACKAGE_EFL_OPENGLES)$(BR2_PACKAGE_EFL_DRM),yy)
>>>> +EFL_CONF_OPTS += --enable-gl-drm
>>>> +else
>>>> +EFL_CONF_OPTS += --disable-gl-drm
>>>> +endif
>>>> +
>>>>  EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
>>>>
>>>>  # Loaders that need external dependencies needs to be --enable-XXX=yes
>>>>
>>>
>>
> 
> 
> Cheers,
> 
> Pierre

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-11-22 23:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-20 18:59 [Buildroot] [v3,0/2] package/efl: enable libdrm support pierre floury
2016-11-20 18:59 ` [Buildroot] [v3,1/2] " pierre floury
2016-11-20 19:26   ` Romain Naour
2016-11-20 18:59 ` [Buildroot] [v3,2/2] package/efl: add Evas GL DRM Engine support pierre floury
2016-11-20 19:30   ` [Buildroot] [v3, 2/2] " Romain Naour
2016-11-20 21:49     ` Romain Naour
2016-11-20 23:29       ` pierre
2016-11-22 23:12         ` Romain Naour

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.