clCreateContext
About
OpenCL コンテキストを生成します。OpenCL コンテキストは、1つまたは複数のデバイスを使用して生成されます。
- Original Reference
C/C++
cl_context clCreateContext (const cl_context_properties *properties, cl_uint num_devices, const cl_device_id *devices, (void CL_CALLBACK *pfn_notify) (const char *errinfo, const void *private_info, size_t cb, void *user_data), void *user_data, cl_int *errcode_ret)
C#
IntPtr clCreateContext (IntPtr[] properties, uint num_devices, IntPtr[] devices, CL_CALLBACK_clCreateContext pfn_notify, IntPtr user_data, out int errcode_ret);
Args
- properties
- プロパティ名とそれに対応する値のリストを指定します。
- num_devices
- clGetDeviceIDs によって得られたデバイス、または clCreateSubDevices によって生成されたデバイスへのポインタのリストを指定します。
- pfn_notify
- 登録するコールバックを指定します。登録されたコールバックは、コンテキスト内で発生したエラーを通知するために、OpenCLによって利用されます。NULL を指定するとき、コールバックは登録されません。
- user_data
- pfn_notify によって登録されるコールバックが呼び出されたとき、user_data の引数として渡される値を指定します。NULL を指定することができます。
- errcode_ret
- エラーコードの出力先を指定します。NULL のとき、エラーコードは返されません。
コールバックについて
clCreateContext の引数 pfn_notify に指定するコールバックについては、次の通りです。
- errinfo
- エラー文字列の出力先を指定します。
- private_info
- OpenCL によって返されるバイナリデータの出力先を指定します。エラーをデバッグするための追加情報が記録されます。
- cb
- [公式に情報がありません、推定です] private_info から返されるデータのサイズです。
- user_data
- clCreateContext の引数 user_data に指定した任意のデータの出力先を指定します。
Return
実行に成功したとき、有効でゼロでない OpenCL コンテキストを返し、errcode_ret に CL_SUCCESS を設定します。実行に失敗したとき、NULL を返し、errcode_ret に次のうち1つのエラーを設定します。
- CL_INVALID_VALUE
- devices が NULL のとき。num_devices が 0 のとき。pfn_notify が NULL で user_data が NULL でないとき。
- CL_INVALID_DEVICE
- devices に無効な値が指定されたとき。
- CL_DEVICE_NOT_AVAILABLE
- devices に含まれるデバイスが、clGetDeviceIDs で返されたデバイスではあるが、現在は利用できないとき。
- CL_OUT_OF_RESOURCES
- デバイス上でリソースの確保、割り当てに失敗したとき。
- CL_OUT_OF_HOST_MEMORY
- ホスト上でリソースの確保、割り当てに失敗したとき。