B.20. オブジェクトのライフサイクル

B.20.1. clRetainMemObject

Table B.58. 表:clRetainMemObject

関数
cl_int
clRetainMemObject
(
    cl_mem memobj
)
 メモリオブジェクト参照カウントをインクリメント。
 成功した場合の戻り値
 CL_SUCCESS
 失敗した場合の戻り値
CL_INVALID_
MEM_OBJECT
memobjが有効な
メモリオブジェクト
でない場合。(
バッファまたはイメ
ージオブジェクト)
CL_OUT_
OF_RESOURCES
デバイス上のOpenCL
実装が必要とするリソ
ース確保に失敗した場合。
CL_OUT_OF_
HOST_MEMORY
ホスト上のOpenCL
実装が必要とするリ
ソース確保に失敗し
た場合。

B.20.2. clReleaseMemObject

Table B.59. 表:clReleaseMemObject

関数 cl_int

clReleaseMemObject
(
    cl_mem memobj
)

memobjの参照カウントをデクリメント。

引数

成功した場合の戻り値

CL_SUCCESS

失敗した場合の戻り値

CL_INVALID_ MEM_OBJECT

memobjが有効な
メモリオブジェクト
でない場合。

CL_OUT_ OF_RESOURCES

デバイス上の
OpenCL実装が必要
とするリソース確保
に失敗した場合。

CL_OUT_OF_ HOST_MEMORY

ホスト上のOpenCL
実装が必要とする
リソース確保に
失敗した場合。

B.20.3. clSetMemObjectDestructorCallback

Table B.60. 表:clSetMemObjectDestructorCallback

関数
cl_int
clSetMemObjectDestructorCallback (
    cl_mem memobj,
    void (CL_CALLBACK *pfn_notify)
    (
        cl_mem memobj,
        void *user_data
    ),
    void *user_data
)
 ユーザーコールバック関数をメモリ
オブジェクトと登録。clSetMemObject
DestructorCallbackのそれぞれの呼び出し
は指定したユーザーコールバック関数を
memobjに関連付けられたコールバック
スタック上に登録。登録されたユーザーコー
ルバック関数は、登録された際の逆順で呼び
出される。ユーザーコールバック関数が呼
ばれると、メモリオブジェクトのリソースが
解放されて削除される。これは、host_ptrで参
照されたメモリが再利用または解放された際に、
アプリケーションがmemobjについて通知を
受ける仕組みを提供
 引数
memobj
有効なメモリオ
ブジェクトを指定。
pfn_notify
アプリケーション
が登録するコール
バック関数を指定。
この関すはOpenCL
実装に非同期で呼び
出される。
memobj
削除されるメモリ
オブジェクトを指定。
ユーザーコールバック
は実装に呼び出され
た際、このメモリオブ
ジェクトはすでに有
効でなくなる。
memobjは参考目的
のためだけに提供さ
れている。
user_data
提供されたデータ
を指すポインタを
指定。
 成功した場合の戻り値
 CL_SUCCESS
 失敗した場合の戻り値
CL_INVALID_
MEM_OBJECT
memobjが有効な
メモリオブジェクト
でない場合。
CL_INVALID_
VALUE
pfn_notifyが
NULLの場合
CL_OUT_OF_
RESOURCES
デバイス上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。
CL_OUT_OF_
HOST_MEMORY
ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

Copyright 2018-2019, by Masaki Komatsu