macOS 15.8.2 更新导致 OpenGL 崩溃

macOS 15.8.2 Breaks OpenGL

在将 MacBook Pro (M1 Pro) 从 macOS 15.8 升级至 15.8.2 测试版后,所有基于窗口表面的 OpenGL 渲染均失效,窗口显示为空白。问题影响 NSOpenGLView 和 NSOpenGLContext,导致 glCheckFramebufferStatus 返回 GL_FRAMEBUFFER_UNDEFINED 错误。尽管离屏 FBO 和 CAOpenGLLayer 工作正常,但 Sony Imaging Edge、DJI Studio、kitty、Alacritty、Godot 及 Bambu Studio 等多款应用均受波及。开发者已提交反馈报告,目前建议的临时方案是改用 CAOpenGLLayer 进行渲染。

只有窗口表面路径损坏,CAOpenGLLayer 和 NSOpenGLLayer 在同一进程中仍能正确渲染。
  1. Aurornis

    15.8.2 还没发布。

    这是来自开发者论坛的报告,人们本该在那里报告这类 Bug。

    该帖子中的第二条回复是一位 Apple 工程师,他确认了该 Bug,分配了一个编号,并让当事人在有新构建版本时重新测试。

    如果你只读这里的评论,你会对正在发生的事情产生完全错误的印象。

  2. mosura

    Apple 软件质量的整体下滑似乎正在加速。我们正处于“千刀万剐”(thousand papercut)的阶段,大量小功能都无法正常工作。

    我的一台 Mac 养成了最疯狂的毛病:失去音频输出能力,然后试图将音频路由到另一台设备——这甚至是我都不知道存在的功能。

  3. ryandrake

    可悲但不足为奇。Apple 早在 2018 年发布 macOS 10.14 Mojave 和 iOS 12 时,就已经将 OpenGL 子系统标记为废弃(deprecated)。不知是何种奇迹让它一直运行至今。虽然我讨厌 Apple 可以随意宣布一个广泛使用的跨平台 API 为“废弃”,但这是他们的系统,不是我们的。因此,如果他们不小心搞坏了它,我们也不该指望他们会在意或伸出援手。

  4. flohofwoe

    不幸的是,Apple 的 OpenGL 模拟层(shim)或(尤其是)窗口系统胶水代码出现比特腐烂(bitrot)真的并不罕见。

    例如,我最近遇到的 Apple GL 模拟层的一个实际 Bug 是:当从像素解包缓冲区绑定点(pixel unpack buffer bindpoint)复制数据时,提供源数据偏移量的两种方式都失效了。

    我怀疑任何非主流路径上的功能(例如仅被少数遗留但流行的 GL 应用程序使用的功能)根本没人测试,甚至可能压根就没有测试。

    PS:这也是个人看法,与 Apple 的混乱无关:干脆放弃 GL 吧,它真的不是一个好用的 API(至少从 2.0 版本开始就不是了)。Vulkan 也不完美,但至少在过去几年里它开始缓慢地向正确的方向转变;而 GL 将永远是一团糟,因为 Khronos 也放弃了该 API——而在 Apple 设备上,与 GL 和 Vulkan 相比,Metal 显然是更好(且更易于开发)的选择。

  5. corysama

    现在提一下这个似乎正是好时机:LunarG 的 Vulkan-on-Metal 封装器最近达到了 Vulkan 1.4 符合性。

    https://www.lunarg.com/the-state-of-vulkan-on-apple-oct-2026...

    现在我们需要 Mesa 的 OpenGL-on-Vulkan 在运行于 KosmicKrisp 时达到生产就绪状态。

    https://docs.mesa3d.org/drivers/zink.html

  6. Haunt1000

    没错,我还在用 15.5。但随机应用窗口会闪烁!闪烁!而且这是一台全新的 2025 款 M4 MacBook Air。这种事我本以为只会在 1998 年的 Linux 上看到吧?

  7. 1over137

    什么鬼。15.8.1 才是当前版本,15.8.2 应该只包含安全修复。

  8. potatoproduct

    MacOS 上有一些非常恼人的音频和蓝牙 Bug。我甚至安装了第三方软件来强行修复其中一个问题。

  9. cadamsdotcom

    相关的积极消息:Apple 仍在照顾 macOS 15 的用户真是太棒了!

    我对 Apple 内部那些持续为 macOS 15 打补丁的人们感激不尽。

  10. zimpenfish

    在 macOS Version 26.6 (25G70) 上无法复现(但我无法在论坛上发帖回复,因为 developer.apple.com 现在讨厌我。)

    我得到了绿色三角形和 `hasDrawable=1 status=0x8cd5 glError=0x0`,这是预期的结果。

同日更多故事

2026-10-18