400
Post/Edit Page
シェーダが想定外の挙動を示したので、計算ミスでもしたかと思って追い始めたのが夕食前の午後四時。挙動の様子からして真っ先に浮動小数点の計算誤差が疑われたので、その線でデバッグコードを書いて確かめると、予想は的中していそうな変化が見られたもののやはり正しくは動かない。それどころかデバッグコードが詳細になればなるほど不可解な出力になっていく。そんな馬鹿な、と思わず声が出る。▼今日中に答えが出たのはさいわいだった。現行SDKバージョンにおけるコンパイラの最適化バグであった。吐き出されたアセンブラコードが、シェーダコードの意図した計算と違う。符号計算が正しく行われていないのだった。しかも次の更新を待てるかどうか、わからないので仕方なく、醜いことこの上ないハッキングコードに五行の長文コメントを添えて回避策を取る。終電前に解決したのは運が良かったのかもしれないが、なんとも不毛なデバッグにげんなりである。
pass:
Draft