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

SDL_BeginGPUComputePass

コマンドバッファのコンピュートパスを開始する

ヘッダ

SDL3/SDL_gpu.h

構文

SDL_GPUComputePass * SDL_BeginGPUComputePass(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUStorageTextureReadWriteBinding *storage_texture_bindings, Uint32 num_storage_texture_bindings, const SDL_GPUStorageBufferReadWriteBinding *storage_buffer_bindings, Uint32 num_storage_buffer_bindings);

引数

SDL_GPUCommandBuffer *command_bufferコマンドバッファ
const SDL_GPUStorageTextureReadWriteBinding *storage_texture_bindings書込可能なストレージテクスチャバインド構造体の配列
Uint32num_storage_texture_bindingsバインドするストレージテクスチャの配列の要素数
const SDL_GPUStorageBufferReadWriteBinding *storage_buffer_bindings書込可能なストレージバッファ構造体の配列
Uint32num_storage_buffer_bindingsバインドするストレージバッファ配列の要素数

戻り値

(SDL_GPUComputePass *) コンピュートパスハンドルを戻す.

詳細

コンピュートパスは, コンピュートパイプラインで書き込み可能なテクスチャサブリソースとバッファのセットで定義される. これらのテクスチャとバッファは, COMPUTE_STORAGE_WRITEまたはCOMPUTE_STORAGE_SIMULTANEOUS_READ_WRITEビットをオンにして生成されている必要がある. テクスチャをCOMPUTE_STORAGE_SIMULTANEOUS_READ_WRITEなしで生成している場合は, コンピュートパスでテクスチャから読み込んではならない. コンピュートパイプラインに関連付けられた操作は, 全てコンピュートパスに置かれている必要がある. コンピュートパスが終わる前に, 別のコンピュートパス, レンダーパス, コピーパスを開始してはならない.

極めて重要な注意 - コンピュートパスの読み込みと書き込みは暗黙的には同期しない. これは, コンピュートパスでリソース領域に読み込みと書き込みを行う場合, データ競合を起こす場合があることを意味する. コンピューティング処理が前回のディスパッチで完了した出力に依存している場合, そのデータに安全にアクセスするためには, 必ず現在のコンピュートパスを終了させ, 新しいコンピュートパスを開始する必要がある. そうしなければ予期しない結果となるだろう. 同一のコンピュートパスで読み込みと書き込みを行えるのは特定の形式の場合のみである. 対応する形式を確認すること.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_BeginGPUComputePass - SDL Wiki