这是我的第一篇帖子。我会尽量提供有关该问题尽可能多的信息。这篇帖子有点长,但相当详细。
系统规格:
处理器:i5-4690k
GPU:MSI R9 290x
内存:4 GB DDR3
存储:500 GB SSD 显示器:Benq XL2411
我使用 Windows 双启动,并且通常在 Windows 上玩游戏。游戏以 ~144 FPS 运行,没有任何问题。
但是,最近我考虑了一下使用 Linux,并决定安装 Ubuntu 18.04。我安装了 AMD 的 AMDGPU-PRO 驱动程序。我仔细遵循了安装说明,并确保它安装正确。
当我启动 Dota 2 时,它运行良好,直到我进入公共游戏,之后我在游戏开始后或某个任意时间突然丢失了显示信号。有时信号丢失持续时间为游戏开始后的 5 分钟,有时是 20 分钟,有时是 40 分钟。当我丢失显示信号时,声音仍在背景中播放几秒钟,但它会停止或开始循环。我的电脑仍然开着,因为我可以听到风扇的声音并看到 LED。电源按钮不起作用,除非我按住它 5 秒钟(硬关机)。重新启动后,如果我启动 Windows,游戏可以完美运行。如果我启动 Ubuntu,它将持续 5-10 分钟(有时更多),然后重复上述事件序列。
无论我选择登录 Ubuntu Wayland 或 Xorg,或者是否在后台运行进程,问题仍然存在。
我决定使用来检查 GPU 温度lm-sensors
。我安装了它,运行了传感器检测,然后运行了传感器命令。在桌面空闲时,我得到了以下输出:
amdgpu-pci-0100
Adapter: PCI adapter
vddgfx: +1.00 V
fan1: N/A (min = 0 RPM, max = 0 RPM)
edge: +66.0°C (crit = +104000.0°C, hyst = -273.1°C)
power1: 36.11 W (cap = 208.00 W)
我注意到的第一件事是,桌面空闲时 GPU 温度持续上升,每隔几分钟上升约 1 度。此外,fan1
出于某种原因,传感器不工作。我运行了sensors -u
,输出如下:
amdgpu-pci-0100
Adapter: PCI adapter
vddgfx:
in0_input: 1.000
fan1:
ERROR: Can't get value of subfeature fan1_input: Can't read
fan1_min: 0.000
fan1_max: 0.000
edge:
temp1_input: 65.000
temp1_crit: 104000.000
temp1_crit_hyst: -273.150
power1:
power1_average: 36.113
power1_cap: 208.000
然后我决定下载一个来自 git 的脚本手动设置风扇速度。
好吧,我测试了一下,当我以 100 执行时,风扇确实会更响,但我怀疑这是否真的是它们的最大值,因为我在 Windows 上玩《战地 4》时听到它们的声音大得多。然后,sensors
在桌面空闲时 GPU 温度开始降低。
现在我尝试玩 Dota 2,将风扇设置为 100,并通过 监控 GPU 温度sensors
。温度会大幅上升,在主菜单中达到约 82-86 度,在游戏中达到 95 度以上。一旦温度超过 96-97 度,显示器就会丢失信号,就像我之前描述的一样。GPU 温度也上升得相当快,每隔几分钟左右上升 1 度。在游戏开始时风扇以 100 度运转时,这种情况不再发生,但一段时间后结果基本相同。
我真的想确保这不是硬件问题,所以我使用我的 Radeon 设置程序在 Windows 上玩 Dota 2 游戏时监控我的 GPU 的性能。
主菜单时的 GPU 温度约为 74 度,游戏中最高温度在 85 到 93 度之间,大部分时间保持在 90-88 度之间,包括在团战期间(这需要更多的 GPU 功率)。
风扇转速平均约为 2400 RPM,游戏过程中峰值约为 2550 RPM。桌面空闲时转速更接近 1200 RPM。我曾在超高画质下运行过《战地 3》和《战地 4》,在 Windows 上没有遇到此类问题。此外,Dota 2 的 GPU 利用率约为 30%-50%,CPU 利用率约为 70-80%。
GPU 传感器在 Windows 上运行良好,而且非常准确,尤其是风扇速度。
我查看了这个 amdgpu-pro-fans 脚本的作用,发现它本质上是访问卡的目录( )并从文件(即)/sys/class/drm/card0/device/hwmon/hwmon2
中获取值,计算输入的百分比,并将这个新值写入。我不知道这个值为什么是或它代表什么。还有一个文件,其中包含一个值为,以及一个文件,由于它是“未知类型”,因此无法打开。这可能与 中的问题有关。此外,文件显示,而显示。我很确定这些值是垃圾。它们也可以在上面的传感器输出中看到。pwm1_max
255
pwm1
255
fan1_enable
1
fan1_input
sensors
temp1_crit
104000000
temp1_crit_hyst
-273150
hwmon2
是 中唯一的文件夹hwmon
。我看到有些人有hwmon3
,但我不知道为什么。以下是该hwmon2
文件夹的屏幕截图:
我不能 100% 确定 GPU 过热是导致我的问题的原因,但我认为这种可能性很大。
我至少尝试过 5 次重新安装 AMDGPU-PRO 驱动程序。我的系统和 AMDGPU-PRO 驱动程序都是最新的。
我正在运行 Dota 2,设置与 Windows 上的相同。
我在 Dota 2 中使用 Vulkan API。在 OpenGL 上,性能明显较低,游戏内平均为 80 FPS。在 Vulkan 上,它或多或少与我的 Windows 性能相匹配。
最后要说的是,在我的显示器黑屏/信号丢失之前,游戏的 FPS 并没有真正下降。它发生得相当突然。没有延迟或类似情况。
对于导致这些问题的原因您有什么想法吗?