opengl - 用于创建 OpenCL 上下文的 GLX 上下文

标签 opengl opencl

问题:如何获取 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/

相关文章:

c++ - 游戏引擎与物理引擎与几何建模内核之间的区别

cuda - openacc 与 openmp 和 mpi 的区别?

c++ - OpenGL - 更新模型信息(例如模型矩阵)的最有效方法

c++ - OpenGL 顶点着色器在 Linux 上速度很快,但在 Windows 上非常慢

opengl - 打开总帐 : draw rectangles with borders?

c++ - 如何在内核中传递数组,做一些事情然后返回它 - OpenCL

c++ - 写入超过 1 个输出的片段着色器错误

Qt 使用 ShaderEffect 进行 QImage 渲染

c - linux 上的 opencl 问题

c - 为什么我的文件的相对路径不能被我的应用程序识别?