0

我计划使用 Haxe 进行游戏开发,利用其 C++ 目标,为此我选择了使用 OpenFL 作为后端的 HaxeFlixel 框架。“hello world”测试在 flash 上运行得很好,HTML5 似乎可以工作(减去声音),尽管我不打算使用其中任何一个,因为我希望创建的游戏将是本机运行的桌面游戏。

但是,当我尝试运行 HaxeFlixel hello world 示例并将目标设置为本机 linux 时,测试程序在启动时崩溃并给我以下错误:

libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /home/zauber/.drirc: No such file or directory.
libGL error: failed to load driver: swrast
X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  211
  Current serial number in output stream:  213

我不知道如何解决这个问题。我从未见过类似的东西,而且我运行的所有其他 3D 软件和游戏都很好。我在 HaxeFlixel 论坛上询问过,但只被告知这可能是 OpenFL 中的一个错误。情况似乎是这样,因为我对另一个使用 OpenFL 的游戏框架 Awe6 也有同样的问题。

我在谷歌上搜索过类似的问题,但几乎一无所获。我已经拥有了我应该拥有的所有相关库(mesa、nVidia 驱动程序、dri2、32 位库),并且我发现的所有解决方案都指向安装我已经安装的特定库。

到目前为止,我已经在 OpenFL 论坛和 IRC 频道上询问过,在这两种情况下我都被完全忽略了。我真的需要解决这个问题,因为除非我这样做,否则我无法继续我的游戏开发项目。

作为参考,我的系统运行 64 位 Linux Mint 16、Linux 内核 3.11.0-12 和 nVidia 驱动程序 319.32

4

1 回答 1

1

作为参考,我的系统运行 64 位 Linux Mint 16、Linux 内核 3.11.0-12 和 nVidia 驱动程序 319.32

然后你的系统配置中的某些东西完全搞砸了:由于某种原因,你的程序加载了libGL.so由 Mesa 驱动程序而不是 NVidia 驱动程序提供的libGL.so。明显的迹象是,加载libGL者抱怨 DRI2 不可用。NVidia 的专有驱动程序不使用也不支持 DRI2。DRI2 是 Mesa 的低级状态跟踪器 API。

确保您的系统配置正确。最重要的是确保你使用的库、框架等没有做一些愚蠢的事情,比如捆绑一个libGL.so.

于 2014-05-15T07:32:04.477 回答