Re: [RFC][oe-core][PATCH] mesa: add support for rusticl

Böszörményi Zoltán
2024-09-13T13:20:50Z

2024. 09. 13. 14:59 keltezéssel, Markus Volk írta:
> Hi,
> thanks for the feedback. Yes, I accidentally added the patch I made for mesa 24.2.1.
> Currently I have it like this, which should also work:
>
> diff --git a/src/gallium/frontends/rusticl/meson.build
> b/src/gallium/frontends/rusticl/meson.build
> index 84df0a9edb9..20459f73993 100644
> --- a/src/gallium/frontends/rusticl/meson.build
> +++ b/src/gallium/frontends/rusticl/meson.build
> @@ -122,6 +122,7 @@ endif
>  rusticl_bindgen_c_args = [
>    '-fno-builtin-malloc',
> +  '-I@include@', '-I@include_cpp@', '-I@include_cpp_target_sys@',
>  ]
>  cl_c_args = [
> --
>
> One assumption on the shader issue. intel_clc is currently added only for x86-64. If you
> are building for another platform intel_clc is not installed for mesa-native, but
> required for 'iris'.
>
> Changing this line:
> GALLIUMDRIVERS:append ="${@bb.utils.contains_any('PACKAGECONFIG', 'opencl-rusticl
> opencl-clover', ',iris', '', d)}"
> to:
> GALLIUMDRIVERS:append:x86-64 ="${@bb.utils.contains_any('PACKAGECONFIG', 'opencl-rusticl
> opencl-clover', ',iris', '', d)}"
>
> might remove the need to disable raytracing in EXTRA_OEMESON
>
> Alternatively also removing x86-64 from these lines:
> EXTRA_OEMESON:append:class-target:x86-64 = " ${@bb.utils.contains_any('PACKAGECONFIG',
> 'opencl-rusticl opencl-clover', '-Dintel-clc=system', '', d)}"
> EXTRA_OEMESON:append:class-native:x86-64 = " ${@bb.utils.contains_any('PACKAGECONFIG',
> 'opencl-rusticl opencl-clover', '-Dintel-clc=enabled -Dinstall-intel-clc=true
> -Dgallium-rusticl=false', '', d)}"
>
> might help, but I'm unsure if intel_clc would be of any use apart from x86-64

IIRC, Intel fixed their kernel driver to build and work on e.g. aarch64
(or was it their new "xe" driver that has this?) and the expectation is
that some 64-bit ARM systems do have PCIe and their discrete GPUs
would be usable on other platforms than x86-64.

>
>
> On Fri, Sep 13 2024 at 12:43:46 PM +02:00:00, Böszörményi Zoltán <zboszor@gmail.com> wrote:
>> 2024. 09. 13. 12:40 keltezéssel, Zoltan Boszormenyi via lists.openembedded.org írta:
>>
>> 2024. 09. 09. 11:45 keltezéssel, Markus Volk via lists.openembedded.org írta:
>>
>> On Mon, Sep 9 2024 at 10:46:59 AM +02:00:00, Alexander Kanavin
>> <alex.kanavin@gmail.com> \x7f\x7fwrote:
>>
>> This does need to be properly looked into, there's probably a better patch
>> possible, \x7f\x7f\x7for a build setting we're missing, or at least an upstream
>> ticket to be filed. It's not \x7f\x7f\x7fa good patch when it says 'workaround' and
>> doesn't explain the issue and the fix.
>>
>> Fully agree. This is ugly as hell. Just a quick and dirty hack to get things
>> working \x7f\x7f(which is always a good starting point) but by no means a solution
>> for oe-core. Thats \x7f\x7fwhy I marked it RFC
>>
>> Don't call it a "workaround" then. Call it "pass in recipe-sysroot include
>> directories" because that's what this patch does combined with the mesa.inc changes.
>>
>> The underlying problem seems to be that bindgen does not seem to pick up CFLAGS or
>> CPPFLAGS automatically, so it needs the extra -I options passed in under Yocto to look
>> for headers in the correct places.
>>
>> Though it's not complete in my testing. I needed this patch against 24.2.2 so I
>> could build Mesa Rusticl, plus EXTRA_OEMESON += "-Dintel-rt=disabled" in my
>> bbappend because the iris driver failed to build otherwise, complaining for every
>> generated file from *.cl about "shader not available, consider installing libclc"
>> or something like that, eventually failing the build. diff --git
>> a/src/gallium/frontends/rusticl/meson.build
>> \x7fb/src/gallium/frontends/rusticl/meson.build index eef09d8f01e..efac4cab964 100644
>> --- a/src/gallium/frontends/rusticl/meson.build +++
>> b/src/gallium/frontends/rusticl/meson.build @@ -146,6 +146,7 @@
>> rusticl_opencl_bindings_rs = rust.bindgen(      rusticl_bindgen_c_args,
>> pre_args,      cl_c_args, +   '-I@include@', '-I@include_cpp@',
>> '-I@include_cpp_target_sys@'    ],    args : [      rusticl_bindgen_args, @@ -190,6
>> +191,7 @@ rusticl_llvm_bindings_rs = rust.bindgen(    c_args : [
>> rusticl_bindgen_c_args,      pre_args, +   '-I@include@', '-I@include_cpp@',
>> '-I@include_cpp_target_sys@'    ],    dependencies : [      dep_clang,
>>
>> -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group.
>> View/Reply Online (#204478):
>> https://lists.openembedded.org/g/openembedded-core/message/204478 Mute This Topic:
>> https://lists.openembedded.org/mt/108340502/3617728 Group Owner:
>> openembedded-core+owner@lists.openembedded.org Unsubscribe:
>> https://lists.openembedded.org/g/openembedded-core/unsub [zboszor@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>