目次 - SDL 3.0 API(機能別) - 2Dレンダリング - SDL_AddVulkanRenderSemaphores

SDL_AddVulkanRenderSemaphores

現在のフレームに同期セマフォを追加する

ヘッダ

SDL3/SDL_render.h

構文

bool SDL_AddVulkanRenderSemaphores(SDL_Renderer *renderer, Uint32 wait_stage_mask, Sint64 wait_semaphore, Sint64 signal_semaphore);

引数

SDL_Renderer *rendererテクスチャの一部がコピーされるレンダラ
Uint32wait_stage_mask待機のVkPipelineStageFlagsフラグ
Sint64wait_semaphore現在のフレームの前の待機のVkSempahore. 不要のとき0
Sint64signal_semaphore現在のフレームのレンダリングが完了したときSDLが発信するVkSempahore. 不要のとき0s

戻り値

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

詳細

Vulkanレンダラはレンダリングコマンドを発行する前にwait_semaphoreを待ち, そのフレームのコマンドが完了した後にsignal_semaphoreを発信する.

これはセマフォ同期が必要なフレームごとに行う必要がある. VulkanレンダラはGPUで複数のフレームを処理している可能性があるため, 同期のために複数のセマフォが必要である. SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBERで必要なセマフォの最大数が得られる.

スレッドセーフ

この関数を複数のスレッドで同時に呼ぶのは安全ではない.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_AddVulkanRenderSemaphores - SDL Wiki