400
Post/Edit Page
ひきつづきバグ調査のためGPUの解析。浅い部分でミスがあることを期待したが、とうとうシェーダのネイティブコードまで辿り着いてしまった。該当のバグが発生する状況下でindefiniteな値を持つレジスタを見つけたので、そこから芋づる式にアセンブラの動作を追っていく。どうやら全く別の場所のゼロ除算で発生したinfiniteが、ずっと後の工程で不定形に化けたものらしい。しかも特定のレアな条件を満たさない限り、この不定形レジスタには後で必ず0が乗算されるため、通常時は何事もなかったかのように正しい挙動をしてしまう――これが真相であった。▼こういった問題が「原因不明」の一言で片付けられてきた過去を考えると、チームとしても個人としても、かなりよくバグが取れるようになってきてるとは思う。プログラムが量子的な振る舞いをすることはないのだから、究極的には原因不明なバグなんて存在しえないのだ。ひとえに解く側の能力の問題である。
pass:
Draft