游戏传奇首页
游戏我的天下首页
最好看的新闻,最实用的信息
06月18日 5.3°C-11.6°C
澳元 : 人民币=4.79
悉尼
今日澳洲app下载
登录 注册

M1 Mac开源驱动开发者揭秘了苹果定制GPU解决方案的特殊渲染方法

2022-05-16 来源: cnBeta 原文链接 评论0条

访问:

苹果在线商店(中国) - Mac

M1 Mac开源驱动开发者揭秘了苹果定制GPU解决方案的特殊渲染方法 - 1

据悉,问题始于 GPU 对内存访问的不畅。作为一款性能超强的 GPU,它与iPhone上的 A 系列移动SoC 一样,需要通过走一些捷径来保持高效率。

可知与独显相比,M1 没有直接渲染到帧缓冲区,而是对帧进行两次传递 —— 首先找到顶点,然后搞定其它更加密集的事务。

M1 Mac开源驱动开发者揭秘了苹果定制GPU解决方案的特殊渲染方法 - 2

为此,苹果利用了专用硬件将帧分割成小块(基本上是迷你帧),并于二传时一次取一个小块来处理。

平铺方案很好地化解了缓存资源不足的问题,但为了稍后将之凑成完整的一帧,GPU 需要保留每个顶点数据的缓冲区。

结果 Rosenzweig 发现,每当这个缓冲区溢出时、渲染就无法正常进行下去。

M1 Mac开源驱动开发者揭秘了苹果定制GPU解决方案的特殊渲染方法 - 3

苹果在某个演示文稿中解释称,当缓冲区已满时,GPU 只会输出部分渲染(本例中为半只兔子)。

在第一方应用程序中,苹果称之为参数缓冲区,且这个名词术语似乎取自 Imagination 的 PowerVR 文档。

作为一家总部位于英国的、与 ARM 类似的芯片设计公司,Imagination 于 2020 年初与苹果签署了一项广泛的知识产权许可协议。

而 2020 下半年上市的 M1 定制 SoC,就以该公司的 PowerVR GPU 架构为其图形硬件的基础。

M1 Mac开源驱动开发者揭秘了苹果定制GPU解决方案的特殊渲染方法 - 4

言归正传,正如你可能已经猜到的那样,软件可通过将各部分渲染叠加到一起、以完成整只兔子的渲染(当然中间还有十几个额外的步骤)。

遗憾的是,这种渲染方式仍然不太准确(仔细留意兔子的足部)。Rosenzweig 指出,这是因为帧的不同部分在颜色 / 深度缓冲区之间被分割,而后者在加载部分渲染时会出现异常行为。

好消息是,得益于苹果驱动程序的逆向工程参考配置,Asahi Linux 开发团队最终搞定了这个问题,最终渲染输出的兔子如图所示。

M1 Mac开源驱动开发者揭秘了苹果定制GPU解决方案的特殊渲染方法 - 5

TechSpot总结道:不仅 Rosenzweig 的 M1 开源图形驱动程序跳过了相关环节来渲染图像,而是该 GPU 在架构设计之初就没有考虑到此类 3D 渲染应用场景。

即便如此,苹果还是相当巧妙地让 PowerVR 图形 IP 成为了可与独显相媲美的软硬件解决方案。即便在许多方面都没有实现完全的超越,其表现依然相当酷炫。

最后,想要深入了解 M1 GPU 渲染工作、以及针对 M1 逆向工程的其它探索,还请移步至 Rosenzweig 的个人技术博客和 Asahi Linux发行版网站查看。

相关文章:

进展报告:Asahi Linux在苹果的M1架构上实现了基本可用的桌面功能

Asahi团队已在M1 Pro上顺利启动Linux:后续仍有很多工作

Asahi Linux致力于将M1 Mac NVMe驱动支持并入Linux 5.19主线内核

今日评论 网友评论仅供其表达个人看法,并不表明网站立场。
最新评论(0)
暂无评论


Copyright Media Today Group Pty Ltd.隐私条款联系我们商务合作加入我们

分享新闻电话: (02) 8999 8797

联系邮箱: info@sydneytoday.com 商业合作: business@sydneytoday.com网站地图

法律顾问:AHL法律 – 澳洲最大华人律师行新闻爆料:news@sydneytoday.com

友情链接: 华人找房 到家 今日支付Umall今日优选