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...

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#16388): 
https://lists.yoctoproject.org/g/meta-ti/message/16388
Mute This Topic: https://lists.yoctoproject.org/mt/98225809/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to