Chiharu の日記

絵描き C/C++ プログラマーの日記です。

Parallel force - パラレル・フォース 〜表画面への転送

ティアリング回避に際して、描画の並列度が低下して速度が落ちる件ですが、表画面への転送処理を非同期化することで解消しました。詳細はこちら
これで、タスク処理、裏画面合成、表画面転送が非同期になりました。単純な fork, join でないので、タスク管理も一苦労です。
裏画面合成と表画面転送の非同期化にあたり、バックバッファを 2 枚用意しました。裏画面合成時の合成バッファはオン キャッシュで動作させるよう調整してますが、合成後及び表画面転送時のバックバッファはキャッシュに対して大きすぎるので、画素データをノンテンポラル ストアすることで非キャッシュ領域として扱うようにしています。…と言っても、StretchDIBits で転送元として参照されるときにはキャッシュに乗ってしまうのでしょうが、ちょっとした抵抗です。
とりあえず今日はここまで。