You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manjaro下Intel设备OpenCL-OpenGL互操作内核编译错误-44

OpenCL-OpenGL互操作在Manjaro Intel设备上的编译错误问题

我近期在实现OpenCL-OpenGL互操作,在安装NVIDIA驱动与CUDA的Manjaro系统上可正常运行,但在Manjaro的Intel设备上出现问题:

为实现互操作,需通过以下属性创建OpenCL上下文:

cl_context_properties properties[] = { //for Linux
    CL_GL_CONTEXT_KHR, (cl_context_properties) glXGetCurrentContext(),
    CL_GLX_DISPLAY_KHR, (cl_context_properties) glXGetCurrentDisplay(),
    CL_CONTEXT_PLATFORM, (cl_context_properties) platform,
    0
};

调用cl::Context context(default_device, properties);创建上下文后,执行program.build()编译任意内核均返回错误码-44,且program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(default_device)返回空日志。根据OpenCL文档,-44表示“无效程序对象”,但搜索发现该错误可能对应未映射的其他问题。

测试发现的现象:

  • 无论内核代码是否合法,均会触发该错误
  • 若不使用上述属性创建OpenCL上下文,多数设备可正常编译内核,但Intel CPU设备无法创建上下文

测试环境

  • 带NVIDIA GTX1070的Manjaro:正常运行
  • 带AMD R9 380X的Windows:正常运行
  • 带AMD Radeon Pro 450和Intel i7-6700HQ的macOS:正常运行
  • 带Intel i5-3320M的Manjaro:错误-44(无属性无法创建上下文)
  • 带Intel UHD Graphics 620的Manjaro:错误-44

补充信息

除Intel CPU的Manjaro设备外,其他设备均可被clinfo正常识别,该设备的clinfo执行时出现段错误。

我刚接触OpenCL与OpenGL,恳请有经验者解答,也可提供更多相关信息。

内容的提问来源于stack exchange,提问作者Stimmer02

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:42:48