9.6. マップされたメモリオブジェクトをアンマップ

9.6.1. clEnqueueUnmapMemObject

clEnqueueUnmapMemObject関数は以前にマップされたメモリオブジェクトの領域をアンマップ(マップの解除)するコマンドを挿入。clEnqueueMapBufferまたはclEnqueueMapImageが戻したポインタを使ってホストからの読み込みや書き込みは終了したものと見なされる。

注記

詳しくは「表:clEnqueueUnmapMemObject」(表B.61「表:clEnqueueUnmapMemObject」)を参照ください。

cl_int clEnqueueUnmapMemObject (
    cl_command_queue command_queue, //(1)
    cl_mem memobj, //(2)
    void *mapped_ptr, //(3)
    cl_uint num_events_in_wait_list, //(4)
    const cl_event *event_wait_list, //(5)
    cl_event *event //(6)
)

(1)

コマンドキューを指定。

(2)

有効なメモリオブジェクトを指定。command_queueとmemobjに関連付けられたOpenCLコンテキストは同じになる必要がある。

(3)

前に呼び出したclEnqueueMapBufferまたはclEnqueueMapImageが戻したmemobjのホストアドレスを指定。

(4)

event_wait_list で指定したイベントオブジェクトの数を指定。

(5)

このコマンドが実行される前に完了されているイベントを指定。event_wait_listがNULLの場合、このコマンドはどのイベントの完了待機もしない。

(6)

複製コマンドを識別するイベントオブジェクトが戻され、コマンド完了の確認やコマンド完了の待機に使える。eventがNULLの場合、アプリケーションはコマンドの状況確認やコマンド完了待ちができなくなる。

Copyright 2018-2019, by Masaki Komatsu