Chiharu の日記

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

Rendering Stage 〜描画処理から転送まで

先の日記の続き。
Rendering Stage のシーケンス図を書いてみました。

Rendering Stage では名称通りに描画処理を実施します。キャッシュ サイズに合わせて描画対象領域を分割し、論理コア数に合わせて起動された複数のワーカー スレッドで次々と分割領域を並列に処理していきます。
すべての分割領域の描画が完了すると、ワーカー スレッドは待機状態に移行しますが、最後に描画を終了したワーカー スレッドは待機状態に移行する前に、裏画面を表画面へと転送します。自明ですので詳細を記載していませんが、これが Transferring Stage となります。当該 Stage 処理前に『描画完了』を設定するため、他のワーカー スレッドは Transferring Stage と並行して、次フレームの描画イベントを受け付け、処理することが可能となります。
――とりあえずアーキテクチャ的な話はこんなものですね。また作りこんでいこう。