SwiftShader
SwiftShader(すいふとしぇーだー)とは、Googleがオープンソースのもとで開発しているVulkanをCPU上で動かすデバイスドライバーです。
SwiftShaderを使うことでVulkanに対応したGPU(を搭載したビデオカード)がなくても、CPU上でVulkan対応の仮想ビデオカードを使えるという代物です。当然ながらSwiftShaderの激遅です。
用途[編集 | ソースを編集]
SwiftShaderの用途はVulkanの「理想的な動作」を確認するためのものです。
Vulkanは最近でこそSteam Deck (Steam OS)などでも使われだしましたが永らくAndroid専用みたいな感じでした。実質的にNVIDIA、AMD、Intelの三社しかないPC向けと異なり、Android向けのGPU(SoC)は比べ物にならないほど種類が多く、しかも多くのスマホがOSのバージョンアップを短期間で打ち切るせいでGPUのデバイスドライバも更新されずバグがあっても放置、同じGPU(SoC)を採用しているはずなのに機種ごとにVulkanの挙動がメチャクチャという問題がありました。
これが原因で不具合が出た際に「アプリが悪いのか」「GPUがクソなのか」の判断に困ることがありました。
そこで登場したのが「めっちゃ遅いが完璧な動作をするSwiftShader」です。たとえば、あるVulkanを使ったアプリを開発していて不具合が出たとします。その際にSwiftShaderでは正常に動くが特定のGPUでは正常に動かない場合は「プログラムは悪くない」「GPUがクソ」と判断できます。
備考[編集 | ソースを編集]
スマホでSnapdragonの採用が多くなったのもVulkanの実装がメチャクチャなのが原因です。アプリ開発者だけでなくスマホ利用者にも「ゲームするならSnapdragonが安心」という風潮が根付いたせいです。ただそのSnapdragon(のAdrenoシリーズ)ですら不具合が結構な頻度で発見されています。