2012-02-26 88 views
0

试图得到一个基本的“Hello World”般的XServer应用程序运行起来后,我发现,无论我怎么努力,我一直运行到了同样的错误,那就是:Xinerama是否会导致我的代码出现问题?

X Error of Failed request: BadMAtch(invalid parameter attributes) 
Major opcode of failed request: 78 (X_CreateColormap) 

起初,我认为这是我的车手,所以我将它们更新到了290.10(nVidia)。

我的(相关)设置由以下部分组成:

nVidia GTX 550 Ti 
Sabayon Linux 
Kernel 3.2 

但是,一些冲浪之后,它看起来像它可以是事实,我有双显示器(一个连接到HDMI迷你接口,另一个vga/dvi),或者我启用了Xinerama的事实,或者两者都有。

我试图通过在我的代码中创建两个GLXContext对象来补偿这两个显示器,如预期的那样,它没有做任何事情(很好:我刚开始学习这个API)。我这样做是因为它好像GLXContext与监视器输入/输出有关。

之后,没有工作,我试着glXGetConfig,那也没有工作。因此,我开始更多地寻找问题,并在几年前撰写的关于禁用Xinerama的问题的论坛上发布了一篇文章,这是造成问题的原因。奇怪的是,这件事发布于2009年,所以人们会认为nVidia现在已经解决了这个问题。

我不知道该怎么做,我相信我有点不知所措,除非我能解决这个问题。

任何人都可以在SuperUser here上查看我的代码here(pastebin)。

我真的可以在这个上使用一些帮助。

TL;博士

setWindowAtt.colormap = colorMap; 
setWindowAtt.event_mask = ExposureMask | KeyPressMask; 

win = XCreateWindow(dp, root, 0, 0, 600, 600, 0, visualInfo->depth, InputOutput, visualInfo->visual, CWColormap | CWEventMask, &setWindowAtt); 

XMapWindow(dp, win); 

XStoreName(dp, win, VI_UN_DEF_WIN_NAME); 

glxContext = glXCreateContext(dp, visualInfo, NULL, GL_TRUE); //error 

glXMakeCurrent(dp, win, glxContext); 
+0

请提供[Short,Self Contained,Compilable,Example](http://sscce.org/)。分析起来要容易得多。 – 2012-02-26 11:48:14

+0

完成并完成:) – zeboidlund 2012-02-26 14:06:59

+0

'viUn.h'在哪里? – 2012-02-28 17:13:08

回答

1

线索就在你的面前:

Major opcode of failed request: 78 (X_CreateColormap)

这意味着XCreateColormap失败。如果它想告诉你一个GLX命令失败了,它会说一些关于GLX的东西。 - 为XCreateColormap手册上说 - 真彩色的视觉效果必须AllocNone进行分配,并且将抛出BadMatch如果你从glXChooseVisual获得视觉可能是一个真彩色一流的视觉和:

阅读你的代码的休息后你没有。

相关问题