私が見てきたすべてのコードサンプルでは、ゲームループは次のようになります。
while(true)
{
InputAndUpdate();
Draw();
SwapBuffers();
}
しかし、これはCPUとGPU間の並列性を破壊しませんか?スワップバッファが呼び出された後、CPUが入力を処理して更新している間、GPUは空の状態で待機します。次に、CPUが描画コマンドの発行を完了すると、GPUのレンダリングが完了するまで待機します。なぜこうならないのですか?:
while(true)
{
Draw(); //First issue the draw commands
InputAndUpdate(); //Update while the GPU is busy rendering
SwapBuffers(); //Now block and wait for the GPU to finish
}