All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support
@ 2016-09-07 21:08 Romain Naour
  2016-09-07 21:08 ` [Buildroot] [PATCH 2/4] package/efl: enable elput support Romain Naour
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Romain Naour @ 2016-09-07 21:08 UTC (permalink / raw)
  To: buildroot

Allow to enable graphic acceleration using OpenGL or OpenGLES with efl
libraries.

The full OpenGL option depend on X11, because full OpenGL means GLX,
which means X11. Also select efl xlib support when full OpenGL is
selected.

Enable OpenGL ES when EGL API is enabled, otherwise the build fail with
this error:
configure: error: OpenGL ES requires EGL, please add --enable-egl to your configure options to switch to EGL + OpenGL ES.

With the upcomming Wayland support in EFL Buildroot packaging,
OpenGL ES support is recommended.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
v1: patch rework.
    s/opengles/OpenGL ES/ as for Mesa3d package.
    Add a dependency on EGL API for OpenGL ES support.
(from an old efl series)
http://lists.busybox.net/pipermail/buildroot/2015-December/146401.html
v8: Select efl xlib support with the full opengl support
    is selected. (Yann E.Morin)
    Ref: http://lists.busybox.net/pipermail/buildroot/2015-December/146646.html
v6: Rename OpenGL options (Yann E.Morin)
    Only full OpenGL support depends on X11.
---
 package/efl/Config.in | 30 ++++++++++++++++++++++++++++++
 package/efl/efl.mk    | 19 ++++++++++++++++---
 2 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/package/efl/Config.in b/package/efl/Config.in
index 1cc681c..f4d88bc 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -155,6 +155,36 @@ config BR2_PACKAGE_EFL_X_XLIB
 	select BR2_PACKAGE_XLIB_LIBXTST
 	select BR2_PACKAGE_XPROTO_GLPROTO
 
+choice
+	bool "OpenGL support"
+	default BR2_PACKAGE_EFL_OPENGL   if BR2_PACKAGE_HAS_LIBGL && BR2_PACKAGE_XORG7
+	default BR2_PACKAGE_EFL_OPENGLES if BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES
+	help
+	  libevas can be configured to use HW acceleration with OpenGL or
+	  OpenGL ES.
+
+config BR2_PACKAGE_EFL_OPENGL_NONE
+	bool "none"
+
+config BR2_PACKAGE_EFL_OPENGL
+	bool "OpenGL"
+	depends on BR2_PACKAGE_HAS_LIBGL
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_EFL_X_XLIB
+
+comment "OpenGL support needs X11 and an OpenGL provider"
+	depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7
+
+config BR2_PACKAGE_EFL_OPENGLES
+	bool "OpenGL ES (w/ EGL)"
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	depends on BR2_PACKAGE_HAS_LIBGLES
+
+comment "OpenGL ES support needs an OpenGL ES w/ EGL provider"
+	depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL
+
+endchoice # OpenGL support
+
 comment "libevas loaders"
 
 config BR2_PACKAGE_EFL_PNG
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index 83588c1..44649d5 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -28,7 +28,6 @@ EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
 # --disable-sdl: disable sdl2 support.
 # --disable-spectre: disable spectre image loader.
 # --disable-xinput22: disable X11 XInput v2.2+ support.
-# --with-opengl=none: disable opengl support.
 # --with-doxygen: disable doxygen documentation
 EFL_CONF_OPTS = \
 	--with-edje-cc=$(HOST_DIR)/usr/bin/edje_cc \
@@ -43,8 +42,7 @@ EFL_CONF_OPTS = \
 	--disable-sdl \
 	--disable-spectre \
 	--disable-xinput22 \
-	--with-doxygen=no \
-	--with-opengl=none
+	--with-doxygen=no
 
 # Disable untested configuration warning.
 ifeq ($(BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG),)
@@ -182,6 +180,21 @@ else
 EFL_CONF_OPTS += --with-x11=none
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_OPENGL),y)
+EFL_CONF_OPTS += --with-opengl=full
+EFL_DEPENDENCIES += libgl
+endif
+
+# OpenGL ES requires EGL
+ifeq ($(BR2_PACKAGE_EFL_OPENGLES),y)
+EFL_CONF_OPTS += --with-opengl=es --enable-egl
+EFL_DEPENDENCIES += libegl libgles
+endif
+
+ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y)
+EFL_CONF_OPTS += --with-opengl=none
+endif
+
 # Loaders that need external dependencies needs to be --enable-XXX=yes
 # otherwise the default is '=static'.
 # All other loaders are statically built-in
-- 
2.5.5

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

* [Buildroot] [PATCH 2/4] package/efl: enable elput support
  2016-09-07 21:08 [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Romain Naour
@ 2016-09-07 21:08 ` Romain Naour
  2016-09-17 17:01   ` Thomas Petazzoni
  2016-09-07 21:08 ` [Buildroot] [PATCH 3/4] package/efl: enable libdrm support Romain Naour
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Romain Naour @ 2016-09-07 21:08 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
 package/efl/Config.in | 9 +++++++++
 package/efl/efl.mk    | 5 +++++
 2 files changed, 14 insertions(+)

diff --git a/package/efl/Config.in b/package/efl/Config.in
index f4d88bc..df13047 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -185,6 +185,15 @@ comment "OpenGL ES support needs an OpenGL ES w/ EGL provider"
 
 endchoice # OpenGL support
 
+config BR2_PACKAGE_EFL_ELPUT
+	bool "Elput"
+	select BR2_PACKAGE_LIBINPUT
+	help
+	  The elput library is an efl abstraction for the libinput library
+	  which can be used by various other subsystems (ecore_fb,
+	  ecore_drm, etc) to handle interfacing with libinput without
+	  having to duplicate the code in each subsystem.
+
 comment "libevas loaders"
 
 config BR2_PACKAGE_EFL_PNG
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index 44649d5..5b65758 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -152,6 +152,11 @@ else
 EFL_CONF_OPTS += --disable-wayland
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_ELPUT),y)
+EFL_CONF_OPTS += --enable-elput
+EFL_DEPENDENCIES += libinput
+endif
+
 ifeq ($(BR2_PACKAGE_EFL_FB),y)
 EFL_CONF_OPTS += --enable-fb
 else
-- 
2.5.5

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

* [Buildroot] [PATCH 3/4] package/efl: enable libdrm support
  2016-09-07 21:08 [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Romain Naour
  2016-09-07 21:08 ` [Buildroot] [PATCH 2/4] package/efl: enable elput support Romain Naour
@ 2016-09-07 21:08 ` Romain Naour
  2016-09-17 17:11   ` Thomas Petazzoni
  2016-09-07 21:08 ` [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support Romain Naour
  2016-09-17 16:59 ` [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Thomas Petazzoni
  3 siblings, 1 reply; 11+ messages in thread
From: Romain Naour @ 2016-09-07 21:08 UTC (permalink / raw)
  To: buildroot

This support is required for Enlightenment wayland support [1] which
will be added in a follow up patch.

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
ecore-wayland and libdrm support.

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

Signed-off-by: Romain Naour <romain.naour@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
---
 package/efl/Config.in | 14 ++++++++++++++
 package/efl/efl.mk    |  9 ++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/package/efl/Config.in b/package/efl/Config.in
index df13047..6171b29 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -194,6 +194,20 @@ 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
+	depends on 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
+	depends on BR2_PACKAGE_EFL_ELPUT
+
 comment "libevas loaders"
 
 config BR2_PACKAGE_EFL_PNG
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index 5b65758..413cf58 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -146,7 +146,7 @@ EFL_CONF_OPTS += --with-crypto=none
 endif # BR2_PACKAGE_OPENSSL
 
 ifeq ($(BR2_PACKAGE_WAYLAND),y)
-EFL_DEPENDENCIES += wayland libxkbcommon
+EFL_DEPENDENCIES += wayland
 EFL_CONF_OPTS += --enable-wayland
 else
 EFL_CONF_OPTS += --disable-wayland
@@ -200,6 +200,13 @@ 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
+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.5.5

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

* [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support
  2016-09-07 21:08 [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Romain Naour
  2016-09-07 21:08 ` [Buildroot] [PATCH 2/4] package/efl: enable elput support Romain Naour
  2016-09-07 21:08 ` [Buildroot] [PATCH 3/4] package/efl: enable libdrm support Romain Naour
@ 2016-09-07 21:08 ` Romain Naour
  2016-09-17 17:14   ` Thomas Petazzoni
  2016-09-17 16:59 ` [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Thomas Petazzoni
  3 siblings, 1 reply; 11+ messages in thread
From: Romain Naour @ 2016-09-07 21:08 UTC (permalink / raw)
  To: buildroot

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>
---
 package/efl/Config.in | 10 ++++++++++
 package/efl/efl.mk    |  6 ++++++
 2 files changed, 16 insertions(+)

diff --git a/package/efl/Config.in b/package/efl/Config.in
index 6171b29..c6c26d8 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -208,6 +208,16 @@ comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
 	depends on BR2_PACKAGE_EFL_ELPUT
 
+config BR2_PACKAGE_EFL_GL_DRM
+	bool "Evas GL DRM Engine"
+	depends on BR2_PACKAGE_EFL_DRM
+	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
+	help
+	  This option enable building support for the Evas DRM Engine.
+
+comment "Evas GL DRM Engine needs Evas DRM Engine, OpenGL ES w/ EGL"
+	depends on BR2_PACKAGE_EFL_DRM && !BR2_PACKAGE_EFL_OPENGLES
+
 comment "libevas loaders"
 
 config BR2_PACKAGE_EFL_PNG
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index 413cf58..e7d6f52 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -205,6 +205,12 @@ EFL_CONF_OPTS += --enable-drm
 EFL_DEPENDENCIES += libdrm libegl mesa3d
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_GL_DRM),y)
+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.5.5

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

* [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support
  2016-09-07 21:08 [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Romain Naour
                   ` (2 preceding siblings ...)
  2016-09-07 21:08 ` [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support Romain Naour
@ 2016-09-17 16:59 ` Thomas Petazzoni
  3 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2016-09-17 16:59 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed,  7 Sep 2016 23:08:40 +0200, Romain Naour wrote:

> +choice
> +	bool "OpenGL support"
> +	default BR2_PACKAGE_EFL_OPENGL   if BR2_PACKAGE_HAS_LIBGL && BR2_PACKAGE_XORG7
> +	default BR2_PACKAGE_EFL_OPENGLES if BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES

Those defaults are not really needed, and they are not great as they
duplicate the dependencies of the options.

Instead, I've moved the "none" choice at the end, and just relied on
kconfig's behavior that consists in automatically selecting the first
choice that has its dependencies met.


> +ifeq ($(BR2_PACKAGE_EFL_OPENGL),y)
> +EFL_CONF_OPTS += --with-opengl=full
> +EFL_DEPENDENCIES += libgl
> +endif
> +
> +# OpenGL ES requires EGL
> +ifeq ($(BR2_PACKAGE_EFL_OPENGLES),y)
> +EFL_CONF_OPTS += --with-opengl=es --enable-egl
> +EFL_DEPENDENCIES += libegl libgles
> +endif
> +
> +ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y)
> +EFL_CONF_OPTS += --with-opengl=none
> +endif

Since they are mutually exclusive, I've changed this by a:

ifeq ...
...
else ifeq ...
...
else ifeq ...
...
endif

block.

Applied with those changes. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 2/4] package/efl: enable elput support
  2016-09-07 21:08 ` [Buildroot] [PATCH 2/4] package/efl: enable elput support Romain Naour
@ 2016-09-17 17:01   ` Thomas Petazzoni
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2016-09-17 17:01 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed,  7 Sep 2016 23:08:41 +0200, Romain Naour wrote:
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ---
>  package/efl/Config.in | 9 +++++++++
>  package/efl/efl.mk    | 5 +++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/package/efl/Config.in b/package/efl/Config.in
> index f4d88bc..df13047 100644
> --- a/package/efl/Config.in
> +++ b/package/efl/Config.in
> @@ -185,6 +185,15 @@ comment "OpenGL ES support needs an OpenGL ES w/ EGL provider"
>  
>  endchoice # OpenGL support
>  
> +config BR2_PACKAGE_EFL_ELPUT
> +	bool "Elput"
> +	select BR2_PACKAGE_LIBINPUT

It also depends on BR2_PACKAGE_LIBXKBCOMMON (I've had a build failure).

Note that libxkbcommon was already selected by the efl package if
wayland is used. But the elput functionality needs it unconditionally.


> +ifeq ($(BR2_PACKAGE_EFL_ELPUT),y)
> +EFL_CONF_OPTS += --enable-elput
> +EFL_DEPENDENCIES += libinput

I've added the libxkbcommon dependency here, and also an "else" clause
to explicitly --disable-elput.

Applied with those changes. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 3/4] package/efl: enable libdrm support
  2016-09-07 21:08 ` [Buildroot] [PATCH 3/4] package/efl: enable libdrm support Romain Naour
@ 2016-09-17 17:11   ` Thomas Petazzoni
  2016-09-17 19:44     ` Romain Naour
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2016-09-17 17:11 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed,  7 Sep 2016 23:08:42 +0200, Romain Naour wrote:
> This support is required for Enlightenment wayland support [1] which
> will be added in a follow up patch.
> 
> 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.

So, on which platform have you tested that?

I'm still a bit uneasy with this libgbm stuff provided only by mesa3d.
Does this means that other OpenGL ES implementations are not suitable?

> Rework the libxkbcommon dependency since it's now required for
> ecore-wayland and libdrm support.

And elput (see earlier patch).

> +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
> +	depends on BR2_PACKAGE_EFL_ELPUT

Why do you have a "depends on" for this rather than a "select" ?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support
  2016-09-07 21:08 ` [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support Romain Naour
@ 2016-09-17 17:14   ` Thomas Petazzoni
  2016-09-17 20:30     ` Romain Naour
       [not found]     ` <0ffc3f79-6c30-3b06-3dcd-f0d0d447d248@gmail.com>
  0 siblings, 2 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2016-09-17 17:14 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed,  7 Sep 2016 23:08:43 +0200, Romain Naour wrote:

> diff --git a/package/efl/Config.in b/package/efl/Config.in
> index 6171b29..c6c26d8 100644
> --- a/package/efl/Config.in
> +++ b/package/efl/Config.in
> @@ -208,6 +208,16 @@ comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
>  	depends on BR2_PACKAGE_EFL_ELPUT
>  
> +config BR2_PACKAGE_EFL_GL_DRM

Is it useful to have it as a separate option from BR2_PACKAGE_EFL_DRM ?
In which case can BR2_PACKAGE_EFL_DRM without BR2_PACKAGE_EFL_GL_DRM be
useful ?

> +	bool "Evas GL DRM Engine"
> +	depends on BR2_PACKAGE_EFL_DRM
> +	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only

So perhaps "BR2_PAKCAGE_EFL_GLES_DRM" is a better name? "GL" usually
refers to "full OpenGL", as opposed to OpenGL ES.

> +	help
> +	  This option enable building support for the Evas DRM Engine.

This help text is wrong, as it is just a copy/paste of the one of
BR2_PACKAGE_EFL_DRM.

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

I find all those DRM/OpenGLES options in the efl package very
confusing. Are all those options needed? What are the use cases for the
different possible cases?

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 3/4] package/efl: enable libdrm support
  2016-09-17 17:11   ` Thomas Petazzoni
@ 2016-09-17 19:44     ` Romain Naour
  0 siblings, 0 replies; 11+ messages in thread
From: Romain Naour @ 2016-09-17 19:44 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

Thanks for improving the two previous patches!

Le 17/09/2016 ? 19:11, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Wed,  7 Sep 2016 23:08:42 +0200, Romain Naour wrote:
>> This support is required for Enlightenment wayland support [1] which
>> will be added in a follow up patch.
>>
>> 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.
> 
> So, on which platform have you tested that?

Initially, I worked only with Qemu only but I set up an x86_64 atom target to
test on real hardware.

> 
> I'm still a bit uneasy with this libgbm stuff provided only by mesa3d.
> Does this means that other OpenGL ES implementations are not suitable?

On the efl download page [1] they say "opengl (mesa or vendor supplied desktop
OpenGL or OpenGL-ES2)", so mesa3d seems the only suitable implementation
available in Buildroot.

[1] https://www.enlightenment.org/download

> 
>> Rework the libxkbcommon dependency since it's now required for
>> ecore-wayland and libdrm support.
> 
> And elput (see earlier patch).
> 
>> +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
>> +	depends on BR2_PACKAGE_EFL_ELPUT
> 
> Why do you have a "depends on" for this rather than a "select" ?

Yes, "select" should be used here.

Best regards,
Romain

> 
> Thomas
> 

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

* [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support
  2016-09-17 17:14   ` Thomas Petazzoni
@ 2016-09-17 20:30     ` Romain Naour
       [not found]     ` <0ffc3f79-6c30-3b06-3dcd-f0d0d447d248@gmail.com>
  1 sibling, 0 replies; 11+ messages in thread
From: Romain Naour @ 2016-09-17 20:30 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

Le 17/09/2016 ? 19:14, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Wed,  7 Sep 2016 23:08:43 +0200, Romain Naour wrote:
> 
>> diff --git a/package/efl/Config.in b/package/efl/Config.in
>> index 6171b29..c6c26d8 100644
>> --- a/package/efl/Config.in
>> +++ b/package/efl/Config.in
>> @@ -208,6 +208,16 @@ comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
>>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
>>  	depends on BR2_PACKAGE_EFL_ELPUT
>>  
>> +config BR2_PACKAGE_EFL_GL_DRM
> 
> Is it useful to have it as a separate option from BR2_PACKAGE_EFL_DRM ?

You mean enable evas gl-drm engine only when all dependencies are available
without using a separate option? Yes why not.

> In which case can BR2_PACKAGE_EFL_DRM without BR2_PACKAGE_EFL_GL_DRM be
> useful ?

I don't know. The evas gl-drm (opengl based DRM) engine can be enabled
separately from ecore drm for some reason, so I tried to reproduce this
possibility on the packaging.
Anyway my goal is the test EFL/E with Wayland and --enable-gl-drm and
--enable-drm are required together for this [1].

[1] https://phab.enlightenment.org/w/wayland/

> 
>> +	bool "Evas GL DRM Engine"
>> +	depends on BR2_PACKAGE_EFL_DRM
>> +	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
> 
> So perhaps "BR2_PAKCAGE_EFL_GLES_DRM" is a better name? "GL" usually
> refers to "full OpenGL", as opposed to OpenGL ES.

Ok, I'll fix this.

> 
>> +	help
>> +	  This option enable building support for the Evas DRM Engine.
> 
> This help text is wrong, as it is just a copy/paste of the one of
> BR2_PACKAGE_EFL_DRM.

Indeed, sorry...
The help text should precise that this support the Evas DRM based on OpenGL ES.

[2]
https://git.enlightenment.org/core/efl.git/commit/?id=f5b81093978fbbe411f9fb509617b6f4081f8da8

> 
>> +
>> +comment "Evas GL DRM Engine needs Evas DRM Engine, OpenGL ES w/ EGL"
>> +	depends on BR2_PACKAGE_EFL_DRM && !BR2_PACKAGE_EFL_OPENGLES
> 
> I find all those DRM/OpenGLES options in the efl package very
> confusing. Are all those options needed? What are the use cases for the
> different possible cases?

Well, the packaging is confusing because theses options are already confusing at
configure.ac level. Do we want a fine grained options choices for theses or a
"global" OpenGLES + DRM options?

Best regards,
Romain

> 
> Thanks,
> 
> Thomas
> 

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

* [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support
       [not found]     ` <0ffc3f79-6c30-3b06-3dcd-f0d0d447d248@gmail.com>
@ 2016-11-20 18:58       ` pierre
  0 siblings, 0 replies; 11+ messages in thread
From: pierre @ 2016-11-20 18:58 UTC (permalink / raw)
  To: buildroot

Hello,

I try to reply to this mail :

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

I am not sure I set my email header right..


> -------- Message transf?r? --------
> Sujet : Re: [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support
> Date : Sat, 17 Sep 2016 19:14:42 +0200
> De : Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Organisation : Free Electrons
> Pour : Romain Naour <romain.naour@gmail.com>
> Copie ? : buildroot at buildroot.org
>
> Hello,
>
> On Wed,  7 Sep 2016 23:08:43 +0200, Romain Naour wrote:
>
>> diff --git a/package/efl/Config.in b/package/efl/Config.in
>> index 6171b29..c6c26d8 100644
>> --- a/package/efl/Config.in
>> +++ b/package/efl/Config.in
>> @@ -208,6 +208,16 @@ comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
>>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
>>  	depends on BR2_PACKAGE_EFL_ELPUT
>>
>> +config BR2_PACKAGE_EFL_GL_DRM
>
> Is it useful to have it as a separate option from BR2_PACKAGE_EFL_DRM ?
> In which case can BR2_PACKAGE_EFL_DRM without BR2_PACKAGE_EFL_GL_DRM be
> useful ?
>
>> +	bool "Evas GL DRM Engine"
>> +	depends on BR2_PACKAGE_EFL_DRM
>> +	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
>
> So perhaps "BR2_PAKCAGE_EFL_GLES_DRM" is a better name? "GL" usually
> refers to "full OpenGL", as opposed to OpenGL ES.
>
>> +	help
>> +	  This option enable building support for the Evas DRM Engine.
>
> This help text is wrong, as it is just a copy/paste of the one of
> BR2_PACKAGE_EFL_DRM.
>
>> +
>> +comment "Evas GL DRM Engine needs Evas DRM Engine, OpenGL ES w/ EGL"
>> +	depends on BR2_PACKAGE_EFL_DRM && !BR2_PACKAGE_EFL_OPENGLES
>
> I find all those DRM/OpenGLES options in the efl package very
> confusing. Are all those options needed? What are the use cases for the
> different possible cases?

I am agree EFL and DRM are confusing. And it is not finished yet. They 
are doing an other DRM implementation 'DRM2'.

https://blogs.s-osg.org/introducing-new-improved-ecore_drm2-library/

But, you are asking for use case. So, here is mine :

I am doing a stand alone application on imx6. I am using EFL to run on 
top of DRM. Without X or wayland. My application is simple, I am not 
sure if the support of opengles is good for me or not.. as the boot time 
is important for me. Maybe loading opengl libs at start would slow down 
start up. I don't know..

I will resend the patch of Romain Naour, they are usefull for me.
http://patchwork.ozlabs.org/patch/671260
http://patchwork.ozlabs.org/patch/671261


>
> Thanks,
>
> Thomas

Cheers,

Pierre Floury

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

end of thread, other threads:[~2016-11-20 18:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-07 21:08 [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Romain Naour
2016-09-07 21:08 ` [Buildroot] [PATCH 2/4] package/efl: enable elput support Romain Naour
2016-09-17 17:01   ` Thomas Petazzoni
2016-09-07 21:08 ` [Buildroot] [PATCH 3/4] package/efl: enable libdrm support Romain Naour
2016-09-17 17:11   ` Thomas Petazzoni
2016-09-17 19:44     ` Romain Naour
2016-09-07 21:08 ` [Buildroot] [PATCH 4/4] package/efl: add Evas GL DRM Engine support Romain Naour
2016-09-17 17:14   ` Thomas Petazzoni
2016-09-17 20:30     ` Romain Naour
     [not found]     ` <0ffc3f79-6c30-3b06-3dcd-f0d0d447d248@gmail.com>
2016-11-20 18:58       ` pierre
2016-09-17 16:59 ` [Buildroot] [PATCH 1/4] package/efl: add OpenGL/OpenGLES support Thomas Petazzoni

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.