如何启用OpenCL扩展?
我正在尝试启用OpenCL扩展如何启用OpenCL扩展?,opencl,Opencl,我正在尝试启用OpenCL扩展cl\u khr\u gl\u depth\u images,以完成以下工作: glGenRenderbuffers(1, &gl_depthbuffer); glBindRenderbuffer(GL_RENDERBUFFER, gl_depthbuffer); glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32F, width, height); glFramebufferRenderb
cl\u khr\u gl\u depth\u images
,以完成以下工作:
glGenRenderbuffers(1, &gl_depthbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, gl_depthbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32F, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, gl_depthbuffer);
...
cl_depth = clCreateFromGLRenderbuffer(context, CL_MEM_READ_ONLY, gl_depthbuffer, &error);
目前,我从clcreatefromgrenderbuffer
调用CL\u无效的图像\u格式\u描述符中得到以下错误
我在cpp文件的顶部添加了以下行:
#include <CL/cl.hpp>
#pragma OPENCL EXTENSION cl_khr_gl_sharing : enable
#pragma OPENCL EXTENSION cl_khr_gl_depth_images : enable
#包括
#pragma OPENCL扩展cl_khr_gl_共享:启用
#pragma OPENCL扩展cl_khr_gl_depth_图像:启用
但是我的编译器给出了两个未知的pragma警告,我仍然得到CL\u无效的\u图像\u格式\u描述符
错误
我包含的扩展是错误的还是不能在opencl中使用深度渲染缓冲区
编辑:我的设备支持所讨论的扩展!
正如前面所指出的,把这些行
#pragma OPENCL扩展cl_khr_gl_共享:启用
#pragma OPENCL扩展cl_khr_gl_depth_图像:启用
在OpenCL C的源代码的顶部,而不是在C++代码中。
默认情况下,所有可用扩展的C++部分都被启用,扩展的所需函数自动编译为可执行文件。
在包含<代码> > PrimaPracl OpenCL扩展< /C> >之前,请使用该语法,而不是在C++中使用,而是在OpenCL中使用。谢谢,但是我如何确保在C++之前启用所有扩展?执行需要这些扩展的代码?在C++C++代码之前加载CulcEdioStutySo源文件是否足够?