问题:如何获取 GLXContext 并将其传递给 clCreateContextFromType?
信息:
我正在学习 openGL CL 互操作的工作原理。我已经了解了 openCL 的工作原理和 openGl 的工作原理,现在我正处于让它们协同工作的最后一步。我曾经使用 glut,但后来开始使用 GLX,因为我需要一个 GL 上下文,以便 CL 能够从中创建其上下文。我将 GLXContext 保存为全局变量,并将其传递给 clCreateContextFromType,编译时得到:
error: invalid conversion from ‘GLXContext {aka __GLXcontextRec*}’ to ‘cl_context_properties {aka long int}’
所以我在互联网上跑来跑去,从中找到了一些建议blog ,并创建了一个包含 {CL_GLX_DISPLAY_KHR, glc} 的 cl_context_properties 列表。它抛出了完全相同的错误。我在这里缺少什么?显然,为了使这个 GLX 上下文适合 openCL 需要做一些事情。我错过了什么?
最佳答案
我明白了:
cl_context_properties props[] =
{
CL_GL_CONTEXT_KHR, (cl_context_properties)glXGetCurrentContext(),
CL_GLX_DISPLAY_KHR, (cl_context_properties)glXGetCurrentDisplay(),
CL_CONTEXT_PLATFORM, (cl_context_properties)(platform_id),
0
};
为什么它有效我真的不知道。但我找到了here .
关于opengl - 用于创建 OpenCL 上下文的 GLX 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689722/