clEnqueueCopyBuffer/1.0
提供: Tommy6
cl_int clEnqueueCopyBuffer (cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t cb, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
バッファオブジェクト src_buffer から dst_buffer への複製を行うコマンドを挿入します。
パラメータ
- command_queue
- 複製コマンドを挿入するコマンドキューを指定します。command_queue、src_buffer、dst_buffer と関連付けられたOpenCLコンテキストは同じでなければなりません。
- src_buffer
- 複製元となる有効なバッファオブジェクトを指定します。
- dst_buffer
- 複製先となる有効なバッファオブジェクトを指定します。
- src_offset
- src_buffer から複製を行う際に、読み込み開始位置をどれだけずらすかを指定します。
- dst_offset
- dst_buffer へ複製を行う際に、書き込み開始位置をどれだけずらすかを指定します。
- cb
- 複製するデータのサイズをバイトで指定します。
- num_events_in_wait_list
- event_wait_list で指定したイベントオブジェクトの数を指定します。
- event_wait_list
- このコマンドが実行される前に完了していなければならないイベントを指定します。event_wait_list が NULL のとき、このコマンドはどのイベントの完了待ちも行いません。event_wait_list が NULL のとき、num_events_in_wait_list は 0 でなければなりません。event_wait_list が NULL ではないとき、event_wait_list が指す各イベントは有効でなければならず、また num_events_in_wait_list は0より大きな値でなければなりません。event_wait_list に指定したイベントは同期点としてふるまいます。event_wait_list 内のイベントと関連付けられたOpenCLコンテキストと command_queue と関連付けられたOpenCLコンテキストは同じでなければなりません。
- event
- この複製コマンドを識別するイベントオブジェクトが返され、コマンド完了の確認やコマンド完了待ちを行えます。event が NULL のとき、アプリケーションはコマンドの状況確認やコマンド完了待ちを行えなくなります。代わりとして、clEnqueueBarrier を使えます。
エラー
実行が成功した場合、clEnqueueCopyBuffer は CL_SUCCESS を返します。そうでない場合は以下のエラーのうちひとつを返します。
- CL_INVALID_COMMAND_QUEUE - command_queue が有効なコマンドキューでないとき。
- CL_INVALID_CONTEXT - command_queue、src_buffer、dst_buffer と関連付けられたコンテキストが同じでないとき、あるいは command_queue と関連付けられたコンテキストと event_wait_list 内のイベントと関連付けられたコンテキストが同じでないとき。
- CL_INVALID_MEM_OBJECT - src_buffer、dst_buffer が有効なバッファオブジェクトでないとき。
- CL_INVALID_VALUE - src_offset、dst_offset、cb、src_offset + cb、dst_offset + cb が要求するアクセス領域が、バッファオブジェクトの範囲外のとき。
- CL_INVALID_EVENT_WAIT_LIST - event_wait_list が NULL で num_events_in_wait_list が 0 より大きいとき。あるいは event_wait_list が NULL でなく num_events_in_wait_list が 0 のとき。あるいは event_wait_list 内のイベントオブジェクトが有効なものでないとき。
- CL_MEM_COPY_OVERLAP - src_buffer と dst_buffer が同じバッファオブジェクトで、かつ複製元と複製先の領域が重なっているとき。
- CL_MEM_OBJECT_ALLOCATION_FAILURE - src_buffer もしくは dst_buffer と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。
- CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。
変更記録
脚注
―――― Version 1.0, The OpenCL Specification
より翻訳