diff mbox series

[meta-ti,kirkstone,3/4] cairo: resolve opengl version

Message ID 20230426215538.3502212-4-rs@ti.com
State Superseded
Delegated to: Ryan Eatmon
Headers show
Series Enable vulkan proper | expand

Commit Message

Randolph Sapp April 26, 2023, 9:55 p.m. UTC
From: Randolph Sapp <rs@ti.com>

Cairo can either be built for use with OpenGL or OpenGLES. By default it
assumes it can use OpenGL if X11 is provided as a distro feature. This
assumption is not true anymore.

Vulkan libraries need some X libs at runtime now, so we need to manually
override the PACKAGECONFIG for cairo to use OpenGLES.

Signed-off-by: Randolph Sapp <rs@ti.com>
---
 meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend

Comments

Denys Dmytriyenko April 27, 2023, 7:30 p.m. UTC | #1
On Wed, Apr 26, 2023 at 04:55:37PM -0500, rs@ti.com wrote:
> From: Randolph Sapp <rs@ti.com>
> 
> Cairo can either be built for use with OpenGL or OpenGLES. By default it
> assumes it can use OpenGL if X11 is provided as a distro feature. This
> assumption is not true anymore.
> 
> Vulkan libraries need some X libs at runtime now, so we need to manually
> override the PACKAGECONFIG for cairo to use OpenGLES.
> 
> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend | 5 +++++
>  1 file changed, 5 insertions(+)
>  create mode 100644 meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
> 
> diff --git a/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend b/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
> new file mode 100644
> index 00000000..b41f1a01
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
> @@ -0,0 +1,5 @@
> +# This is required since cairo expects the opengl distro feature to refer to
> +# the desktop version of OpenGL. Imagination drivers only provide OpenGLES.
> +
> +PACKAGECONFIG:remove = "opengl"
> +PACKAGECONFIG:append = " glesv2"

NAK, this will fail Yocto Project compatibility checks, rendering meta-ti 
non-compliant!

No bbappends against upstream components should change the defaults 
unconditionally.

Usually, PACKAGECONFIG changes are Distro-specific:
https://git.yoctoproject.org/meta-arago/tree/meta-arago-distro/conf/distro/arago.conf#n117

If you absoluitely have to do it in a BSP layer, there are other ways 
to "guard" the change with layer-specific machine overrides, or other 
conditions.
Randolph Sapp April 27, 2023, 8:41 p.m. UTC | #2
On 4/27/23 14:30, Denys Dmytriyenko wrote:
> On Wed, Apr 26, 2023 at 04:55:37PM -0500, rs@ti.com wrote:
>> From: Randolph Sapp <rs@ti.com>
>>
>> Cairo can either be built for use with OpenGL or OpenGLES. By default it
>> assumes it can use OpenGL if X11 is provided as a distro feature. This
>> assumption is not true anymore.
>>
>> Vulkan libraries need some X libs at runtime now, so we need to manually
>> override the PACKAGECONFIG for cairo to use OpenGLES.
>>
>> Signed-off-by: Randolph Sapp <rs@ti.com>
>> ---
>>   meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend | 5 +++++
>>   1 file changed, 5 insertions(+)
>>   create mode 100644 meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
>>
>> diff --git a/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend b/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
>> new file mode 100644
>> index 00000000..b41f1a01
>> --- /dev/null
>> +++ b/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
>> @@ -0,0 +1,5 @@
>> +# This is required since cairo expects the opengl distro feature to refer to
>> +# the desktop version of OpenGL. Imagination drivers only provide OpenGLES.
>> +
>> +PACKAGECONFIG:remove = "opengl"
>> +PACKAGECONFIG:append = " glesv2"
> 
> NAK, this will fail Yocto Project compatibility checks, rendering meta-ti
> non-compliant!
> 
> No bbappends against upstream components should change the defaults
> unconditionally.
> 
> Usually, PACKAGECONFIG changes are Distro-specific:
> https://git.yoctoproject.org/meta-arago/tree/meta-arago-distro/conf/distro/arago.conf#n117
> 
> If you absoluitely have to do it in a BSP layer, there are other ways
> to "guard" the change with layer-specific machine overrides, or other
> conditions.
> 

Fair enough. Will tweak cairo conditionally based on selected driver 
like we've done with Mesa. This should also leave us wiggle room for the 
open source driver when that comes around, thanks for reminding me! 
Expect v2.
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend b/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
new file mode 100644
index 00000000..b41f1a01
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/cairo/cairo_%.bbappend
@@ -0,0 +1,5 @@ 
+# This is required since cairo expects the opengl distro feature to refer to
+# the desktop version of OpenGL. Imagination drivers only provide OpenGLES.
+
+PACKAGECONFIG:remove = "opengl"
+PACKAGECONFIG:append = " glesv2"