检查cl_mem对象是否有效

时间:2012-05-07 11:35:41

标签: opencl

我想做的事情对我来说似乎相当简单,但目前我觉得OpenCL无法做到这一点:

我想在发布之前检查一些cl_mem对象是否真正有效:

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

原因很简单:如果我在未初始化clReleaseMemObject的情况下致电someimage,我的程序就会崩溃。我可以在电话旁边放一个try ... catch,但这对我来说似乎有些肮脏。

clGetImageInfo(someimage)之类的任何调用如果未初始化,也会崩溃。

我如何实施isvalid(someimage)

非常感谢任何提示, 雅各布

1 个答案:

答案 0 :(得分:0)

在Khronos论坛(见http://www.khronos.org/message_boards/viewtopic.php?f=28&t=4995)中,我了解到cl_mem是指针类型,因此可以在发布或查询之前保存初始化为nullptr并进行检查。当然,堆栈上完全未初始化的指针会产生错误。

感谢notzed。