macOS 26: most of Apple's app icons are drawn without their foreground layer — NVMTLDriver can't translate visible function references (1.4.0)
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Start by reading the NVMTLDriver log entries showing “unsupported Metal visible function reference” from iconservicesagent, the Dock, and Spotlight, then trace the shader re-translation path in the driver. Compare a failing layered Apple icon with an icon that renders normally. Done means the affected foreground layers render correctly on macOS 26 and the repro logs no longer show the translation failure.
索引モデルが issue の本文から書いたものです。
説明
Summary
On macOS 26.7.1 the desktop works once the macOS 26 accelerator is rebuilt (#51, #60), but most of Apple's own app icons are drawn without their foreground layer: only the background colour is left, sometimes with a blurred shape. Third-party icons and a few Apple icons look normal. It is the same with the 1.1.0 and the 1.4.0 GPU userland. In the same boot, NVMTLDriver logs shader re-translation failures in the processes that draw icons (iconservicesagent, the Dock, Spotlight).
Environment
| GPU | NVIDIA GeForce RTX 5080 16 GB, PCI 10de:2c02, subsystem 19da:1762 (same machine as #25 and #51) |
| CPU / board | AMD Ryzen 9 9900X, ASUS TUF GAMING B850-PLUS WIFI, BIOS 1804 |
| macOS | 26.7.1 (25G241), clean install; SMBIOS MacPro7,1 |
| OpenCore | 1.0.9 |
| SIP | 0x0A43 |
| boot-args | alcid=11 -lilubetaall -amfipassbeta nvfb=1 nvaccel=1 nvfbheads=4 -nvkmsnosmooth amfi_get_out_of_my_way=0x1 amfi=0x80 keepsyms=1 debug=0x100 (no -v) |
| Display | one 5K monitor (5120×2880 @ 60 Hz, UI 2560×1440) on DP |
| Driver | package 1.4.0 (nullmoth-nvidia-1.4.0.tar.gz, sha256 f4ee3fba…), installed with its install.sh (the two backup lines changed to ditto as in #59, because this was an update), with Library/NullMoth/kexts/26/NVAccel.kext rebuilt from v1.4.0 with NM_TAHOE=1 (sha256 cda5c984…, UUID A4E22E88-79D3-3436-9731-ACC4B0DF3E2B), because the shipped one is still the VRAM ABI 1 binary (#51) |
| Also applied | OpenCore Legacy Patcher root patches (Modern Wireless, Modern Audio) |
Driver health in the same boot: all four kexts loaded; 0 ABI mismatch, 0 REFUSED by the framebuffer, 0 Display Pipe transaction submission failed; display armed; Metal 3; WindowServer runs the Metal compositor on NVMTLDriver.
What looks wrong
Screenshots of the Dock and the Applications folder (1.4.0) are at the end of this section.
- Foreground missing or blurred (background colour only): Finder, Safari, Messages, Mail, System Settings, App Store, Apps, Weather, Maps, Font Book, Chess, Mission Control, Calculator, Music, Home, Time Machine, Books, Passwords, Find My, Reminders, Freeform, Phone, Voice Memos, Image Capture, Contacts, Dictionary, Automator. Calendar shows the background and a grid of dots instead of the date (with the 1.1.0 userland it showed only a red dot).
- Look normal: Clock (the hands are drawn), Shortcuts, Journal, Stocks, Tips, Stickies, Notes, TextEdit, Games, Preview, and all third-party icons.
- Window chrome (sidebar, toolbar) looks normal.
Log
log show --last boot --style compact --predicate 'sender == "NVMTLDriver"', one boot on 1.4.0: 73 lines (iconservicesagent 24, WindowServer 21, Spotlight 13, com.apple.dock.extra 11, mediaanalysisd 3, DockHelper 1).
23 function constants: re-translate FAILED: native emitter: unsupported Metal visible function reference; dynamic linked functions are not expressible in Logical SPIR-V
(Spotlight 8, iconservicesagent 8, com.apple.dock.extra 6, DockHelper 1)
14 buffer texture: VkFormat 16 stays single-format - its sRGB/linear view format 22 is refused (linear features 0x0, VkResult -11)
8 vk: vkAllocateMemory refused the imported host pointer 0x… (… bytes, memory type 2)
24 reflection: <name> has no AIR — cannot be reflected
(primitive_image_fragment 7, primitive_image_vertex 6, (no fragment function) 3, SimpleVertex 2, ViewportToNDC, UberResampleLanczosFragmentBGRA, SimpleTextureFragment, plane__vertex, GPUPass, accumulator_color_fragment)
1 newTiledTextureWithDescriptor: linear view refused -> copied texture (108x108 bpr 448; said once)
(and 3 other lines)
Example line:
10:19:02.100 Df iconservicesagent[592:1068] (NVMTLDriver) NullMoth: function constants: re-translate FAILED: native emitter: unsupported Metal visible function reference; dynamic linked functions are not expressible in Logical SPIR-V
With the 1.1.0 userland (NVMTLDriver a5427891…) the same visible function reference failure appeared 31 times after login in one boot, and iconservicesagent again logged the most NVMTLDriver lines. That boot also logged, among others, newFunctionWithName:constantValues: "textFragment" — native emitter: owned InBoundsAccessChain violates its access-chain contract (Setup Assistant) and newTextureWithDescriptor: pixel format 90 asked for ShaderWrite and NVK cannot make it a storage image — shader writes to it will be LOST (Spotlight).
Guess
I have only the correlation above, not a confirmed cause: macOS 26's layered icons are composited by iconservicesagent and the Dock with Metal shaders that use visible functions / function constants. When re-translating such a shader fails, the foreground layers are not drawn and only the background is left.
I can test builds on this machine and send the full log show output.
中文版(Chinese version, same content)
摘要
在 macOS 26.7.1 上,重新編譯 macOS 26 用的加速器之後(#51、#60)桌面就能正常使用,但 Apple 自家 App 的圖示大多畫不出前景那一層:只剩底色,有時帶一個模糊的形狀。第三方圖示和少數 Apple 圖示正常。1.1.0 和 1.4.0 的 GPU 使用者端程式都一樣。同一次開機裡,NVMTLDriver 在負責畫圖示的程式(iconservicesagent、Dock、Spotlight)記錄了 shader 重新轉譯失敗。
環境
| 顯示卡 | NVIDIA GeForce RTX 5080 16 GB,PCI 10de:2c02,subsystem 19da:1762(跟 #25、#51 同一台) |
| CPU/主機板 | AMD Ryzen 9 9900X,ASUS TUF GAMING B850-PLUS WIFI,BIOS 1804 |
| macOS | 26.7.1(25G241),全新安裝;SMBIOS MacPro7,1 |
| OpenCore | 1.0.9 |
| SIP | 0x0A43 |
| 開機參數 | alcid=11 -lilubetaall -amfipassbeta nvfb=1 nvaccel=1 nvfbheads=4 -nvkmsnosmooth amfi_get_out_of_my_way=0x1 amfi=0x80 keepsyms=1 debug=0x100(沒有 -v) |
| 螢幕 | 一台 5K(5120×2880 @ 60 Hz,UI 2560×1440),DP |
| 驅動 | 1.4.0 套件(nullmoth-nvidia-1.4.0.tar.gz,sha256 f4ee3fba…),用它的 install.sh 安裝(因為是覆蓋安裝,兩行備份照 #59 改成 ditto),Library/NullMoth/kexts/26/NVAccel.kext 換成以 v1.4.0 NM_TAHOE=1 重新編譯的版本(sha256 cda5c984…,UUID A4E22E88-79D3-3436-9731-ACC4B0DF3E2B),因為套件附的仍是 VRAM ABI 1 的版本(#51) |
| 另外套用 | OpenCore Legacy Patcher 的 root patch(Modern Wireless、Modern Audio) |
同一次開機的驅動狀態:四個 kext 都載入;ABI mismatch、REFUSED by the framebuffer、Display Pipe transaction submission failed 都是 0;display armed;Metal 3;WindowServer 以 NVMTLDriver 跑 Metal 合成器。
哪裡不對
Dock 和「應用程式」資料夾(1.4.0)的截圖在上方英文版「What looks wrong」段落最後。
- 前景不見或模糊(只剩底色): Finder、Safari、訊息、郵件、系統設定、App Store、App、天氣、地圖、字體簿、西洋棋、指揮中心、計算機、音樂、家庭、時光機、書籍、密碼、尋找、提醒事項、無邊記、電話、語音備忘錄、影像擷取、聯絡人、辭典、Automator。行事曆只有底色加一格一格的點,沒有日期(1.1.0 時只剩一個紅點)。
- 看起來正常: 時鐘(指針有畫出來)、捷徑、日誌、股市、提示、便條紙、備忘錄、文字編輯、遊戲、預覽程式,以及所有第三方圖示。
- 視窗外框(側邊欄、工具列)正常。
記錄
log show --last boot --style compact --predicate 'sender == "NVMTLDriver"',1.4.0 的一次開機:共 73 行(iconservicesagent 24、WindowServer 21、Spotlight 13、com.apple.dock.extra 11、mediaanalysisd 3、DockHelper 1)。訊息分類同上方英文版的程式碼區塊。
1.1.0 的使用者端程式(NVMTLDriver a5427891…)下,同一個 visible function reference 失敗在一次開機登入後出現 31 次,NVMTLDriver 訊息最多的同樣是 iconservicesagent。那次開機還記錄了 newFunctionWithName:constantValues: "textFragment" — native emitter: owned InBoundsAccessChain violates its access-chain contract(設定輔助程式)和 newTextureWithDescriptor: pixel format 90 asked for ShaderWrite and NVK cannot make it a storage image — shader writes to it will be LOST(Spotlight)等訊息。
推測
我手上只有上面的對應關係,沒有確認原因:macOS 26 的分層圖示由 iconservicesagent 和 Dock 用含有 visible function/function constants 的 Metal shader 合成;這類 shader 重新轉譯失敗時,前景圖層就畫不出來,只剩底色。
我可以在這台機器上測試新版,並提供完整的 log show 輸出。
- 主要言語
- Rust
- スター
- 2.5k
- フォーク
- 233
- 平均マージ
- 1時間 37分
- マージ済み PR(30日)
- 1
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nullmoth/nvidia-macos-driver のほかの issue
-
[Bug] `nullmoth-wsreset.sh` never restarts WindowServer at the real login window: `/dev/console` is `_windowserver`, not `root` (guard + test blind spot)対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
nullmoth/nvidia-macos-driver#141 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
nullmoth/nvidia-macos-driver#28 ·
メンテナーはふだん 2 日以内に返信
-
難易度 4/5 1週間以上 初心者へのやさしさ 12/100
nullmoth/nvidia-macos-driver#248 ·
メンテナーはふだん 2 日以内に返信
-
bug
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
nullmoth/nvidia-macos-driver#246 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
-
bug
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
nullmoth/nvidia-macos-driver#244 ·
メンテナーはふだん 2 日以内に返信
nullmoth/nvidia-macos-driver の issue をすべて見る
似ている issue
-
test: sim_zero_omega_tests race on shared temp-file names, so two pairs of tests fail at randomオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
pop-os/cosmic-comp#2956 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area:release criticality:p3 documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
registrystack/registry-stack#2085 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
libp2p/rust-libp2p#6694 ·
メンテナーはふだん 1 日以内に返信