9000行のスパゲッティ悪魔を葬り去る――dxil-spirvの構造化器をゼロから作り直した話

Killing what can't be handled – putting a spaghetti demon to eternal rest

9000行のスパゲッティ悪魔を葬り去る――dxil-spirvの構造化器をゼロから作り直した話

dxil-spirvの制御フローグラフ構造化器は、9000行のブラックホールと化し、もはや誰にも理解できない状態になっていた。ゲームのアップデートのたびに壊れる実装に限界を感じ、Mesaのgoto_if実装をベースにした新しい構造化器へと移行。SPIR-Vの検証だけでなくビット単位の実行結果まで確認するファジングツールを自作し、Mesa側のバグも多数発見した。

dxil-spirv構造化器のバス係数は文字通り1だ。今では実装を推論することすら不可能なので、1未満と言ってもいいかもしれない。笑えるほど見事な9000行のブラックホールである。
  1. cowlevel

    SIMDコンパイラが内部でどう動かなきゃいけないのかなんて、考えたこともなかった。うわっ!

  2. e1ghtSpace

    サイトへのフィードバックです。正直、ここで何を言っているのか全然分かってないんですけど、自分はページのスクロールにマウスの中ボタンのクリック&ドラッグを使っていて、画像の上でそれをやるとスクロールせずに画像が新しいタブで開いてしまうことに気づきました。直すべきものなのかは分かりませんが、念のため報告しておきます。:)

  3. FrustratedMonky

    いいね。

    これをありがとう。使ってみようと思います。

この日のほかの記事

2026-11-03