我正在尝试在 Ubuntu 18.04 上使用此应用程序:https://app.sketchup.com/app,但有一个问题。当模型大于屏幕并移动到上边框后面时,SketchUp挂起。韦兰或者X11没关系。尽管 Wayland 在挂起时响应更快。浏览器没关系 -火狐,铬合金,歌剧- 相同的行为。
容易发生挂起的情况示例:
如果我尝试使用该Pan
工具移动该模型或者使用该工具旋转Orbit
,我就会被冻结。
我已经找到了解决方法Windows 10在 Virtualbox 中。应用程序在那里运行良好。然后我尝试Ubuntu 18.04在 Virtualbox 中 - 也运行良好。Lubuntu 18.04但如果我从这些文件(我指的是 Linux 发行版)创建 LiveUsb.iso
并在真实硬件上启动它们,我会遇到同样的问题。
我尝试过其他非 Ubuntu 发行版 -Fedora 28和OpenSuse 15- 没有发现任何问题。VirtualBox 和真实硬件上均没有问题。
我的假设:
我认为,原因在于mesa
库,并希望从源代码编译较新的版本并进行测试。但它在 上运行Virtualbox
,使用 Virtualbox 的视频驱动程序 ( vboxvideo
)。但它无法与i915
实际系统上的驱动程序配合使用...你怎么看?有人对解决这个问题有什么想法吗?
GPU 信息:
sudo lshw | grep -A 9 VGA
description: VGA compatible controller
product: 2nd Generation Core Processor Family Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
有关在给定 X 显示器上运行的 OpenGL 和 GLX 实现的信息:
glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 3.3
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
答案1
我找到了一个简单、临时的修复方法,它解决了这个问题,但我认为它可以更好。问题出在硬件加速上。这就是为什么问题没有出现在 VirtualBox 的情况下,而是在硬件运行时出现的原因。
现在我刚刚启动火狐通过这种方式:LIBGL_ALWAYS_SOFTWARE=1 firefox
挂起现象就会消失。应该还有其他禁用它的方法,比如在 Firefox 配置中禁用它或类似方法。
LIBGL_ALWAYS_SOFTWARE - 如果设置为
true
,则始终使用软件渲染
来源:Mesa 环境变量
解释:
在设置LIBGL_ALWAYS_SOFTWARE
环境变量之前,使用硬件加速。
glxinfo | grep -i "opengl"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Desktop
设置LIBGL_ALWAYS_SOFTWARE
环境变量后,硬件加速被禁用,并使用软件渲染,就像在 VirtualBox 中一样。
LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep -i "opengl"
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
但我不喜欢这个解决方案,因为它影响所有 WebGL 网站,但问题出在SketchUp仅。例如生物数码与硬件加速配合良好,我经常使用它。
需要其他解决方案。也许更新到最新的mesa
库可以修复硬件加速?
另外一个问题是:为什么硬件加速在一个站点上有问题,而在其他站点上却没有问题?