From: "Ulrich Ölmann" <u.oelmann@pengutronix.de>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH v2 3/4] mesa: make gallium swrast target optional
Date: Thu, 09 May 2019 15:28:56 +0200 [thread overview]
Message-ID: <6rh8a37o4n.fsf@pengutronix.de> (raw)
In-Reply-To: <20190502180916.32114-4-m.felsch@pengutronix.de>
Hi there,
On Thu, May 02 2019 at 20:09 +0200, Marco Felsch <m.felsch@pengutronix.de> wrote:
> Most the time we are compiling for embedded targets which have dedicated
> hardware combinations. Setting swrast default on isn't a good solution
> for such devices because if the hardware render node have an issue or
> don't support a special format/request mesa will fallback to the
> software renderer. This will make it harder to debug performace issues.
>
> A better way is to let the user deciced if a software renderer is
> needed e.g. if the system has no hardware renderer or to have such a
> fallback device. This way the user knows that the software renderer is
> enabled.
>
> Upstream-Status: Submitted [openembedded-core@lists.openembedded.org]
>
> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> ---
> Changelog:
>
> v2:
> - added Upstream-Status line
> - fix leading comma
>
> meta/recipes-graphics/mesa/mesa.inc | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
> index 7516a06639..b41d3054c3 100644
> --- a/meta/recipes-graphics/mesa/mesa.inc
> +++ b/meta/recipes-graphics/mesa/mesa.inc
> @@ -86,24 +86,27 @@ PACKAGECONFIG[egl] = "-Degl=true, -Degl=false"
>
> PACKAGECONFIG[etnaviv] = ""
> PACKAGECONFIG[kmsro] = ""
> +PACKAGECONFIG[swrast] = ""
>
> -GALLIUMDRIVERS = "swrast"
> -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
> -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}"
> +GALLIUMDRIVERS = ""
> +GALLIUMDRIVERS +="${@bb.utils.contains('PACKAGECONFIG', 'swrast', 'swrast', '', d)}"
> +GALLIUMDRIVERS +="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', 'etnaviv', '', d)}"
> +GALLIUMDRIVERS +="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', 'kmsro', '', d)}"
>
> # radeonsi requires LLVM
> -GALLIUMDRIVERS_LLVM33 = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}"
> +GALLIUMDRIVERS_LLVM33 = "${@bb.utils.contains('PACKAGECONFIG', 'r600', 'radeonsi', '', d)}"
> GALLIUMDRIVERS_LLVM33_ENABLED = "${@oe.utils.version_less_or_equal('MESA_LLVM_RELEASE', '3.2', False, len('${GALLIUMDRIVERS_LLVM33}') > 0, d)}"
> -GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${@',${GALLIUMDRIVERS_LLVM33}' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
> +GALLIUMDRIVERS_LLVM = "r300 svga nouveau ${@'${GALLIUMDRIVERS_LLVM33}' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
>
> PACKAGECONFIG[r600] = ""
>
> -GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
> -GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}"
> -GALLIUMDRIVERS_append = ",virgl"
> +GALLIUMDRIVERS += "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}"
> +GALLIUMDRIVERS += "${@bb.utils.contains('PACKAGECONFIG', 'r600', 'r600', '', d)}"
> +GALLIUMDRIVERS += "virgl"
> +GALLIUMDRIVERS_MESON = "${@",".join("${GALLIUMDRIVERS}".split())}"
how does it have to look like if I want to go without this auxiliary
variable GALLIUMDRIVERS_MESON and instead insert the Python expression
that generates its content directly into ...
> # keep --with-gallium-drivers separate, because when only one of gallium versions is enabled, other 2 were adding --without-gallium-drivers
> -PACKAGECONFIG[gallium] = "-Dgallium-drivers=${GALLIUMDRIVERS}, -Dgallium-drivers=''"
> +PACKAGECONFIG[gallium] = "-Dgallium-drivers=${GALLIUMDRIVERS_MESON}, -Dgallium-drivers=''"
... the above assignment of PACKAGECONFIG[gallium]?
I can't get it to work - perhaps it is a problem with escaping things?
Best regards
Ulrich
> MESA_LLVM_RELEASE ?= "8.0.0"
> PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, llvm${MESA_LLVM_RELEASE} llvm-native \
> ${@'elfutils' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
--
Pengutronix e.K. | Ulrich Ölmann |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2019-05-09 13:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-02 18:09 [PATCH v2 0/4] Mesa improvements Marco Felsch
2019-05-02 18:09 ` [PATCH v2 1/4] mesa: Convert recipe to use meson build system Marco Felsch
2019-05-03 10:19 ` Alexander Kanavin
2019-05-06 5:56 ` Marco Felsch
2019-05-02 18:09 ` [PATCH v2 2/4] mesa: fix imx gallium driver PACKAGECONFIG option Marco Felsch
2019-05-02 18:09 ` [PATCH v2 3/4] mesa: make gallium swrast target optional Marco Felsch
2019-05-09 13:28 ` Ulrich Ölmann [this message]
2019-05-02 18:09 ` [PATCH v2 4/4] mesa: make gallium virgl optional Marco Felsch
2019-05-03 10:17 ` Alexander Kanavin
2019-05-06 5:52 ` Marco Felsch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6rh8a37o4n.fsf@pengutronix.de \
--to=u.oelmann@pengutronix.de \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.