Message ID | 20230412184242.29743-6-afd@ti.com |
---|---|
State | Rejected |
Delegated to: | Ryan Eatmon |
Headers | show |
Series | [meta-ti,master/kirkstone,v2,1/6] ti-sgx-ddk-um: Remove RDEPENDS on libdrm-omap | expand |
On Wed, Apr 12, 2023 at 01:42:42PM -0500, Andrew Davis via lists.yoctoproject.org wrote: > The names we use for the GPU components are not consistent nor do the > intuitively describe their function. Let's fix that. > > We do 3 things, first powervr-drivers/ contains only the kernel-mode > half of the driver, for GPUs most of the driver lives in userspace, > and the "PowerVR" name is no longer correct for the latest GPUs. Rename > this to ti-img-gpu-km/ which matches better with our naming for the > user-mode half and the TI/IMG codecs. > > Next, ti-img-rogue-driver is renamed ti-img-rogue-km, same reasoning > as above and matches the SGX version of the same. > > The usermode driver lives in a directory named "libgles", but the > driver does not just provide libgles, it also can provide OpenCL, > DRI, and Vulkan. Rename to match the kernel-mode half. > > Lastly, the acronym "DDK" is short for "Driver Development Kit". > This kit is provided by Imagination to TI and is what we use to > "Develop" the "Driver". What we ship is not the DDK, it is the > driver itself. The name DDK seems to have just been passed through. > Remove use of "ddk" where we can. > > To summarize: > > * powervr-drivers -> ti-img-gpu-km > * ti-img-rogue-driver -> ti-img-rogue-km > * ti-sgx-ddk-km -> ti-img-sgx-km > * libgles -> ti-img-gpu-umlibs > * ti-sgx-ddk-um -> ti-img-sgx-umlibs Renaming recipes will have a huge impact downstream! Last time we renamed omap5-sgx-ddk-um-linux to ti-sgx-ddk-um, there's been a lot of breakage and tons of complaints from customers and the community at large (in public and even more so in private)... First of all, you are only advised to do such thing in master (and not right before the next release, which is now), definitely not in a stable branch, especially not in a LTS branch (e.g. kirkstone). Second, do it during the version bump - keep the old version under the old name, add a new version with the new name. Third, you have to provide backward compatibility and setup corresponding preemption/replacement policy (at least RPROVIDES, RREPLACES, RCONFLICTS). But that alone won't help with downstream layers adding their bbappends. Just checking a few public OEM layers that are downstream to meta-ti (and that's just the tip of the iceberg, as majority of customer layers are not even public!): Phytec: https://github.com/phytec/meta-phytec/blob/kirkstone/dynamic-layers/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bbappend Toradex (seems to be a bit outdated, I'm guessing they pin to specific SHA): https://git.toradex.com/cgit/meta-toradex-ti.git/tree/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bbappend?h=kirkstone-6.x.y https://git.toradex.com/cgit/meta-toradex-ti.git/tree/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bbappend?h=kirkstone-6.x.y Variscite: Their meta-variscite-bsp-ti layer doesn't appear to touch graphics and is still on dunfell... SanCloud: Also doesn't appear to modify graphics recipes directly. AGL: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git;a=blob;f=meta-agl-bsp/meta-ti-bsp/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km_%25.bbappend;hb=HEAD https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git;a=blob;f=meta-agl-bsp/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_%25.bbappend;hb=HEAD These are just bbappends, but I'm sure there are other references to these current names in configs and/or their recipes... AFAIK, AGL, for example, hasn't yet fully recovered from the latest graphics changes separating Mesa - there's work in progress going on right now. I fully understand the desire to simplify and unify things, like directory and recipe names. But it comes with a lot of complications and require extra thought put into how not to break things for everyone around... Yocto Project guidelines for public BSPs are much stricter than those for Distros or customer/product layers. It may be convenient to think of meta-ti as a "leaf" of the project, but it is actually quite a large "branch" with other "branches" and "leaves" downstream depending on it...
On 4/12/23 3:21 PM, Denys Dmytriyenko wrote: > On Wed, Apr 12, 2023 at 01:42:42PM -0500, Andrew Davis via lists.yoctoproject.org wrote: >> The names we use for the GPU components are not consistent nor do the >> intuitively describe their function. Let's fix that. >> >> We do 3 things, first powervr-drivers/ contains only the kernel-mode >> half of the driver, for GPUs most of the driver lives in userspace, >> and the "PowerVR" name is no longer correct for the latest GPUs. Rename >> this to ti-img-gpu-km/ which matches better with our naming for the >> user-mode half and the TI/IMG codecs. >> >> Next, ti-img-rogue-driver is renamed ti-img-rogue-km, same reasoning >> as above and matches the SGX version of the same. >> >> The usermode driver lives in a directory named "libgles", but the >> driver does not just provide libgles, it also can provide OpenCL, >> DRI, and Vulkan. Rename to match the kernel-mode half. >> >> Lastly, the acronym "DDK" is short for "Driver Development Kit". >> This kit is provided by Imagination to TI and is what we use to >> "Develop" the "Driver". What we ship is not the DDK, it is the >> driver itself. The name DDK seems to have just been passed through. >> Remove use of "ddk" where we can. >> >> To summarize: >> >> * powervr-drivers -> ti-img-gpu-km >> * ti-img-rogue-driver -> ti-img-rogue-km >> * ti-sgx-ddk-km -> ti-img-sgx-km >> * libgles -> ti-img-gpu-umlibs >> * ti-sgx-ddk-um -> ti-img-sgx-umlibs > > Renaming recipes will have a huge impact downstream! Last time we renamed > omap5-sgx-ddk-um-linux to ti-sgx-ddk-um, there's been a lot of breakage and > tons of complaints from customers and the community at large (in public and > even more so in private)... > > First of all, you are only advised to do such thing in master (and not right > before the next release, which is now), definitely not in a stable branch, > especially not in a LTS branch (e.g. kirkstone). > That's fine, this last patch doesn't need to go to kirkstone, I'll post it separately for master branch only. > Second, do it during the version bump - keep the old version under the old > name, add a new version with the new name. > > Third, you have to provide backward compatibility and setup corresponding > preemption/replacement policy (at least RPROVIDES, RREPLACES, RCONFLICTS). > But that alone won't help with downstream layers adding their bbappends. > > Just checking a few public OEM layers that are downstream to meta-ti (and > that's just the tip of the iceberg, as majority of customer layers are not > even public!): > > Phytec: > https://github.com/phytec/meta-phytec/blob/kirkstone/dynamic-layers/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bbappend > > Toradex (seems to be a bit outdated, I'm guessing they pin to specific SHA): > https://git.toradex.com/cgit/meta-toradex-ti.git/tree/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bbappend?h=kirkstone-6.x.y > https://git.toradex.com/cgit/meta-toradex-ti.git/tree/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bbappend?h=kirkstone-6.x.y > > Variscite: > Their meta-variscite-bsp-ti layer doesn't appear to touch graphics and is > still on dunfell... > > SanCloud: > Also doesn't appear to modify graphics recipes directly. > > AGL: > https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git;a=blob;f=meta-agl-bsp/meta-ti-bsp/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km_%25.bbappend;hb=HEAD > https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git;a=blob;f=meta-agl-bsp/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_%25.bbappend;hb=HEAD > All three changes to the KM above are for adding compiler name support which is only needed due to our odd way of detection arch. That can be fixed then these should go away. The other two for UM are easy enough to fix and we should fix them in meta-ti for them. Meta-ti is the upstream, fixes should go upstream. I get not doing this to the LTS branch, but for master branch we do need to make forward progress and clean things up like this patch does. > These are just bbappends, but I'm sure there are other references to these > current names in configs and/or their recipes... > > AFAIK, AGL, for example, hasn't yet fully recovered from the latest graphics > changes separating Mesa - there's work in progress going on right now. > Well SGX isn't working at all right now now in kirkstone, so not sure what they are trying to fix at the moment.. > I fully understand the desire to simplify and unify things, like directory > and recipe names. But it comes with a lot of complications and require extra > thought put into how not to break things for everyone around... > > Yocto Project guidelines for public BSPs are much stricter than those for > Distros or customer/product layers. It may be convenient to think of meta-ti > as a "leaf" of the project, but it is actually quite a large "branch" with > other "branches" and "leaves" downstream depending on it... >
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch b/meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-rogue-km/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch similarity index 100% rename from meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch rename to meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-rogue-km/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb b/meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-rogue-km_1.18.6276027.bb similarity index 100% rename from meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb rename to meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-rogue-km_1.18.6276027.bb diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-sgx-km_1.17.4948957.bb similarity index 97% rename from meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb rename to meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-sgx-km_1.17.4948957.bb index bf4fa98a..a624017d 100644 --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb +++ b/meta-ti-bsp/recipes-bsp/ti-img-gpu-km/ti-img-sgx-km_1.17.4948957.bb @@ -45,4 +45,4 @@ do_install:am65xx() { make -C ${STAGING_KERNEL_DIR} M=${B}/eurasia_km/eurasiacon/binary_omap_linux_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install } -RRECOMMENDS:${PN} += "ti-sgx-ddk-um" +RRECOMMENDS:${PN} += "ti-img-sgx-umlibs" 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..17187330 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-km ti-img-sgx-km', '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..17187330 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-km ti-img-sgx-km', '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..85f6968e 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-km', 'pvr', '', d)} \ + ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-sgx-km', 'sgx', '', d)} \ " PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss" diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb b/meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-rogue-umlibs_1.18.6276027.bb similarity index 94% rename from meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb rename to meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-rogue-umlibs_1.18.6276027.bb index 94d14ded..32525d48 100644 --- a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb +++ b/meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-rogue-umlibs_1.18.6276027.bb @@ -22,7 +22,8 @@ TARGET_PRODUCT:am62xx = "am62_linux" PVR_BUILD = "release" PVR_WS = "lws-generic" -RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver" +RDEPENDS:${PN} += "mesa-megadriver libdrm" +RDEPENDS:${PN} += "ti-img-rogue-km" 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/pvrsrvkm.rules b/meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-sgx-umlibs/pvrsrvkm.rules similarity index 100% rename from meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um/pvrsrvkm.rules rename to meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-sgx-umlibs/pvrsrvkm.rules diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-sgx-umlibs_1.17.4948957.bb similarity index 98% rename from meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb rename to meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-sgx-umlibs_1.17.4948957.bb index 755cc4f5..4b34e8b7 100644 --- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb +++ b/meta-ti-bsp/recipes-graphics/ti-img-gpu-umlibs/ti-img-sgx-umlibs_1.17.4948957.bb @@ -36,7 +36,7 @@ inherit ${@oe.utils.ifelse(use_initscript(d), 'update-rc.d', '')} RDEPENDS:${PN} += "libdrm" -RRECOMMENDS:${PN} += "ti-sgx-ddk-km" +RRECOMMENDS:${PN} += "ti-img-sgx-km" S = "${WORKDIR}/git"
The names we use for the GPU components are not consistent nor do the intuitively describe their function. Let's fix that. We do 3 things, first powervr-drivers/ contains only the kernel-mode half of the driver, for GPUs most of the driver lives in userspace, and the "PowerVR" name is no longer correct for the latest GPUs. Rename this to ti-img-gpu-km/ which matches better with our naming for the user-mode half and the TI/IMG codecs. Next, ti-img-rogue-driver is renamed ti-img-rogue-km, same reasoning as above and matches the SGX version of the same. The usermode driver lives in a directory named "libgles", but the driver does not just provide libgles, it also can provide OpenCL, DRI, and Vulkan. Rename to match the kernel-mode half. Lastly, the acronym "DDK" is short for "Driver Development Kit". This kit is provided by Imagination to TI and is what we use to "Develop" the "Driver". What we ship is not the DDK, it is the driver itself. The name DDK seems to have just been passed through. Remove use of "ddk" where we can. To summarize: * powervr-drivers -> ti-img-gpu-km * ti-img-rogue-driver -> ti-img-rogue-km * ti-sgx-ddk-km -> ti-img-sgx-km * libgles -> ti-img-gpu-umlibs * ti-sgx-ddk-um -> ti-img-sgx-umlibs Signed-off-by: Andrew Davis <afd@ti.com> --- ...compiler-support-OpenEmbedded-nodistro-internal-aarc.patch | 0 .../ti-img-rogue-km_1.18.6276027.bb} | 0 .../ti-img-sgx-km_1.17.4948957.bb} | 2 +- 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 | 4 ++-- .../ti-img-rogue-umlibs_1.18.6276027.bb | 3 ++- .../ti-img-sgx-umlibs}/pvrsrvkm.rules | 0 .../ti-img-sgx-umlibs_1.17.4948957.bb} | 2 +- 9 files changed, 8 insertions(+), 7 deletions(-) rename meta-ti-bsp/recipes-bsp/{powervr-drivers/ti-img-rogue-driver => ti-img-gpu-km/ti-img-rogue-km}/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch (100%) rename meta-ti-bsp/recipes-bsp/{powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb => ti-img-gpu-km/ti-img-rogue-km_1.18.6276027.bb} (100%) rename meta-ti-bsp/recipes-bsp/{powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb => ti-img-gpu-km/ti-img-sgx-km_1.17.4948957.bb} (97%) rename meta-ti-bsp/recipes-graphics/{libgles => ti-img-gpu-umlibs}/ti-img-rogue-umlibs_1.18.6276027.bb (94%) rename meta-ti-bsp/recipes-graphics/{libgles/ti-sgx-ddk-um => ti-img-gpu-umlibs/ti-img-sgx-umlibs}/pvrsrvkm.rules (100%) rename meta-ti-bsp/recipes-graphics/{libgles/ti-sgx-ddk-um_1.17.4948957.bb => ti-img-gpu-umlibs/ti-img-sgx-umlibs_1.17.4948957.bb} (98%)