OpenGL 使用英特尔显卡以非常低的帧率运行

chr*_*oph 4 performance xorg intel-graphics opengl

我得到了两个几乎相同但显卡略有不同的系统:

系统A

product: N10 Family Integrated Graphics Controller
vendor: Intel Corporation
driver: i915
Run Code Online (Sandbox Code Playgroud)

系统B

product: Atom Processor D2xxx/N2xxx Integrated Graphics Controller
vendor: Intel Corporation
driver: gma500
Run Code Online (Sandbox Code Playgroud)

我知道两者都无法提供最佳性能,但系统 B非常慢。以下是主要区别:

结果glmark2

系统A:(55分)

GL_VENDOR:     Intel Open Source Technology Center
GL_RENDERER:   Mesa DRI Intel(R) IGD x86/MMX/SSE2
GL_VERSION:    1.4 Mesa 9.0.3
Run Code Online (Sandbox Code Playgroud)

系统 B:(24 分)

GL_VENDOR:     VMware, Inc.
GL_RENDERER:   Gallium 0.4 on llvmpipe (LLVM 0x301)
GL_VERSION:    2.1 Mesa 9.0.3
Run Code Online (Sandbox Code Playgroud)

结果glxinfo | grep render

系统A:

direct rendering: Yes
OpenGL renderer string: Mesa DRI Intel(R) IGD x86/MMX/SSE2
Run Code Online (Sandbox Code Playgroud)

系统B:

direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x301)
Run Code Online (Sandbox Code Playgroud)

结果grep -i chipset /var/log/Xorg.0.log

系统A:

[    21.507] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
[    21.510] (II) VESA: driver for VESA chipsets: vesa
[    21.521] (--) intel(0): Integrated Graphics Chipset: Intel(R) Pineview G
Run Code Online (Sandbox Code Playgroud)

系统B:

[    16.728] (II) VESA: driver for VESA chipsets: vesa
Run Code Online (Sandbox Code Playgroud)

结果egrep "(GLX|DRI)" /var/log/Xorg.0.log

系统A:

[    21.319] Initializing built-in extension XFree86-DRI
[    21.319] Initializing built-in extension DRI2
[    21.418] (==) AIGLX enabled
[    21.419] Loading extension GLX
[    22.114] (II) intel(0): [DRI2] Setup complete
[    22.114] (II) intel(0): [DRI2]   DRI driver: i915
[    22.140] (II) intel(0): direct rendering: DRI2 Enabled
[    22.417] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[    22.417] (II) AIGLX: enabled GLX_INTEL_swap_event
[    22.417] (II) AIGLX: enabled GLX_ARB_create_context
[    22.417] (II) AIGLX: enabled GLX_ARB_create_context_profile
[    22.417] (II) AIGLX: enabled GLX_EXT_create_context_es2_profile
[    22.417] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
[    22.417] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
[    22.417] (II) AIGLX: Loaded and initialized i915
[    22.417] (II) GLX: Initialized DRI2 GL provider for screen 0
Run Code Online (Sandbox Code Playgroud)

系统B:

[    16.696] Initializing built-in extension XFree86-DRI
[    16.696] Initializing built-in extension DRI2
[    16.725] (==) AIGLX enabled
[    16.725] Loading extension GLX
[    18.120] (II) AIGLX: Screen 0 is not DRI2 capable
[    18.120] (II) AIGLX: Screen 0 is not DRI capable
[    18.144] (II) AIGLX: Loaded and initialized swrast
[    18.144] (II) GLX: Initialized DRISWRAST GL provider for screen 0
Run Code Online (Sandbox Code Playgroud)

最后一个特别有趣,因为系统 B 显然未能初始化正确的 DRI 支持。所有这些都告诉我 B 上缺少某些东西。我不认为所有这些差异只是由于使用两种不同的显卡造成的,所以我怀疑我需要在 B 上安装一些其他驱动程序。也许是使用的那个通过系统 A (i915)?

Bra*_*iam 5

我几乎立即发现了您的问题:

gma500

这篇关于 gma500 模块的wiki 文章之后,很明显该芯片缺乏硬件加速:

不幸的是,Linux 上对这种硬件的支持极其有限。有几种驱动程序,但都缺乏某些基本功能,例如未来和当前的维护或对挂起和硬件加速的支持。

这通过使用 llvm 得到确认,或者更像是软件光栅化器:

OpenGL 渲染器字符串:llvmpipe 上的 Gallium 0.4 (LLVM 0x301)

较新的 gma500_glx 也不支持此功能:

gma500_gfx(尚)不支持 3d 图形,目前还不清楚将来是否会支持。

您可以使用 来查看有关模块的详细信息modinfo gma500。虽然我认为它应该gma500_gfx在你的系统中调用,这很奇怪(但不相关)。在任何情况下,您的驱动程序也不支持 mesa,它在 GNU/Linux 中是硬件加速的圣地(因此所有 glx 测试)。希望这能解决你所有的疑惑。

有趣的阅​​读:

没有什么实际的,只是相当老的非硬件加速故障排除问题。