tearing_tool60fpsティアリング大量発生ゲームでのティアリング検出精度を若干向上。
←この画面はすごく古いバージョンです。
現在のものはまったく整理されてないので見せられません(^^;;

60fpsティアリング大量発生ゲームではティアリングの検出が難しいパターンがあり検出できていないものが多少ありました。
今回の変更ですべてを検出することはできませんでしたが多少検出率をアップすることができました。
簡単にいままでどのように検出していて何をどう変更したかをまとめました。

下図では同じ色が同一内容(フレーム)です。
ティアリング発生時の殆どが前のフレームが残った状態になります。
私のティアリング検出方法では仮に2のフレームの場合、1と2、2と3で同一領域を調べます(下図の黒が前フレームとの同一領域)
そして、その2つの結果から最終的な判断をします。これは単純に1と2だけでやってしまうと誤判定が多くなるためです。
下のフレーム6、7、8では同一領域が判断できないためティアリングを検出できません。
更にフレーム5についてもフレーム6が検出できないため同様に検出ができませんでした。
今回の変更でフレーム5のティアリング検出ができるようにしました(ティアリングラインを黄色、フレーム内訳も黄色表示)
それとティアリング発生後の次のフレームで同一領域が無いがティアリングが発生している可能性があるフレームは内訳で水色にしました。
この変更でフレームレートの検出としてはかなり正確になったと思います(60fps大量ティアリングゲームの場合)
ただ、下図のフレーム7、8はどうやっても無理なのでティアリング発生率に若干低めに出てしまいます。

tearing

今回、ティアリングの検出以外にグラフの幅を少し短くして一度に表示できる時間は長くしました。
それでは新旧の検証結果の比較です。

これが旧プログラムでのPS3/XBOX360の検証結果。
bayonetta_result

新プログラムではPS3には影響が出ていませんがXBOX360ではフレームレート、ティアリング検出率が若干上がっています。
ヒストグラムは結構変わってます。
新しい検出が100%問題ないかの確認をしていないのでもしかしたら何か問題があって元に戻すかもしれません。
ps3_bayo_new
360_bayo_new

XBOX360版で新しいプログラムでの検証動画。