X升级后,openCL-openGL互操作停止工作

时间:2013-05-16 11:05:49

标签: opengl opencl xorg

以下代码用于工作:

cl_context_properties Properties [] = {
    CL_GL_CONTEXT_KHR, (cl_context_properties) glXGetCurrentContext(),
    CL_GLX_DISPLAY_KHR, (cl_context_properties) glXGetCurrentDisplay(), 
    CL_CONTEXT_PLATFORM, (cl_context_properties) CL.Platform, 
    0
};

CL.Context = clCreateContext(Properties, 1, CL.Device, 0, 0, &err);
if (err < 0) printf("Context error %i!\n", err);

但现在打印

Context error -1000!

如果我发表评论

    //CL_GL_CONTEXT_KHR, (cl_context_properties) glXGetCurrentContext(),
    //CL_GLX_DISPLAY_KHR, (cl_context_properties) glXGetCurrentDisplay(), 

然后它工作正常。所以,似乎问题出在glX调用上。

现在,改变的是我在我的机器上升级了X.我运行AMD催化剂,这次升级导致我的显示丢失,所以在清除并重新安装fglrx之后,我重新获得了显示但是怀疑在这个过程中出现了问题。除此之外,我曾经在这台机器上玩Zandronum但是自升级以来,任何尝试都会产生以下错误:

zandronum: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.

我认为这不是巧合。

但是,我不确定如何继续进行调试。我可以在gdb中打印glX调用的结果:

(gdb) p Properties
$1 = {8200, 8519632, 8202, 6308672, 4228, 140737247522016, 0}

但我不知道如何验证它,或者获得有关这些调用返回的值的更多信息。我可以采取哪些步骤来解决问题的根源?我是否在寻找合适的地方?

0 个答案:

没有答案