Короче, как-то так получилось, что у меня уж давненько наблюдались микрофризы на нвидии 1080. В принципе, не сильно мешали даже в игрушках, так что привык, а разбираться было лень, грешил на драйвера или на недостатки общей конфигурации пекарни. А тут решил посмотреть на ФПСы, поставил mangohud
и заметил, что пики на графике frametime, которые сопровождают эти фризы, следуют равномерно через 3 секунды. Опа, думаю, значит, что-то периодически дёргается в фоне. Оказалось — какое-то время назад добавил виджеты кде-шного рабочего стола, показывающие скорость вращения вентиляторов (тупо вывод cat /sys/class/hwmon/.../ fan?_input
). Но вот тот, который показывает скорость вентилятора видяхи, за неимением соответствующей записи в /sys, дёргал, по совету из Арчевики, nvidia-settings -q GPUCurrentFanSpeedRPM -t
, таки каждые 3 секунды. Я хз, чем это поделие там занимается ради вывода одного-единственного параметра, но таки вот. При этом та же nvidia-smi
таким не страдает (но она текущую RPM выводить не умеет, только уставку скорости в процентах). Быстренько переделал утилитку из примеров libXNVCtrl
, чтобы выводила нужную скорость, и щас наслаждаюсь идеальными 60 FPS в игрухах.
Тут ещё косяк KDE, конечно — за каким чёртом регулярно обновлять виджеты, когда запущен полноэкранный режим? Композитинг-то отключать научились, а вот это…
Edit: Вижу, требуется пояснение, в чём именно заключается вредность совета. Как выяснилось, nvidia-settnings ради чтения одного-единственного параметра на какую-то долю секунды ставит колом всю видеоподсистему. И это монстроидальное поделие рекомендуется в Арчевики для индикации параметров, например, в conky, что предполагает периодический вызов. А это, на минуточку, при периоде в 3 с, как был у меня — 1200(!) вызовов в час, или 28800(!!) в сутки. (Я тут даже подозреваю, что и глюк с перемежающимися GPF’ами плазмы, заканчивающимися паникой ядра, с которым я бьюсь уже года два — тоже, не исключено, был вызван этим гениальным поделием нвидиевских индусокодеров. Но это требует тестирования хотя бы на протяжении месяца.)