WebGPU だけで作らない
状況
書斎の機能を一つずつ表に起こすとき、描画経路の前提を先に決める必要があった。新しい API だけで書けばフォールバックの分岐を書かずに済むが、対応していない環境ではその機能が丸ごと出なくなる。
選択肢
- WebGPU 専用で作り、対応していない環境には出さない却下
- 同じ実装を両方の経路で成立させ、3D を使わない静的な経路も別に用意する採用
選んだもの
機能ごとに高品質・フォールバック・3D なしの 3 段で成立させる規約を先に置き、表の全行にその欄を作った。
却下した理由
- WebGPU 専用で作り、対応していない環境には出さない
- その表の全行に WebGL2 での挙動を書く欄を置いた時点で、専用実装の行には「無効」しか書けなくなる。そして「無効」の行は代替表示を持つことを完了条件にしていたので、結局は縮退した経路を作ることになる。
後で分かったこと
後の性能計測では、計測ハーネスの上ではフォールバック側を強制したほうがフレームレートが高く出た。この傾向は複数回の実行で一貫していたが、ヘッドレスのブラウザが新しい API でハードウェア支援を得られていない可能性が高く、実機の通常ブラウザで同じ傾向が出るかの確認は範囲外として持ち越した。規約は「どちらが速いか」ではなく「どちらでも成立すること」を要求していたので、この未確定を抱えたまま先へ進めた。1