Nouveau 内核在 Allegro5-C++ 上拒绝了 pushbuf

Nouveau kernel rejected pushbuf on Allegro5-C++

我遇到了麻烦: 我已经在 Ubuntu 上安装了 Allegro5,并编译了我的 Helloworld 项目

#include <allegro5\allegro.h> #include <allegro5\allegro_native_dialog.h> int main(void) {
  ALLEGRO_DISPLAY *display=NULL;
  if(!al_init()) {
    al_show_native_message_box(NULL, NULL, NULL, "failed to initialize allegro!", NULL, NULL);
    return -1;
  }
  display=al_create_display(640,
  480);
  if(!display) {
    al_show_native_message_box(NULL, NULL, NULL, "failed to initialize display!", NULL, NULL);
    return -1;
  }
  al_destroy_display(display);
  return 0;
}

使用“g++ -Wall TestProgram.cc pkg-config --libs allegro-5.0 allegro_font-5.0 allegro_ttf-5.0”。 运行 它在终端上,它给我这个错误(或崩溃?)消息:

nac@NAC:~$ ./a.out 
nouveau: kernel rejected pushbuf: Bad file descriptor
nouveau: ch0: krec 0 pushes 1 bufs 1 relocs 0
nouveau: ch0: buf 00000000 00000002 00000004 00000004 00000000
nouveau: ch0: psh 00000000 00000004a8 00000004bc
nouveau:    0x00107b00
nouveau:    0x00000000
nouveau:    0x20217000
nouveau:    0x00000003
nouveau:    0x1000f010

经过一些测试我发现它在 "al_destroy_display(display);" 或之后崩溃,事实上,在那个错误之后我必须 ctrl+C 来结束程序。

我该怎么办??

这个问题已经有几个月了,但它是搜索此错误时的第一个问题。我有同样的错误 运行 LinuxMint 17.2 和 Allegro 5.0.10,并通过更新我的显卡 (GeForce GTX 460) 驱动程序解决了这个问题。希望这对未来的用户有帮助。

我在 Rstudio 上遇到了类似的问题(这是 rstudio 上非常著名的错误)

建议运行在终端中使用以下命令:

QT_XCB_FORCE_SOFTWARE_OPENGL=1 rstudio

所以,在你的情况下,我认为:

QT_XCB_FORCE_SOFTWARE_OPENGL=1 ./a.out