首页 > 解决方案 > 在 yocto 中使用 llvmpipe 而不是 softpipe

问题描述

我有一台旧的 x86 机器。我构建了通用的 intel-core2-i32 机器配置并在其上安装了 yocto。显示速度很慢。

Ubuntu 12.04 在同一台机器上运行流畅。两种情况下的图形驱动程序相同:gma500_gfx

然后我查看了glxinfo并发现了不同之处,ubuntu12.04正在使用Gallium on llvmpipe 而yocto正在使用:

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: softpipe
OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.0.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 19.0.3
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:

如何在 Yocto 上将 OpenGL 渲染器字符串更改为“llvmpipe”,这有帮助吗

标签: linuxopenglembedded-linuxubuntu-12.04yocto

解决方案


您应该首先检查 llvmpipe 驱动程序是否已实际启用。mesa 配方配置有这个可疑之处(我相信这里的 swrast 真的意味着 llvmpipe):

GALLIUMDRIVERS = "swrast"
# gallium swrast was found to crash Xorg on startup in x32 qemu
GALLIUMDRIVERS_x86-x32 = ""

检查配置日志或生成的包:如果没有构建 llvmpipe,请尝试删除上面的最后一行,看看是否可以改善情况。


推荐阅读