clEnqueueCopyImage

提供: Tommy6
移動: 案内検索
OpenCL > OpenCLマニュアル > OpenCLランタイム > OpenCLランタイムAPI > メモリオブジェクト > clEnqueueCopyImage

cl_int clEnqueueCopyImage (cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image,                     const size_t src_origin[3], const size_t dst_origin[3], const size_t region[3],                     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_image および dst_image には2Dもしくは3Dイメージオブジェクトを指定でき、以下の操作を行えます。

  • 2Dイメージオブジェクトから2Dイメージオブジェクトへの複製
  • 2Dイメージオブジェクトから3Dイメージオブジェクトの2Dスライスへの複製
  • 3Dイメージオブジェクトの2Dスライスから2Dイメージオブジェクトへの複製
  • 3Dイメージオブジェクトから3Dイメージオブジェクトへの複製

パラメータ

command_queue
複製コマンドを挿入するコマンドキューを指定します。command_queuesrc_imagedst_image と関連付けられたOpenCLコンテキストは同じでなければなりません。
src_image
複製元となる有効なイメージオブジェクトを指定します。
dst_image
複製先となる有効なイメージオブジェクトを指定します。
src_origin
src_image 内のどの位置から読み込みを開始するのかの開始地点 (x, y, z) をピクセルで指定します。src_image が2Dイメージオブジェクトであるとき、src_origin[2] で指定する z 値は0でなければなりません。
dst_origin
dst_image 内のどの位置で書き込みを開始するのかの開始地点 (x, y, z) をピクセルで指定します。dst_image が2Dイメージオブジェクトであるとき、dst_origin[2] で指定する z 値は0でなければなりません。
region
複製を行う2Dもしくは3D矩形領域の (width, height, depth) をピクセルで指定します。src_image もしくは dst_image が2Dイメージオブジェクトであるとき、region[2] で指定する depth 値は1でなければなりません。
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 を使えます。

エラー

実行が成功した場合、clEnqueueCopyImage は CL_SUCCESS を返します。そうでない場合は以下のエラーのうちひとつを返します。

  • CL_INVALID_COMMAND_QUEUE - command_queue が有効なコマンドキューでないとき。
  • CL_INVALID_CONTEXT - command_queuesrc_imagedst_image と関連付けられたコンテキストが同じでないとき、あるいは command_queue と関連付けられたコンテキストと event_wait_list 内のイベントと関連付けられたコンテキストが同じでないとき。
  • CL_INVALID_MEM_OBJECT - src_imagedst_image が有効なイメージオブジェクトでないとき。
  • CL_IMAGE_FORMAT_MISMATCH - src_imagedst_image が使用するイメージ形式が同じでないとき。
  • CL_INVALID_VALUE - src_origin および src_origin + region が指す2Dもしくは3D矩形領域が、src_image の範囲外のとき。もしくは、dst_origin および dst_origin + region が指す2Dもしくは3D矩形領域が、dst_image の範囲外のとき。
  • CL_INVALID_VALUE - src_image が2Dイメージオブジェクトで、dst_origin[2] が0でないもしくは region[2] が1でないとき。
  • CL_INVALID_VALUE - dst_image が2Dイメージオブジェクトで、dst_origin[2] が0でないもしくは region[2] が1でないとき。
  • 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 内のイベントオブジェクトが有効なものでないとき。
  • +1.1(CL_INVALID_IMAGE_SIZE - src_image の寸法(幅、高さ、行・スライスの長さ)が command_queue と関連付けられたデバイスでサポートされていないとき。)
  • +1.1(CL_INVALID_IMAGE_SIZE - dst_image の寸法(幅、高さ、行・スライスの長さ)が command_queue と関連付けられたデバイスでサポートされていないとき。)
  • CL_MEM_OBJECT_ALLOCATION_FAILURE - src_image もしくは dst_iamge と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。
  • +1.1(CL_OUT_OF_RESOURCES - デバイス上でのリソース確保に失敗したとき。)
  • CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。
  • CL_INVALID_OPERATION - command_queue と関連付けられたデバイスがイメージ機能をサポートしていない(clGetDeviceInfo で取得できる CL_DEVICE_IMAGE_SUPPORTCL_FALSE である)とき。
  • CL_MEM_COPY_OVERLAP - src_imagedst_image が同じイメージオブジェクトで、かつ複製元と複製先の領域が重なっているとき。

変更記録

脚注



―――― Version 1.1, The OpenCL Specification より翻訳