Steam Deckを、64GB eMMCモデルに512GBのmicroSDカードの組み合わせで使用していて、現時点ではあまり必要性を感じていないのですが、シェーダーキャッシュの削除の方法を将来に備えて一応調べておいたので覚書としてメモっておきます。
(なお、私は256GBのSSDに自分で換装しようと思っていますので、さらにこの問題には縁が遠くなりそうです。64GBでも今のところ実害はないのですが、他の機器では空き容量に余裕を持たせるように運用しているので、表示されている空き容量が少ないことに妙なストレスを感じているとか、ゲーム機としてではなく、デスクトップLinuxとしてもうちょっと弄りたいと思うと容量が足りないとかそういう理由です)
さて、具体的な方法ですが……海外の例を見る限り、SDカードに移動させてSymlinkを張るか、いっそのことファイルシステムそのものをBtrFSに変更してSDカードとSSDを見かけ上、同一のディレクトリとして扱うという手があるようです(SteamOS BtrfsというプロジェクトがGitLabにあります。ご参考までに)。
後者はBtrFSをほぼ知らない自分的にはちょっと……なので、お手軽なSymlinkを貼る方法で検討したいところです。
とはいえ、手作業でやるのは面倒だなぁ……と。
で、ちょっと調べたところ、既にスクリプト化してGitHubに公開 されている方がいて、こちらを利用している方がそこそこいる模様ですので、必要になったら私も試してみようかなと思っています。
なお、提供元でも解説の動画が上がっていましたが、Linuxとかコマンドとか触ったことない……という人向けのウォークスルーガイドとしてはこちら の方が分かりやすいかも、と思いました(字幕をオンにして自動翻訳で日本語を選べばまあ分かるかと……)。
このスクリプトを使うと、シェーダーキャッシュの容量とそのIDが何のゲームなのかを一覧化してくれて、選択して、キャッシュを削除するか、SDカードに実物を移動させてシンボリックリンクを張るか、という作業をチェックとクリックだけで可能にしてくれるようです。
ちょっと注意点があるとしたら、後者の解説動画には説明がありましたが、スクリプト内でsudoコマンドを使用しているため、SteamOSがデフォルトで作成するユーザーの場合、まずはパスワード変更してパスワードを作成する必要があるぐらいでしょうか。
(SteamOS的に自動で作成するユーザーはパスワードなしの想定になっていると思うので、パスワードを設定することに伴う副作用がちょっとだけ気になりますが……)
ざっとした説明ですが、とりあえずはこんな感じになります。
前からこのスクリプトがあることは知っていたのですが、Steam Deckだけでできるこの方法があまり一般には知られていないようだと気づいて、急きょこの記事を書きました。実際に試してYouTubeの動画とかにしたら再生数取れそうだなあ……とも思ったのですが、風邪からの病み上がりなのでやる気でませんでしたすみません。
それに加えて、
- ぶっちゃけシェーダーキャッシュの削除とかはSteamOS側がよしなに働けばいいんじゃない? 海外でこれが気になるって言われて結構経ってるだろうし……。
- っていうかハウスキーピングの処理(設定のシステムの一番下にある「ストレージの保守管理タスク」ってやつ)が自動的にやるようにいずれなるんじゃない?
- っていうか今でも本格的に容量厳しくなったら自動でキャッシュ消してたりしない? 利用者があまり気づかないだけなんじゃ……?
などという気もしますので、自分的には必要に迫られるまでは放っておこうかな……という気持ちが強いです。Steam Deckをピュアなゲーム機として使用してて、シェーダーキャッシュが入りきらなくて問題が出たケースって(海外で販売開始してすぐの頃はともかく、2023年に)実際にあるんですかね?