0

私がやろうとしていることは私にはかなり単純に思えますが、現時点では OpenCL では不可能だと感じています:

cl_memオブジェクトを解放する前に、そのオブジェクトが実際に有効かどうかを確認したい:

cl_mem someimage;
if ( isvalid(someimage) ) clReleaseMemObject(someobject);

理由は簡単です。clReleaseMemObject初期化せずに呼び出すsomeimageと、プログラムがクラッシュします。try ... catch通話を回避することもできますが、これはどういうわけか私には汚いようです。

clGetImageInfo(someimage)初期化されていない場合、like の呼び出しもクラッシュします。

どうすれば実装できisvalid(someimage)ますか?

ヒントをありがとう、ヤコブ

4

1 に答える 1

0

Khronos フォーラム ( http://www.khronos.org/message_boards/viewtopic.php?f=28&t=4995を参照) で、これはポインター型であり、解放またはクエリの前にcl_mem安全に初期化してチェックできることを知りました。nullptrもちろん、スタック上の完全に初期化されていないポインタはエラーになります。

notzedさん、ありがとうございます。

于 2012-05-08T09:53:08.890 に答える