Это мой первый пост. Я постараюсь дать как можно больше информации о проблеме. Пост оказался немного длинным, но довольно подробным.
Характеристики системы:
Процессор: i5-4690k
Gpu: MSI R9 290x
Оперативная память: 4 ГБ DDR3
Хранение: 500 ГБ. Монитор SSD: Benq XL2411
Я использую двойную загрузку с Windows, и я обычно играю в игру на Windows. Игра работает на скорости ~ 144 FPS без каких-либо проблем.
Однако недавно я немного подумал об использовании Linux и решил установить Ubuntu 18.04. Я установил драйвер AMDGPU-PRO от AMD. Я тщательно следовал инструкциям по установке и убедился, что он установлен правильно.
Когда я запускал Dota 2, он работал нормально, пока я не вошел в публичную игру, после чего я внезапно потерял сигнал дисплея либо после запуска игры, либо в какое-то произвольное время. Иногда длительность потери сигнала составляет 5 минут, иногда 20, иногда 40. Когда я теряю сигнал дисплея, звук все еще играет на фоне в течение нескольких секунд, но он останавливается или начинает зацикливаться. Мой компьютер все еще включен, потому что я слышу вентиляторы и вижу светодиоды. Кнопка питания не работает, если я не удерживаю ее в течение 5 секунд (жесткое отключение). После перезапуска игра работает отлично, если я загружаю Windows. Если я загружу Ubuntu, он продлится еще 5-10 (иногда больше) минут, прежде чем повторяется вышеупомянутая последовательность событий.
Проблема сохраняется независимо от того, выбираю ли я вход в Ubuntu Wayland или Xorg или у меня запущены процессы в фоновом режиме.
Я решил проверить температуру графического процессора, используя 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)
Первое, что я заметил, было то, что температура графического процессора продолжала расти во время простоя на рабочем столе, примерно на 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, это делает фанатов громче, однако я сомневаюсь, что это действительно их максимум, так как я слышал, как они громче, играя в Battlefield 4 на Windows. Затем температура графического процессора sensors
начинает снижаться во время простоя на рабочем столе.
Теперь я попытался поиграть в Dota 2 с вентиляторами, установленными на 100, и контролировать температуру графического процессора через sensors
. Температура значительно повысится, достигнув примерно 82-86 градусов в главном меню и 95+ в игре. Как только он достигает значения выше 96-97, монитор теряет сигнал, как я ранее описал. Температура графического процессора также повышается довольно быстро, на 1 градус каждые несколько минут или около того. Это больше не происходит в начале игры с фанатами, работающими на 100, но через некоторое время результат практически не изменился.
Я действительно хотел убедиться, что это не проблема с аппаратным обеспечением, поэтому я использовал мою программу настроек Radeon для мониторинга производительности моего GPU во время игры в Dota 2 на Windows.
Температура графического процессора в главном меню была около 74 градусов, в игре она колебалась от 85 до 93 при максимуме, оставаясь на уровне 90-88 большую часть времени, в том числе во время командных боев (что должно требовать гораздо больше Мощность графического процессора).
Скорость вращения вентилятора в среднем составляет около 2400 об / мин, а в ходе игры - около 2550 пиков. При простое использование рабочего стола это больше похоже на 1200 оборотов в минуту. Я запускал Battlefield 3 и 4 на ультра-графике и не имел таких проблем на Windows. Кроме того, загрузка графического процессора составляет около 30% -50% в Dota 2, а загрузка процессора составляет около 70-80%.
Датчики графического процессора отлично работают в 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%, что перегрев графического процессора вызывает мою проблему, но Я думаю, что это очень вероятно.
Я попытался переустановить драйвер AMDGPU-PRO как минимум 5 раз. Моя система и драйвер AMDGPU-PRO обновлены.
Я использую Dota 2 с теми же настройками, что и в Windows.
Я использую Vulkan API в Dota 2. В OpenGL производительность заметно ниже, в среднем 80 FPS в игре. На Vulkan это более или менее соответствует моей производительности Windows.
В заключение отметим, что игровые FPS на самом деле не падают до появления черного экрана / потери сигнала на моем мониторе. Это происходит довольно мгновенно. Здесь нет лагов или чего-то подобного.
Любые идеи о том, что может быть причиной проблем?