为了使Android在大多数硬件平台上启动,开发人员通常必须将开源代码与专有文件混合使用。这些所谓的Blob由供应商分发,以支持某些特定于平台的功能。来自Collabora的 Robert Foss 报告说 ,现在完全可以在不使用专有Blob的情况下在i.MX6平台上启动Android。
Mesa和gbm_gralloc中都添加了对缓冲区修饰符的支持。Mesa已为许多缓冲区分配功能和GBM(gbm_gralloc使用的Mesa提供的API)添加了支持。另一方面,gbm_gralloc又增加了对使用新GBM API调用GBM_BO_IMPORT_FD_MODIFIER的支持,该调用将导入缓冲区对象以及相关信息,如所讨论的缓冲区对象使用的修饰符。
恩智浦的i.MX6是众多嵌入式SoC之一,完全不再需要专有blob即可启动Android。这使i.MX6作为开发平台更具吸引力,也为将来支持i.MX8平台奠定了基础。
修改器到位后,它们用于表示缓冲区的不同属性。这些属性可以涵盖有关缓冲区的一系列不同信息,例如,压缩和 切片。
对于配备了iMX6和Vivante GPU的情况,修饰符与平铺相关。原因是缓冲区可以以不同的方式平铺(平铺,超级平铺等),也可以根本不平铺(线性)。在将缓冲区发送到显示器之前,它们需要使相关的切片信息可用,以使发送出的实际图像不会被平铺。
为了更好地理解所有这些工作原理,请观看下面的视频,以了解ZII RDU2开发板(i.MX 6QuadPlus)使用Mesa开源图形堆栈启动Android。
尽管这对于开源来说是一个巨大的胜利,但我们不应该期望许多OEM在他们的设备中开始使用此SoC。该平台的主要缺点之一是它的时代。该平台于2011年首次亮相。