macOS 15.8.2 破坏了 OpenGL

一则关于 macOS 15.8.2 发行候选版的讨论称其会在部分系统上破坏 OpenGL 渲染,这让仍依赖 Apple 这套已弃用图形 API 的开发者更加不满。评论者质疑 Apple 的测试流程、bug 报告处理方式以及更广泛的软件质量,并提到近期 macOS 和 iOS 在音频、显示、窗口管理等子系统上的回归。讨论还涉及 Apple 逐步从 OpenGL 和 Vulkan 等跨平台标准转向 Metal 的长期影响,以及这对可移植性、旧软件和开发者信任意味着什么。

macOS 15.8.2 RC 中的 OpenGL 损坏问题

  • macOS 15.8.2 的 RC 似乎在许多系统上完全破坏了 OpenGL,尽管它只是一个面向两年历史操作系统的维护/安全类小版本更新。
  • 有人指出这是预发布软件,而 RC 正是这类漏洞应该浮现出来的阶段;也有人认为,如此核心、历史悠久的 API 在这个时间点退化实在令人不安。

Shim、Vulkan 与 API 翻译层

  • 多条评论讨论了图形 API 的分层:
    • Apple 在 Apple Silicon 上的 OpenGL 实现本来就运行在 Metal 之上,并带有私有扩展。
    • ANGLE(OpenGL ES → Metal/D3D/Vulkan)被举为先例;浏览器中的 WebGL2 在 macOS 上使用 ANGLE+Metal。
    • LunarG 的 Vulkan-on-Metal 实现最近达到了 Vulkan 1.4 一致性;Mesa 的 Zink(OpenGL-on-Vulkan)被视为下一块拼图。
  • 担忧在于:把 OpenGL 翻译到现代 API 很难,因为 OpenGL 的动态性很强;状态的“hash-and-cache”会导致对象抖动和额外开销。
  • 有人认为分层的 Vulkan↔Metal 翻译是可接受的;而把 OpenGL 建在其上时,性能和复杂度问题才真正显现。

OpenGL、可移植性与弃用

  • Apple 于 2018 年弃用了 OpenGL,并且从未超过 4.1,缺少许多桌面端重要特性。
  • 一些人认为这次损坏与 Apple 已不再关心旧版 API 一致;另一些人仍然期望这些 API 既然还在发行,就应保持稳定。
  • OpenGL 所谓的“通用”可移植性受到批评:扩展“意大利面条”、平台怪癖以及创建上下文的痛苦,使真正的一次编写到处运行变得罕见。
  • WebGL/WebGL2 被描述为如今唯一广泛可移植的 OpenGL 类表面;WebGPU 被提及为可能的未来方向。

Apple 软件质量与回归担忧

  • 许多轶事描述了 macOS 和 iOS 中日益增多的 bug:音频路由失败、蓝牙异常、显示问题、Mission Control/窗口管理器回归、搜索和设置 bug、UI 卡顿,以及长期存在的崩溃。
  • 有人认为与旧版 macOS 相比,质量已经明显下降;也有人反驳说对大多数用户而言系统仍然稳定,大规模部署中看到的问题相对较少。
  • 讨论还涉及:AI 辅助的“垃圾代码”开发、SwiftUI/框架频繁变动,或管理文化是否是罪魁祸首。

Bug 报告、RC 与 Apple 的流程

  • Apple 工程师论坛回复里的那句“请持续在每个新版本上重新测试;我们不能评论修复或时间线”广受批评,被认为是在把 QA 责任推给志愿者,并且没有任何问责。
  • 也有人指出 Apple 的保密规定:工程师通常不能承认具体缺陷、时间线或内部测试细节。
  • 对 sysdiagnose 请求和不透明的内部 bug 跟踪系统的批评认为它们令人沮丧;多人表示自己已经不再提交 bug,因为高质量报告常常被搁置,或在未解决的情况下被关闭。

生态系统、替代方案与开发者影响力

  • 有人坚持认为工程师和专业用户是关键“预警器”;如果 Apple 让他们失望,应用和工具就会迁移到别处。
  • 也有人认为 Apple 真正的基本盘是大众消费者;只要硬件地位和生态锁定仍在,开发者圈层的痛点不会改变大局。
  • 讨论中还提到了 Linux 和 Windows 作为替代方案:Linux 因开放性和硬件覆盖而受到称赞,但也因应用缺口和碎片化而受批评;Windows 在某些方面被认为更糟,但仍然是桌面游戏/图形的主要目标平台。