问题
我正在尝试运行一个 OpenGL 应用程序,该应用程序可以在其他机器上的 Ubuntu 先前版本上运行,但当我尝试在窗口上绘制任何内容时,它会顺利地打开窗口并崩溃。
系统
Ubuntu
64 位版本:13.04
中央处理器
processor : 2 vendor_id : AuthenticAMD cpu family : 16 model : 4 model name : AMD Phenom(tm) II X4 B95 Processor stepping : 2 microcode : 0x10000db cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 2 cpu cores : 4 apicid : 2 initial apicid : 2 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes
显卡
01:05.0 VGA 兼容控制器:Advanced Micro Devices [AMD] nee ATI RS880 [Radeon HD 4200]
故障排除
我下载
globs
并运行了所有标准测试。除了 GLSL_paralax 甚至无法启动外,其他测试都运行正常。我检查了我的图形驱动程序。
glxinfo | grep render direct rendering: Yes OpenGL renderer string: Gallium 0.4 on AMD RS880 GL_NV_conditional_render, GL_AMD_conservative_depth,
我的理解是,我正在使用开源图形驱动程序,而不是使用软件渲染。
我跑了
glxgears
glxgears -info Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. GL_RENDERER = Gallium 0.4 on AMD RS880 GL_VERSION = 3.0 Mesa 9.1.3 GL_VENDOR = X.Org ... 301 frames in 5.0 seconds = 60.155 FPS 299 frames in 5.0 seconds = 59.766 FPS 298 frames in 5.0 seconds = 59.566 FPS 300 frames in 5.0 seconds = 59.968 FPS
我认为这是一个糟糕的结果。其他消息来源说我应该有更高的帧速率,尽管我的显示器设置为 60 Hz,所以如果渲染速率设置为这个值,这似乎是正确的
我检查了 OpenGL 错误日志
cat /var/log/Xorg.0.log | grep EE (WW) warning, (EE) error, (NI) not implemented, (??) unknown. [ 14.665] Initializing built-in extension MIT-SCREEN-SAVER [ 14.797] (EE) Failed to load module "fglrx" (module does not exist, 0) [ 14.832] (EE) Failed to load module "fglrx" (module does not exist, 0)
我认为这意味着我没有
fglrx
安装我查了一下
fglrx
,它似乎是专有 OpenGL 驱动程序的一部分。安装说明如下:http://wiki.cchtml.com/index.php/Ubuntu_Raring_Installation_Guide#Installing_Proprietary_Drivers_a.ka_Catalyst.2Ffglrx
问题
有人知道为什么 GLSL_paralax 测试无法启动吗?还有其他类似的测试我可以尝试吗?
我能进行其他诊断测试来隔离我的问题吗?
缺少的
fglrx
模块重要吗?它会不会是我问题的根源?如果可以,我不安装专有驱动程序是否可以获得它?
如果我需要专有驱动程序,我提供的链接是否是最安全/最简单的获取方式?我不愿意遵循他们的说明,因为我在手动配置其他 Linux 机器的图形驱动程序时遇到了问题。是否有可以替代的图形工具(如附加驱动程序)?
答案1
我解决了我的问题,但是,解决方案是,我运行的 openGL 代码中有一个不寻常的错误。它失败了,因为它找不到所需的字体,而不是因为图形问题。由于基于 c 的 OGL 和字体调用嵌入到 python 代码中的方式,很难追踪这一点。
在发现这个问题的过程中,我尝试了几种方法,包括升级到专有图形驱动程序。我会不是建议任何运行 ATI HD 显卡的人都使用此软件,因为 13.04+ 版本不支持该显卡fglrx
。您需要降级 Xserver,这会导致 Unity 运行不佳。专有驱动程序对系统图形的改善并不明显,尽管许多人报告说它们在功耗方面对笔记本电脑有优势。
最后,GLSL_paralax
测试globs
因与驱动程序无关的原因而失败。
总体而言,所有图形都可以在我的系统上使用开源驱动程序。