「clEnqueueCopyBufferRect」の版間の差分
提供: Tommy6
(ページの作成:「{{Pathnav|OpenCL|OpenCLマニュアル|OpenCLランタイム|OpenCLランタイムAPI|メモリオブジェクト}} {{関数| cl_int clEnqueueCopyBufferRect (c...」) |
細 |
||
16行: | 16行: | ||
== パラメータ == | == パラメータ == | ||
;command_queue | ;command_queue | ||
− | :複製コマンドを挿入するコマンドキューを指定します。''command_queue''、''src_buffer''、''dst_buffer'' | + | :複製コマンドを挿入するコマンドキューを指定します。''command_queue''、''src_buffer''、''dst_buffer'' と関連付けられた[[OpenCLコンテキスト]]は同じでなければなりません。 |
;src_buffer | ;src_buffer | ||
:複製元となる有効な[[バッファオブジェクト]]を指定します。 | :複製元となる有効な[[バッファオブジェクト]]を指定します。 |
2014年6月8日 (日) 17:15時点における最新版
cl_int clEnqueueCopyBufferRect (cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, const size_t src_origin[3], const size_t dst_origin[3], const size_t region[3], size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
-1.1() : OpenCL 1.1で削除
+1.1() : OpenCL 1.1で追加
バッファオブジェクト src_buffer から dst_buffer への、2Dもしくは3Dの矩形領域の複製を行うコマンドを挿入します。
パラメータ
- command_queue
- 複製コマンドを挿入するコマンドキューを指定します。command_queue、src_buffer、dst_buffer と関連付けられたOpenCLコンテキストは同じでなければなりません。
- src_buffer
- 複製元となる有効なバッファオブジェクトを指定します。
- dst_buffer
- 複製先となる有効なバッファオブジェクトを指定します。
- src_origin
- src_buffer と関連付けられたメモリ領域の (x, y, z) オフセットを指定します。2D矩形領域では、src_origin[2] で指定する z 値は0でなければなりません。オフセットのバイト数は、src_origin[2]*src_slice_pitch + src_origin[1]*src_row_pitch + src_origin[0] で求められます。
- dst_origin
- dst_buffer と関連付けられたメモリ領域の (x, y, z) オフセットを指定します。2D矩形領域では、dst_origin[2] で指定する z 値は0でなければなりません。オフセットのバイト数は、dst_origin[2]*dst_slice_pitch + dst_origin[1]*dst_row_pitch + dst_origin[0] で求められます。
- region
- 複製を行う2Dもしくは3D矩形領域の (width, height, depth) をバイトで指定します。2D矩形領域では、region[2] で指定する depth 値は1でなければなりません。
- src_row_pitch
- src_buffer と関連付けられたメモリ領域で各行が使用する長さをバイトで指定します。src_row_pitch に0を指定すると、region[0] を設定したものとして扱われます。
- src_slice_pitch
- src_buffer と関連付けられたメモリ領域で各2Dスライスが使用する長さをバイトで指定します。src_slice_pitch に0を指定すると、region[1]*src_row_pitch を設定したものとして扱われます。
- dst_row_pitch
- dst_buffer と関連付けられたメモリ領域で各行が使用する長さをバイトで指定します。dst_row_pitch に0を指定すると、region[0] を設定したものとして扱われます。
- dst_slice_pitch
- dst_buffer と関連付けられたメモリ領域で各2Dスライスが使用する長さをバイトで指定します。dst_slice_pitch に0を指定すると、region[1]*dst_row_pitch を設定したものとして扱われます。
- 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 を使えます。
エラー
実行が成功した場合、clEnqueueCopyBufferRect は 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_origin, region) もしくは (dst_origin, region) が要求するアクセス領域が、バッファオブジェクト src_buffer、dst_buffer それぞれの範囲外のとき
- 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_MISALIGNED_SUB_BUFFER_OFFSET - src_buffer がサブバッファオブジェクトで、このサブバッファオブジェクトを作成する際に指定したオフセットが command_queue と関連付けられたデバイスの CL_DEVICE_MEM_BASE_ADDR_ALIGN にアラインされていないとき。
- CL_MISALIGNED_SUB_BUFFER_OFFSET - dst_buffer がサブバッファオブジェクトで、このサブバッファオブジェクトを作成する際に指定したオフセットが command_queue と関連付けられたデバイスの CL_DEVICE_MEM_BASE_ADDR_ALIGN にアラインされていないとき。
- CL_MEM_OBJECT_ALLOCATION_FAILURE - src_buffer もしくは dst_buffer と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。
- CL_OUT_OF_RESOURCES - デバイス上でのリソース確保に失敗したとき。
- CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。
変更記録
- OpenCL 1.1
- 追加
脚注
―――― Version 1.1, The OpenCL Specification
より翻訳