SwiftShader

提供:MonoBook
2024年10月1日 (火) 08:14時点におけるAdministrator (トーク | 投稿記録)による版 (→‎用途)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

SwiftShader(すいふとしぇーだー)とは、Googleオープンソースのもとで開発しているVulkanCPU上で動かすデバイスドライバーです。

SwiftShaderを使うことでVulkanに対応したGPU(を搭載したビデオカード)がなくても、CPU上でVulkan対応の仮想ビデオカードを使えるという代物です。当然ながらSwiftShaderの激遅です。

用途

SwiftShaderの用途はVulkanの「理想的な動作」を確認するためのものです。

Vulkanは最近でこそSteam Deck (Steam OS)などでも使われだしましたが永らくAndroid専用みたいな感じでした。実質的にNVIDIAAMDIntelの三社しかないPC向けと異なり、Android向けのGPUSoC)は比べ物にならないほど種類が多く、しかも多くのスマホOSのバージョンアップを短期間で打ち切るせいでGPUのデバイスドライバも更新されずバグがあっても放置、同じGPUSoC)を採用しているはずなのに機種ごとにVulkanの挙動がメチャクチャという問題がありました。

これが原因で不具合が出た際に「アプリが悪いのか」「GPUがクソなのか」の判断に困ることがありました。

そこで登場したのが「めっちゃ遅いが完璧な動作をするSwiftShader」です。たとえば、あるVulkanを使ったアプリを開発していて不具合が出たとします。その際にSwiftShaderでは正常に動くが特定のGPUでは正常に動かない場合は「プログラムは悪くない」「GPUがクソ」と判断できます。

備考

スマホSnapdragonの採用が多くなったのもVulkanの実装がメチャクチャなのが原因です。アプリ開発者だけでなくスマホ利用者にも「ゲームするならSnapdragonが安心」という風潮が根付いたせいです。ただそのSnapdragon(のAdrenoシリーズ)ですら不具合が結構な頻度で発見されています。