Patchwork [meta-fsl-arm] gpu-viv-bin-mx6q: Make backend configurable

login
register
mail settings
Submitter Carlos Rafael Giani
Date Feb. 3, 2014, 10:41 a.m.
Message ID <1391424109-1663-1-git-send-email-dv@pseudoterminal.org>
Download mbox | patch
Permalink /patch/66253/
State Deferred
Delegated to: Otavio Salvador
Headers show

Comments

Carlos Rafael Giani - Feb. 3, 2014, 10:41 a.m.
With this change, the user can set USE_X11 etc. in local.conf to
override the recipe's DISTRO_FEATURES based choice. This is for example
beneficial when both X11 and wayland are supported, or when the user
wants to make use of the regular framebuffer backend. (Modifying
the distro features list may have far reaching consequences.)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
---
 recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Otavio Salvador - Feb. 3, 2014, 11:23 a.m.
Hello Carlos,

On Mon, Feb 3, 2014 at 8:41 AM, Carlos Rafael Giani
<dv@pseudoterminal.org> wrote:
> With this change, the user can set USE_X11 etc. in local.conf to
> override the recipe's DISTRO_FEATURES based choice. This is for example
> beneficial when both X11 and wayland are supported, or when the user
> wants to make use of the regular framebuffer backend. (Modifying
> the distro features list may have far reaching consequences.)
>
> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>

The Wayland and X11 backends  are not usable at same time as you need
to build apps with different flags. Do you have an usecase in mind?
Carlos Rafael Giani - Feb. 3, 2014, 11:30 a.m.
On 2014-02-03 12:23, Otavio Salvador wrote:
> Hello Carlos,
>
> On Mon, Feb 3, 2014 at 8:41 AM, Carlos Rafael Giani
> <dv@pseudoterminal.org> wrote:
>> With this change, the user can set USE_X11 etc. in local.conf to
>> override the recipe's DISTRO_FEATURES based choice. This is for example
>> beneficial when both X11 and wayland are supported, or when the user
>> wants to make use of the regular framebuffer backend. (Modifying
>> the distro features list may have far reaching consequences.)
>>
>> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
> The Wayland and X11 backends  are not usable at same time as you need
> to build apps with different flags. Do you have an usecase in mind?
>

For example, when I wanted to try out the framebuffer EGL backend of the 
eglvivsink element in gstreamer-imx , I had to modify the 
gpu-viv-bin-mx6q.inc file to force it to not install the X11 binaries. 
(Same when I tried to develop a directfb EGL backend, which I postponed 
for now, because there are zero docs and examples on how to actually do 
this.) I will also need it later, when I start working on the Wayland 
backend. I also needed it when trying to build an xbmc fork with imx 
extras ; it can only render to framebuffer, not to X11.

I agree though that a switch-like statement would be better, but I am 
not sure how to implement that properly (my OE foo is not that high :) )
Otavio Salvador - Feb. 3, 2014, 11:34 a.m.
Hello Carlos,

On Mon, Feb 3, 2014 at 9:30 AM, Carlos Rafael Giani
<dv@pseudoterminal.org> wrote:
> On 2014-02-03 12:23, Otavio Salvador wrote:
>> On Mon, Feb 3, 2014 at 8:41 AM, Carlos Rafael Giani
>> <dv@pseudoterminal.org> wrote:
>>>
>>> With this change, the user can set USE_X11 etc. in local.conf to
>>> override the recipe's DISTRO_FEATURES based choice. This is for example
>>> beneficial when both X11 and wayland are supported, or when the user
>>> wants to make use of the regular framebuffer backend. (Modifying
>>> the distro features list may have far reaching consequences.)
>>>
>>> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
>>
>> The Wayland and X11 backends  are not usable at same time as you need
>> to build apps with different flags. Do you have an usecase in mind?
>>
>
> For example, when I wanted to try out the framebuffer EGL backend of the
> eglvivsink element in gstreamer-imx , I had to modify the
> gpu-viv-bin-mx6q.inc file to force it to not install the X11 binaries. (Same
> when I tried to develop a directfb EGL backend, which I postponed for now,
> because there are zero docs and examples on how to actually do this.) I will
> also need it later, when I start working on the Wayland backend. I also
> needed it when trying to build an xbmc fork with imx extras ; it can only
> render to framebuffer, not to X11.
>
> I agree though that a switch-like statement would be better, but I am not
> sure how to implement that properly (my OE foo is not that high :) )

The idea here is you to set:

DISTRO_FEATURES_remove = "x11 wayland"

in your local.conf and you'll get a 'framebuffer' system.

Adding also:

DISTRO_FEATURES += "directfb"

gets you a 'DirectFB' system.

Is it what you are looking for?
Daiane Angolini - Feb. 3, 2014, 11:43 a.m.
On 03-02-2014 09:34, Otavio Salvador wrote:
> Hello Carlos,
>
> On Mon, Feb 3, 2014 at 9:30 AM, Carlos Rafael Giani
> <dv@pseudoterminal.org> wrote:
>> On 2014-02-03 12:23, Otavio Salvador wrote:
>>> On Mon, Feb 3, 2014 at 8:41 AM, Carlos Rafael Giani
>>> <dv@pseudoterminal.org> wrote:
>>>>
>>>> With this change, the user can set USE_X11 etc. in local.conf to
>>>> override the recipe's DISTRO_FEATURES based choice. This is for example
>>>> beneficial when both X11 and wayland are supported, or when the user
>>>> wants to make use of the regular framebuffer backend. (Modifying
>>>> the distro features list may have far reaching consequences.)
>>>>
>>>> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
>>>
>>> The Wayland and X11 backends  are not usable at same time as you need
>>> to build apps with different flags. Do you have an usecase in mind?
>>>
>>
>> For example, when I wanted to try out the framebuffer EGL backend of the
>> eglvivsink element in gstreamer-imx , I had to modify the
>> gpu-viv-bin-mx6q.inc file to force it to not install the X11 binaries. (Same
>> when I tried to develop a directfb EGL backend, which I postponed for now,
>> because there are zero docs and examples on how to actually do this.) I will
>> also need it later, when I start working on the Wayland backend. I also
>> needed it when trying to build an xbmc fork with imx extras ; it can only
>> render to framebuffer, not to X11.
>>
>> I agree though that a switch-like statement would be better, but I am not
>> sure how to implement that properly (my OE foo is not that high :) )
>
> The idea here is you to set:
>
> DISTRO_FEATURES_remove = "x11 wayland"
>
> in your local.conf and you'll get a 'framebuffer' system.
>
> Adding also:
>
> DISTRO_FEATURES += "directfb"
>
> gets you a 'DirectFB' system.

You mean, for DirectFB the needed code is:

	DISTRO_FEATURES_remove = "x11 wayland"
	DISTRO_FEATURES += "directfb"


So, both lines together.

If you only include directfb in DISTRO_FEATURES what probably will 
happen is an explosion due to universe collapse (x11+wayland+direcftb)

I know you said the same thing in your email, Otavio. But at first, it 
confused me. So I'm being redundant - just in case -






>
> Is it what you are looking for?
>
>
Daiane Angolini - Feb. 3, 2014, 12:09 p.m.
On 03-02-2014 10:13, Carlos Rafael Giani wrote:
> On 2014-02-03 12:43, Daiane Angolini wrote:
>> You mean, for DirectFB the needed code is:
>>
>>     DISTRO_FEATURES_remove = "x11 wayland"
>>     DISTRO_FEATURES += "directfb"
>>
>>
>> So, both lines together.
>>
>> If you only include directfb in DISTRO_FEATURES what probably will
>> happen is an explosion due to universe collapse (x11+wayland+direcftb)
>>
>> I know you said the same thing in your email, Otavio. But at first, it
>> confused me. So I'm being redundant - just in case -
>>
>
> One problem I've had is that modifying DISTRO_FEATURES introduced a lot
> of changes all over the place, pulling in some dependencies that didn't
> work well. It has been a while since I did this, but I remember having
> dependency problems when I switched on directfb (and turned off x11).
> However, if you say it should work this way, then I accept that. Maybe
> something wrong was on my end. I was initially under the impression that
> modifying DISTRO_FEATURES is not recommended.
>
>

Please, when you change DISTRO_FEATURES use a clean build folder. I have 
faced several annoying build errors due to dirty build folder.

And, any other bug must be fixed, so please, if you face any, share with ML.
Carlos Rafael Giani - Feb. 3, 2014, 12:13 p.m.
On 2014-02-03 12:43, Daiane Angolini wrote:
> You mean, for DirectFB the needed code is:
>
>     DISTRO_FEATURES_remove = "x11 wayland"
>     DISTRO_FEATURES += "directfb"
>
>
> So, both lines together.
>
> If you only include directfb in DISTRO_FEATURES what probably will 
> happen is an explosion due to universe collapse (x11+wayland+direcftb)
>
> I know you said the same thing in your email, Otavio. But at first, it 
> confused me. So I'm being redundant - just in case -
>

One problem I've had is that modifying DISTRO_FEATURES introduced a lot 
of changes all over the place, pulling in some dependencies that didn't 
work well. It has been a while since I did this, but I remember having 
dependency problems when I switched on directfb (and turned off x11). 
However, if you say it should work this way, then I accept that. Maybe 
something wrong was on my end. I was initially under the impression that 
modifying DISTRO_FEATURES is not recommended.

Patch

diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
index 2b94153..4e37db0 100644
--- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
+++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
@@ -60,9 +60,9 @@  python __anonymous () {
                 raise bb.parse.SkipPackage("Package Float-Point is not compatible with the machine")
 }
 
-USE_X11 = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
-USE_DFB = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
-USE_WL = "${@base_contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
+USE_X11 ?= "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
+USE_DFB ?= "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
+USE_WL ?= "${@base_contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
 
 # Inhibit warnings about files being stripped.
 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"