diff mbox series

[meta-ti,master/kirkstone,5/5] meta-ti-bsp: graphics: Correct dependency chain

Message ID 20230406192847.7934-5-afd@ti.com
State Superseded
Delegated to: Ryan Eatmon
Headers show
Series [meta-ti,master/kirkstone,1/5] ti-sgx-ddk-um: Remove RDEPENDS on libdrm-omap | expand

Commit Message

Andrew Davis April 6, 2023, 7:28 p.m. UTC
Previously the virtual/gpudriver provider would point to the kernel-mode
driver, which would cause Mesa libraries to depend on those and not the
user-mode driver. It is the user-mode driver that should depend on the
kernel-mode driver, not the other way around. The logical dependency
chain should be:

App -> virtual/libgl -> Mesa -> virtual/gpudriver -> IMG-UM -> IMG-KM

Flip the dependency chain so it matches the above. While here make
the UM driver depend on, not just recommend, the KM driver as it is
not functional with out it.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 meta-ti-bsp/conf/machine/include/am62xx.inc                 | 2 +-
 meta-ti-bsp/conf/machine/include/j721e.inc                  | 2 +-
 meta-ti-bsp/conf/machine/include/j721s2.inc                 | 2 +-
 meta-ti-bsp/conf/machine/include/j784s4.inc                 | 2 +-
 .../powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb     | 2 --
 .../powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb           | 2 --
 .../libgles/ti-img-rogue-umlibs_1.18.6276027.bb             | 5 ++++-
 .../recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb  | 5 +++--
 meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend     | 2 +-
 meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend        | 2 +-
 meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc              | 6 +++---
 11 files changed, 16 insertions(+), 16 deletions(-)

Comments

Denys Dmytriyenko April 6, 2023, 7:46 p.m. UTC | #1
On Thu, Apr 06, 2023 at 02:28:47PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> Previously the virtual/gpudriver provider would point to the kernel-mode
> driver, which would cause Mesa libraries to depend on those and not the
> user-mode driver. It is the user-mode driver that should depend on the
> kernel-mode driver, not the other way around. The logical dependency
> chain should be:

No, umlibs already has lots of virtual providers to choose from - virtual/egl, 
virtual/gles and even virtual/mesa. And virtual/gpudriver was specifically 
added to point to a kernel-mode driver - rogue-driver or sgx-km.

So, flipping the dependency chain is probably the correct change, but changing 
what virtual/gpudriver means seems wrong. 


> App -> virtual/libgl -> Mesa -> virtual/gpudriver -> IMG-UM -> IMG-KM
> 
> Flip the dependency chain so it matches the above. While here make
> the UM driver depend on, not just recommend, the KM driver as it is
> not functional with out it.
> 
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---
>  meta-ti-bsp/conf/machine/include/am62xx.inc                 | 2 +-
>  meta-ti-bsp/conf/machine/include/j721e.inc                  | 2 +-
>  meta-ti-bsp/conf/machine/include/j721s2.inc                 | 2 +-
>  meta-ti-bsp/conf/machine/include/j784s4.inc                 | 2 +-
>  .../powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb     | 2 --
>  .../powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb           | 2 --
>  .../libgles/ti-img-rogue-umlibs_1.18.6276027.bb             | 5 ++++-
>  .../recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb  | 5 +++--
>  meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend     | 2 +-
>  meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend        | 2 +-
>  meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc              | 6 +++---
>  11 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/meta-ti-bsp/conf/machine/include/am62xx.inc b/meta-ti-bsp/conf/machine/include/am62xx.inc
> index af6a6db4..93151bcf 100644
> --- a/meta-ti-bsp/conf/machine/include/am62xx.inc
> +++ b/meta-ti-bsp/conf/machine/include/am62xx.inc
> @@ -6,7 +6,7 @@ MACHINE_FEATURES += "screen gpu"
>  SERIAL_CONSOLES = "115200;ttyS2"
>  SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
>  
> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>  
>  # Default tiboot3.bin on AM62x is for HS-FS
>  BBMULTICONFIG = "k3r5-hs-fs"
> diff --git a/meta-ti-bsp/conf/machine/include/j721e.inc b/meta-ti-bsp/conf/machine/include/j721e.inc
> index 8f9c24e6..05aa7515 100644
> --- a/meta-ti-bsp/conf/machine/include/j721e.inc
> +++ b/meta-ti-bsp/conf/machine/include/j721e.inc
> @@ -3,7 +3,7 @@ SOC_FAMILY:append = ":j721e"
>  
>  MACHINE_FEATURES += "screen gpu"
>  
> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>  
>  # On J721e the file tiboot3.bin comes from the bootloader not ti-sci-fw
>  do_image_wic[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy"
> diff --git a/meta-ti-bsp/conf/machine/include/j721s2.inc b/meta-ti-bsp/conf/machine/include/j721s2.inc
> index 70569a16..9a21df49 100644
> --- a/meta-ti-bsp/conf/machine/include/j721s2.inc
> +++ b/meta-ti-bsp/conf/machine/include/j721s2.inc
> @@ -3,7 +3,7 @@ SOC_FAMILY:append = ":j721s2"
>  
>  MACHINE_FEATURES += "screen gpu"
>  
> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>  
>  TFA_BOARD = "generic"
>  
> diff --git a/meta-ti-bsp/conf/machine/include/j784s4.inc b/meta-ti-bsp/conf/machine/include/j784s4.inc
> index d03ee4a4..74b64203 100644
> --- a/meta-ti-bsp/conf/machine/include/j784s4.inc
> +++ b/meta-ti-bsp/conf/machine/include/j784s4.inc
> @@ -3,7 +3,7 @@ SOC_FAMILY:append = ":j784s4"
>  
>  MACHINE_FEATURES += "screen gpu"
>  
> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>  
>  TFA_BOARD = "j784s4"
>  
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
> index 96fb7484..2e2fe1ac 100644
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
> @@ -5,8 +5,6 @@ LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232
>  
>  inherit module
>  
> -PROVIDES = "virtual/gpudriver"
> -
>  MACHINE_KERNEL_PR:append = "b"
>  PR = "${MACHINE_KERNEL_PR}"
>  
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
> index bf4fa98a..ed614038 100644
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
> @@ -5,8 +5,6 @@ LIC_FILES_CHKSUM = "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9
>  
>  inherit module
>  
> -PROVIDES = "virtual/gpudriver"
> -
>  COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
>  
>  MACHINE_KERNEL_PR:append = "x"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
> index 94d14ded..f6f363b0 100644
> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
> @@ -3,6 +3,8 @@ HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
>  LICENSE = "TI-TFL"
>  LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
>  
> +PROVIDES = "virtual/gpudriver"
> +
>  inherit bin_package
>  
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> @@ -22,7 +24,8 @@ TARGET_PRODUCT:am62xx = "am62_linux"
>  PVR_BUILD = "release"
>  PVR_WS = "lws-generic"
>  
> -RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
> +RDEPENDS:${PN} += "libdrm"
> +RDEPENDS:${PN} += "ti-img-rogue-driver"
>  
>  do_install:append() {
>      if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> index 755cc4f5..3a91d9c3 100644
> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> @@ -3,6 +3,8 @@ HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
>  LICENSE = "TI-TSPA"
>  LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
>  
> +PROVIDES = "virtual/gpudriver"
> +
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
>  COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
>  
> @@ -35,8 +37,7 @@ def use_initscript(d):
>  inherit ${@oe.utils.ifelse(use_initscript(d), 'update-rc.d', '')}
>  
>  RDEPENDS:${PN} += "libdrm"
> -
> -RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
> +RDEPENDS:${PN} += "ti-sgx-ddk-km"
>  
>  S = "${WORKDIR}/git"
>  
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
> index 912e9e9d..f505a569 100644
> --- a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
> @@ -1 +1 @@
> -require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs ti-sgx-ddk-um', 'pvr-mesa.inc', '', d)}
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
> index 912e9e9d..f505a569 100644
> --- a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
> @@ -1 +1 @@
> -require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs ti-sgx-ddk-um', 'pvr-mesa.inc', '', d)}
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> index 96c484a7..d9e56d84 100644
> --- a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> @@ -23,8 +23,8 @@ S = "${WORKDIR}/git"
>  SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
>  
>  PACKAGECONFIG:append = " \
> -    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', 'pvr', '', d)} \
> -    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', 'sgx', '', d)} \
> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs', 'pvr', '', d)} \
> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-um', 'sgx', '', d)} \
>  "
>  
>  PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
> @@ -45,4 +45,4 @@ do_install:append () {
>      rm -rf ${D}${datadir}/pkgconfig
>  }
>  
> -RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> +RDEPENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> -- 
> 2.39.2
Randolph Sapp April 6, 2023, 8:28 p.m. UTC | #2
On 4/6/23 14:28, Andrew Davis wrote:
> Previously the virtual/gpudriver provider would point to the kernel-mode
> driver, which would cause Mesa libraries to depend on those and not the
> user-mode driver. It is the user-mode driver that should depend on the
> kernel-mode driver, not the other way around. The logical dependency
> chain should be:
> 
> App -> virtual/libgl -> Mesa -> virtual/gpudriver -> IMG-UM -> IMG-KM

We already talked about this so I'm fine with it.

> 
> Flip the dependency chain so it matches the above. While here make
> the UM driver depend on, not just recommend, the KM driver as it is
> not functional with out it.
> 
> Signed-off-by: Andrew Davis <afd@ti.com>

...

> -RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> +RDEPENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"

I have issues with making this a full dependency here. We're adding the 
PVR components to mesa, software rendering is still there as a fallback. 
If someone wishes to remove the powervr umlibs with OPKG having this as 
a hard dependency will break a lot of things.
Andrew Davis April 6, 2023, 8:47 p.m. UTC | #3
On 4/6/23 3:28 PM, Randolph Sapp wrote:
> On 4/6/23 14:28, Andrew Davis wrote:
>> Previously the virtual/gpudriver provider would point to the kernel-mode
>> driver, which would cause Mesa libraries to depend on those and not the
>> user-mode driver. It is the user-mode driver that should depend on the
>> kernel-mode driver, not the other way around. The logical dependency
>> chain should be:
>>
>> App -> virtual/libgl -> Mesa -> virtual/gpudriver -> IMG-UM -> IMG-KM
> 
> We already talked about this so I'm fine with it.
> 
>>
>> Flip the dependency chain so it matches the above. While here make
>> the UM driver depend on, not just recommend, the KM driver as it is
>> not functional with out it.
>>
>> Signed-off-by: Andrew Davis <afd@ti.com>
> 
> ...
> 
>> -RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
>> +RDEPENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> 
> I have issues with making this a full dependency here. We're adding the PVR components to mesa, software rendering is still there as a fallback. If someone wishes to remove the powervr umlibs with OPKG having this as a hard dependency will break a lot of things.

Not sure I'd agree that is what "depends" and "recommends" means for
a version of Mesa specifically built to use SGX/RGX hardware accel..

For now I'll drop this part of the patch for v2, at least until we
can sync on this.

Andrew
Andrew Davis April 6, 2023, 8:58 p.m. UTC | #4
On 4/6/23 2:46 PM, Denys Dmytriyenko wrote:
> On Thu, Apr 06, 2023 at 02:28:47PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
>> Previously the virtual/gpudriver provider would point to the kernel-mode
>> driver, which would cause Mesa libraries to depend on those and not the
>> user-mode driver. It is the user-mode driver that should depend on the
>> kernel-mode driver, not the other way around. The logical dependency
>> chain should be:
> 
> No, umlibs already has lots of virtual providers to choose from - virtual/egl,
> virtual/gles and even virtual/mesa. And virtual/gpudriver was specifically
> added to point to a kernel-mode driver - rogue-driver or sgx-km.
> 

But none of these virtual providers actually point to the umlibs anymore,
those all point to Mesa.

> So, flipping the dependency chain is probably the correct change, but changing
> what virtual/gpudriver means seems wrong.
> 

Not sure what the issue is with changing what this virtual provider means.
It is our creation that no one else uses, it exists today only as a flag to
tell our Mesa bbappend which backend to choose.

Andrew

> 
>> App -> virtual/libgl -> Mesa -> virtual/gpudriver -> IMG-UM -> IMG-KM
>>
>> Flip the dependency chain so it matches the above. While here make
>> the UM driver depend on, not just recommend, the KM driver as it is
>> not functional with out it.
>>
>> Signed-off-by: Andrew Davis <afd@ti.com>
>> ---
>>   meta-ti-bsp/conf/machine/include/am62xx.inc                 | 2 +-
>>   meta-ti-bsp/conf/machine/include/j721e.inc                  | 2 +-
>>   meta-ti-bsp/conf/machine/include/j721s2.inc                 | 2 +-
>>   meta-ti-bsp/conf/machine/include/j784s4.inc                 | 2 +-
>>   .../powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb     | 2 --
>>   .../powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb           | 2 --
>>   .../libgles/ti-img-rogue-umlibs_1.18.6276027.bb             | 5 ++++-
>>   .../recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb  | 5 +++--
>>   meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend     | 2 +-
>>   meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend        | 2 +-
>>   meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc              | 6 +++---
>>   11 files changed, 16 insertions(+), 16 deletions(-)
>>
>> diff --git a/meta-ti-bsp/conf/machine/include/am62xx.inc b/meta-ti-bsp/conf/machine/include/am62xx.inc
>> index af6a6db4..93151bcf 100644
>> --- a/meta-ti-bsp/conf/machine/include/am62xx.inc
>> +++ b/meta-ti-bsp/conf/machine/include/am62xx.inc
>> @@ -6,7 +6,7 @@ MACHINE_FEATURES += "screen gpu"
>>   SERIAL_CONSOLES = "115200;ttyS2"
>>   SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
>>   
>> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
>> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>>   
>>   # Default tiboot3.bin on AM62x is for HS-FS
>>   BBMULTICONFIG = "k3r5-hs-fs"
>> diff --git a/meta-ti-bsp/conf/machine/include/j721e.inc b/meta-ti-bsp/conf/machine/include/j721e.inc
>> index 8f9c24e6..05aa7515 100644
>> --- a/meta-ti-bsp/conf/machine/include/j721e.inc
>> +++ b/meta-ti-bsp/conf/machine/include/j721e.inc
>> @@ -3,7 +3,7 @@ SOC_FAMILY:append = ":j721e"
>>   
>>   MACHINE_FEATURES += "screen gpu"
>>   
>> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
>> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>>   
>>   # On J721e the file tiboot3.bin comes from the bootloader not ti-sci-fw
>>   do_image_wic[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy"
>> diff --git a/meta-ti-bsp/conf/machine/include/j721s2.inc b/meta-ti-bsp/conf/machine/include/j721s2.inc
>> index 70569a16..9a21df49 100644
>> --- a/meta-ti-bsp/conf/machine/include/j721s2.inc
>> +++ b/meta-ti-bsp/conf/machine/include/j721s2.inc
>> @@ -3,7 +3,7 @@ SOC_FAMILY:append = ":j721s2"
>>   
>>   MACHINE_FEATURES += "screen gpu"
>>   
>> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
>> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>>   
>>   TFA_BOARD = "generic"
>>   
>> diff --git a/meta-ti-bsp/conf/machine/include/j784s4.inc b/meta-ti-bsp/conf/machine/include/j784s4.inc
>> index d03ee4a4..74b64203 100644
>> --- a/meta-ti-bsp/conf/machine/include/j784s4.inc
>> +++ b/meta-ti-bsp/conf/machine/include/j784s4.inc
>> @@ -3,7 +3,7 @@ SOC_FAMILY:append = ":j784s4"
>>   
>>   MACHINE_FEATURES += "screen gpu"
>>   
>> -PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
>> +PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
>>   
>>   TFA_BOARD = "j784s4"
>>   
>> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
>> index 96fb7484..2e2fe1ac 100644
>> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
>> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
>> @@ -5,8 +5,6 @@ LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232
>>   
>>   inherit module
>>   
>> -PROVIDES = "virtual/gpudriver"
>> -
>>   MACHINE_KERNEL_PR:append = "b"
>>   PR = "${MACHINE_KERNEL_PR}"
>>   
>> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
>> index bf4fa98a..ed614038 100644
>> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
>> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
>> @@ -5,8 +5,6 @@ LIC_FILES_CHKSUM = "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9
>>   
>>   inherit module
>>   
>> -PROVIDES = "virtual/gpudriver"
>> -
>>   COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
>>   
>>   MACHINE_KERNEL_PR:append = "x"
>> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
>> index 94d14ded..f6f363b0 100644
>> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
>> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
>> @@ -3,6 +3,8 @@ HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
>>   LICENSE = "TI-TFL"
>>   LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
>>   
>> +PROVIDES = "virtual/gpudriver"
>> +
>>   inherit bin_package
>>   
>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>> @@ -22,7 +24,8 @@ TARGET_PRODUCT:am62xx = "am62_linux"
>>   PVR_BUILD = "release"
>>   PVR_WS = "lws-generic"
>>   
>> -RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
>> +RDEPENDS:${PN} += "libdrm"
>> +RDEPENDS:${PN} += "ti-img-rogue-driver"
>>   
>>   do_install:append() {
>>       if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
>> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
>> index 755cc4f5..3a91d9c3 100644
>> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
>> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
>> @@ -3,6 +3,8 @@ HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
>>   LICENSE = "TI-TSPA"
>>   LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
>>   
>> +PROVIDES = "virtual/gpudriver"
>> +
>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>>   COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
>>   
>> @@ -35,8 +37,7 @@ def use_initscript(d):
>>   inherit ${@oe.utils.ifelse(use_initscript(d), 'update-rc.d', '')}
>>   
>>   RDEPENDS:${PN} += "libdrm"
>> -
>> -RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
>> +RDEPENDS:${PN} += "ti-sgx-ddk-km"
>>   
>>   S = "${WORKDIR}/git"
>>   
>> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
>> index 912e9e9d..f505a569 100644
>> --- a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
>> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
>> @@ -1 +1 @@
>> -require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
>> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs ti-sgx-ddk-um', 'pvr-mesa.inc', '', d)}
>> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
>> index 912e9e9d..f505a569 100644
>> --- a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
>> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
>> @@ -1 +1 @@
>> -require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
>> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs ti-sgx-ddk-um', 'pvr-mesa.inc', '', d)}
>> diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>> index 96c484a7..d9e56d84 100644
>> --- a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>> +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>> @@ -23,8 +23,8 @@ S = "${WORKDIR}/git"
>>   SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
>>   
>>   PACKAGECONFIG:append = " \
>> -    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', 'pvr', '', d)} \
>> -    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', 'sgx', '', d)} \
>> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs', 'pvr', '', d)} \
>> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-um', 'sgx', '', d)} \
>>   "
>>   
>>   PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
>> @@ -45,4 +45,4 @@ do_install:append () {
>>       rm -rf ${D}${datadir}/pkgconfig
>>   }
>>   
>> -RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
>> +RDEPENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
>> -- 
>> 2.39.2
Denys Dmytriyenko April 6, 2023, 9:25 p.m. UTC | #5
On Thu, Apr 06, 2023 at 03:58:41PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> On 4/6/23 2:46 PM, Denys Dmytriyenko wrote:
> >On Thu, Apr 06, 2023 at 02:28:47PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> >>Previously the virtual/gpudriver provider would point to the kernel-mode
> >>driver, which would cause Mesa libraries to depend on those and not the
> >>user-mode driver. It is the user-mode driver that should depend on the
> >>kernel-mode driver, not the other way around. The logical dependency
> >>chain should be:
> >
> >No, umlibs already has lots of virtual providers to choose from - virtual/egl,
> >virtual/gles and even virtual/mesa. And virtual/gpudriver was specifically
> >added to point to a kernel-mode driver - rogue-driver or sgx-km.
> >
> 
> But none of these virtual providers actually point to the umlibs anymore,
> those all point to Mesa.

Ah, right...


> >So, flipping the dependency chain is probably the correct change, but changing
> >what virtual/gpudriver means seems wrong.
> >
> 
> Not sure what the issue is with changing what this virtual provider means.
> It is our creation that no one else uses, it exists today only as a flag to
> tell our Mesa bbappend which backend to choose.

It seems confusing - the kernel-mode for Rogue has the word "driver" in it.
If it's not being used anywhere else any longer, and it should point to 
user-mode part now, why not also rename it to, let's say, virtual/gpulibs?

How does Imagination Tech call this proprietary piece?
Randolph Sapp April 6, 2023, 9:30 p.m. UTC | #6
On 4/6/23 16:25, Denys Dmytriyenko wrote:
> On Thu, Apr 06, 2023 at 03:58:41PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
>> On 4/6/23 2:46 PM, Denys Dmytriyenko wrote:
>>> On Thu, Apr 06, 2023 at 02:28:47PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
>>>> Previously the virtual/gpudriver provider would point to the kernel-mode
>>>> driver, which would cause Mesa libraries to depend on those and not the
>>>> user-mode driver. It is the user-mode driver that should depend on the
>>>> kernel-mode driver, not the other way around. The logical dependency
>>>> chain should be:
>>>
>>> No, umlibs already has lots of virtual providers to choose from - virtual/egl,
>>> virtual/gles and even virtual/mesa. And virtual/gpudriver was specifically
>>> added to point to a kernel-mode driver - rogue-driver or sgx-km.
>>>
>>
>> But none of these virtual providers actually point to the umlibs anymore,
>> those all point to Mesa.
> 
> Ah, right...
> 
> 
>>> So, flipping the dependency chain is probably the correct change, but changing
>>> what virtual/gpudriver means seems wrong.
>>>
>>
>> Not sure what the issue is with changing what this virtual provider means.
>> It is our creation that no one else uses, it exists today only as a flag to
>> tell our Mesa bbappend which backend to choose.
> 
> It seems confusing - the kernel-mode for Rogue has the word "driver" in it.
> If it's not being used anywhere else any longer, and it should point to
> user-mode part now, why not also rename it to, let's say, virtual/gpulibs?
> 
> How does Imagination Tech call this proprietary piece?
> 
They just refer to the whole bag of software as the DDK. No specific 
terminology for the components. Even if there was it, wouldn't apply 
here, unfortunately, as this is specifically our packaged version. But 
no, they don't even give us a hint to create a naming convention here.
Andrew Davis April 10, 2023, 2:16 p.m. UTC | #7
On 4/6/23 4:30 PM, Randolph Sapp wrote:
> On 4/6/23 16:25, Denys Dmytriyenko wrote:
>> On Thu, Apr 06, 2023 at 03:58:41PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
>>> On 4/6/23 2:46 PM, Denys Dmytriyenko wrote:
>>>> On Thu, Apr 06, 2023 at 02:28:47PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
>>>>> Previously the virtual/gpudriver provider would point to the kernel-mode
>>>>> driver, which would cause Mesa libraries to depend on those and not the
>>>>> user-mode driver. It is the user-mode driver that should depend on the
>>>>> kernel-mode driver, not the other way around. The logical dependency
>>>>> chain should be:
>>>>
>>>> No, umlibs already has lots of virtual providers to choose from - virtual/egl,
>>>> virtual/gles and even virtual/mesa. And virtual/gpudriver was specifically
>>>> added to point to a kernel-mode driver - rogue-driver or sgx-km.
>>>>
>>>
>>> But none of these virtual providers actually point to the umlibs anymore,
>>> those all point to Mesa.
>>
>> Ah, right...
>>
>>
>>>> So, flipping the dependency chain is probably the correct change, but changing
>>>> what virtual/gpudriver means seems wrong.
>>>>
>>>
>>> Not sure what the issue is with changing what this virtual provider means.
>>> It is our creation that no one else uses, it exists today only as a flag to
>>> tell our Mesa bbappend which backend to choose.
>>
>> It seems confusing - the kernel-mode for Rogue has the word "driver" in it.
>> If it's not being used anywhere else any longer, and it should point to
>> user-mode part now, why not also rename it to, let's say, virtual/gpulibs?
>>

For GPU drivers, they are always two part drivers, so both mode drivers are
"drivers". In SGX we use "UM/KM" instead of "umlib/driver", we could always
rename the Rogue recipes if it's more clear. Since both are parts of the
"gpudriver" I still don't see an issue with pointing to either with that
label.

If a rename like "virtual/umlibs" makes it easier then I also have no
issue doing that.

>> How does Imagination Tech call this proprietary piece?
>>
> They just refer to the whole bag of software as the DDK. No specific terminology for the components. Even if there was it, wouldn't apply here, unfortunately, as this is specifically our packaged version. But no, they don't even give us a hint to create a naming convention here.

In the DDK they just call the UM side without a postfix, and the KM
side with "_km". So maybe "driver" and "driver_km", but as you say
it doesn't much matter here.

Andrew
Denys Dmytriyenko April 11, 2023, 8:03 p.m. UTC | #8
On Mon, Apr 10, 2023 at 09:16:27AM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> On 4/6/23 4:30 PM, Randolph Sapp wrote:
> >On 4/6/23 16:25, Denys Dmytriyenko wrote:
> >>On Thu, Apr 06, 2023 at 03:58:41PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> >>>On 4/6/23 2:46 PM, Denys Dmytriyenko wrote:
> >>>>On Thu, Apr 06, 2023 at 02:28:47PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> >>>>>Previously the virtual/gpudriver provider would point to the kernel-mode
> >>>>>driver, which would cause Mesa libraries to depend on those and not the
> >>>>>user-mode driver. It is the user-mode driver that should depend on the
> >>>>>kernel-mode driver, not the other way around. The logical dependency
> >>>>>chain should be:
> >>>>
> >>>>No, umlibs already has lots of virtual providers to choose from - virtual/egl,
> >>>>virtual/gles and even virtual/mesa. And virtual/gpudriver was specifically
> >>>>added to point to a kernel-mode driver - rogue-driver or sgx-km.
> >>>>
> >>>
> >>>But none of these virtual providers actually point to the umlibs anymore,
> >>>those all point to Mesa.
> >>
> >>Ah, right...
> >>
> >>
> >>>>So, flipping the dependency chain is probably the correct change, but changing
> >>>>what virtual/gpudriver means seems wrong.
> >>>>
> >>>
> >>>Not sure what the issue is with changing what this virtual provider means.
> >>>It is our creation that no one else uses, it exists today only as a flag to
> >>>tell our Mesa bbappend which backend to choose.
> >>
> >>It seems confusing - the kernel-mode for Rogue has the word "driver" in it.
> >>If it's not being used anywhere else any longer, and it should point to
> >>user-mode part now, why not also rename it to, let's say, virtual/gpulibs?
> >>
> 
> For GPU drivers, they are always two part drivers, so both mode drivers are
> "drivers". In SGX we use "UM/KM" instead of "umlib/driver", we could always
> rename the Rogue recipes if it's more clear.

Heh, and both ti-sgx-ddk-km and ti-img-rogue-driver recipes reside in the 
powervr-drivers directory... :) I know we've discussed already that it's 
no longer correct to call all these GPUs as PowerVR, but that's historic 
and isn't absolutely wrong. We have other references to "pvr" in other 
places, like Mesa now...


> Since both are parts of the
> "gpudriver" I still don't see an issue with pointing to either with that
> label.
> 
> If a rename like "virtual/umlibs" makes it easier then I also have no
> issue doing that.

I'd hate changing the behavior of an existing old variable, even if it's 
not that widely used in meta-ti - we don't know if there are any downstream 
layers using it, so don't want to break that.

So, the safest approach would be to leave KM recipes still providing this 
virtual/gpudriver, but add a new virtual provider for UM recipes to be 
used a dependency for Mesa. Whether it's "umlibs" or something else - I 
don't have strong preferences. Ryan?


> >>How does Imagination Tech call this proprietary piece?
> >>
> >They just refer to the whole bag of software as the DDK. No specific terminology for the components. Even if there was it, wouldn't apply here, unfortunately, as this is specifically our packaged version. But no, they don't even give us a hint to create a naming convention here.
> 
> In the DDK they just call the UM side without a postfix, and the KM
> side with "_km". So maybe "driver" and "driver_km", but as you say
> it doesn't much matter here.
> 
> Andrew
diff mbox series

Patch

diff --git a/meta-ti-bsp/conf/machine/include/am62xx.inc b/meta-ti-bsp/conf/machine/include/am62xx.inc
index af6a6db4..93151bcf 100644
--- a/meta-ti-bsp/conf/machine/include/am62xx.inc
+++ b/meta-ti-bsp/conf/machine/include/am62xx.inc
@@ -6,7 +6,7 @@  MACHINE_FEATURES += "screen gpu"
 SERIAL_CONSOLES = "115200;ttyS2"
 SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
 
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
 
 # Default tiboot3.bin on AM62x is for HS-FS
 BBMULTICONFIG = "k3r5-hs-fs"
diff --git a/meta-ti-bsp/conf/machine/include/j721e.inc b/meta-ti-bsp/conf/machine/include/j721e.inc
index 8f9c24e6..05aa7515 100644
--- a/meta-ti-bsp/conf/machine/include/j721e.inc
+++ b/meta-ti-bsp/conf/machine/include/j721e.inc
@@ -3,7 +3,7 @@  SOC_FAMILY:append = ":j721e"
 
 MACHINE_FEATURES += "screen gpu"
 
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
 
 # On J721e the file tiboot3.bin comes from the bootloader not ti-sci-fw
 do_image_wic[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy"
diff --git a/meta-ti-bsp/conf/machine/include/j721s2.inc b/meta-ti-bsp/conf/machine/include/j721s2.inc
index 70569a16..9a21df49 100644
--- a/meta-ti-bsp/conf/machine/include/j721s2.inc
+++ b/meta-ti-bsp/conf/machine/include/j721s2.inc
@@ -3,7 +3,7 @@  SOC_FAMILY:append = ":j721s2"
 
 MACHINE_FEATURES += "screen gpu"
 
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
 
 TFA_BOARD = "generic"
 
diff --git a/meta-ti-bsp/conf/machine/include/j784s4.inc b/meta-ti-bsp/conf/machine/include/j784s4.inc
index d03ee4a4..74b64203 100644
--- a/meta-ti-bsp/conf/machine/include/j784s4.inc
+++ b/meta-ti-bsp/conf/machine/include/j784s4.inc
@@ -3,7 +3,7 @@  SOC_FAMILY:append = ":j784s4"
 
 MACHINE_FEATURES += "screen gpu"
 
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-umlibs"
 
 TFA_BOARD = "j784s4"
 
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
index 96fb7484..2e2fe1ac 100644
--- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
@@ -5,8 +5,6 @@  LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232
 
 inherit module
 
-PROVIDES = "virtual/gpudriver"
-
 MACHINE_KERNEL_PR:append = "b"
 PR = "${MACHINE_KERNEL_PR}"
 
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
index bf4fa98a..ed614038 100644
--- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
@@ -5,8 +5,6 @@  LIC_FILES_CHKSUM = "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9
 
 inherit module
 
-PROVIDES = "virtual/gpudriver"
-
 COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
 
 MACHINE_KERNEL_PR:append = "x"
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
index 94d14ded..f6f363b0 100644
--- a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
+++ b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
@@ -3,6 +3,8 @@  HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
 LICENSE = "TI-TFL"
 LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
 
+PROVIDES = "virtual/gpudriver"
+
 inherit bin_package
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -22,7 +24,8 @@  TARGET_PRODUCT:am62xx = "am62_linux"
 PVR_BUILD = "release"
 PVR_WS = "lws-generic"
 
-RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
+RDEPENDS:${PN} += "libdrm"
+RDEPENDS:${PN} += "ti-img-rogue-driver"
 
 do_install:append() {
     if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
index 755cc4f5..3a91d9c3 100644
--- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
+++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
@@ -3,6 +3,8 @@  HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
 LICENSE = "TI-TSPA"
 LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
 
+PROVIDES = "virtual/gpudriver"
+
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
 
@@ -35,8 +37,7 @@  def use_initscript(d):
 inherit ${@oe.utils.ifelse(use_initscript(d), 'update-rc.d', '')}
 
 RDEPENDS:${PN} += "libdrm"
-
-RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
+RDEPENDS:${PN} += "ti-sgx-ddk-km"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
index 912e9e9d..f505a569 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend
@@ -1 +1 @@ 
-require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
+require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs ti-sgx-ddk-um', 'pvr-mesa.inc', '', d)}
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
index 912e9e9d..f505a569 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend
@@ -1 +1 @@ 
-require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
+require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs ti-sgx-ddk-um', 'pvr-mesa.inc', '', d)}
diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
index 96c484a7..d9e56d84 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
+++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
@@ -23,8 +23,8 @@  S = "${WORKDIR}/git"
 SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
 
 PACKAGECONFIG:append = " \
-    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', 'pvr', '', d)} \
-    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', 'sgx', '', d)} \
+    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-umlibs', 'pvr', '', d)} \
+    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-um', 'sgx', '', d)} \
 "
 
 PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
@@ -45,4 +45,4 @@  do_install:append () {
     rm -rf ${D}${datadir}/pkgconfig
 }
 
-RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
+RDEPENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"