目次 - SDL 3.0 API(機能別) - 3DレンダリングとGPUコンピューティング - SDL_SetGPUAllowedFramesInFlight

SDL_SetGPUAllowedFramesInFlight

GPU内に留めておくことができる最大フレーム数を変更する

ヘッダ

SDL3/SDL_gpu.h

構文

bool SDL_SetGPUAllowedFramesInFlight(SDL_GPUDevice *device, Uint32 allowed_frames_in_flight);

引数

SDL_GPUDevice *deviceGPUコンテキスト
Uint32allowed_frames_in_flightGPU内に保留状態にできる最大フレーム数

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

デバイス生成時のデフォルト値は2である. これはプレゼンテーションで2フレームを提供した後で, GPUが最初のフレームの作業を完了していない場合, SDL_AcquireGPUSwapchainTexture()はスワップチェーンテクスチャポインタにNULLを渡し, SDL_WaitAndAcquireGPUSwapchainTexture()はブロックすることを意味する.

値を大きくすると, 視覚的な遅延を犠牲にしてスループットが向上する. 値を小さくすると, スループットを犠牲にして視覚的な遅延が改善される.

この関数を呼ぶと, 同期の問題を回避するために, コマンドキューが一時停止し掃き出されるので注意すること.

最小の値は1で, 最大の値は3である.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_SetGPUAllowedFramesInFlight - SDL Wiki