我想讓OpenCL渲染到2D紋理。我第一次遇到功能clCreateFromGLTexture2D。我寫了,但是當我去編譯時,我發現它沒有定義。我終於發現它在「cl_gl.h」:鏈接錯誤clCreateFromGLTexture只
#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
#warning CL_USE_DEPRECATED_OPENCL_1_1_APIS is defined. These APIs are unsupported and untested in OpenCL 1.2!
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLTexture2D(cl_context /* context */,
cl_mem_flags /* flags */,
cl_GLenum /* target */,
cl_GLint /* miplevel */,
cl_GLuint /* texture */,
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLTexture3D(cl_context /* context */,
cl_mem_flags /* flags */,
cl_GLenum /* target */,
cl_GLint /* miplevel */,
cl_GLuint /* texture */,
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
#endif /* CL_USE_DEPRECATED_OPENCL_1_2_APIS */
所以,我望着別處在「cl_gl.h」我發現clCreateFromGLTexture。爲了提高兼容性,我將其寫入代碼中。但是,函數clCreateFromGLTexture會導致LNK2019(未解析的外部)。我發現這個非常可疑,因爲我可以在使用clCreateFromGLBuffer和clCreateFromGLRenderbuffer時進行編譯,並且這兩者都在「cl_gl.h」中也是如此。
所以,我的問題:爲什麼不clCreateFromGLTexture有一個定義,而在它旁邊的功能在同一個模塊呢?我目前正在鏈接「OpenCL.lib」。還有什麼我需要的嗎?我什麼也沒看見。這是圖書館本身的問題嗎?
[編輯:clGetDeviceInfo(DEVICE_ID,CL_DEVICE_IMAGE_SUPPORT,的sizeof(cl_bool),&結果,NULL);是CL_TRUE,對於它的價值。]
感謝,
我目前正在連接NVIDIA GPU Computing SDK 4.2。我曾經假設這支持OpenCL 1.2,因爲頭部聲明瞭OpenCL 1.2函數。但是,在4.2 SDK發行說明中(http://developer.download.nvidia.com/compute/DevZone/docs/html/doc/OpenCL_Release_Notes.txt),沒有提及OpenCL 1.2支持,其中最新的備註只記錄日誌文檔OpenCL 1.1。 – imallett
仍然不存在於SDK 6.5中。 NVIDIA,我很失望。 – imallett