Баг AMDGPU в Linux из 2017 года закрывают с помощью Claude Code

2026-06-18 156 комментарии
В драйвере AMDGPU нашли причину давнего зависания экранов ноутбуков с графикой AMD Radeon, проявлявшегося после длительной работы. Подготовленные патчи переписывают обработку вывода изображения в блоке DCN и должны закрыть проблему, обходным решением для которой было отключение самообновления панели

Многолетнюю ошибку в драйвере AMDGPU, из-за которой на части ноутбуков с графикой AMD Radeon зависает встроенный экран, похоже, наконец близки к устранению. Проблема тянется годами: один из проблемных коммитов датируется 2017 годом, а связанных сообщений об ошибке накопились десятки. Свежие патчи к коду подсистемы вывода изображения должны закрыть давний дефект, и к их подготовке привлекли инструмент Claude Code. В основную ветку ядра Linux исправления пока не приняты, но при удачном развитии событий это произойдёт в ближайшее время.

Как проявляется зависание экрана

Зависание дисплея на отдельных ноутбуках с графикой AMD Radeon – известная проблема, которая чаще всего даёт о себе знать после длительной работы системы. Один из читателей Phoronix с ноутбуком Lenovo ThinkPad T14 Gen1 AMD сообщил, что экран у него замирает примерно раз в неделю использования. До сих пор обходным решением оставалось отключение технологии энергосбережения Panel Self Refresh (PSR).

Panel Self Refresh (PSR) – функция энергосбережения, при которой панель дисплея сама обновляет статичное изображение из собственного буфера кадра, позволяя видеоядру переходить в режим сна. В русской локализации Microsoft встречается как «самообновление панели».

В драйвере AMDGPU отключить PSR можно параметром ядра amdgpu.dcdebugmask=0x10, однако это лишь маскирует симптом ценой возросшего энергопотребления, а не устраняет первопричину.

Что описано в отчёте об ошибке #4141

Основной отчёт в баг-трекере drm/amd озаглавлен по тексту ошибки ядра: 7840U/780M: *ERROR* [CRTC:83:crtc-1] flip_done timed out – за ней следуют зависание экрана и вынужденная жёсткая перезагрузка. Машина в отчёте – Framework Laptop 13 с APU AMD Ryzen 7 7840U и графикой Radeon 780M под управлением Fedora с ядром 6.13.11-200.fc41.x86_64. То же поведение фиксировалось на ноутбуке ThinkPad с тем же APU как минимум начиная с ядра 6.13.10-200.fc41.

По описанию автора, примерно через десять часов работы, в течение которых система несколько раз уходила в энергосберегающий сон s2idle, встроенный экран перестал обновляться. Внешний монитор ещё несколько минут оставался отзывчивым, пока шла диагностика, но затем тоже перестал реагировать – после того как пользователь попытался отключить встроенный дисплей в параметрах GNOME. Кроме самого отчёта #4141, в трекерах накопилось немало дубликатов с тем же зависанием экрана на графике Radeon.

Новые патчи и участие Claude Code

В коде драйвера на днях появились два набора правок: объединение обработки прерываний вертикального гашения (vblank) и переключения буферов кадра (page-flip) в блоке DCN и сопутствующие изменения в коде вывода изображения. Прежние попытки исправления результата не дали, а вот эти патчи, судя по всему, должны закрыть проблему.

Довести разбор до конца помог инструмент Claude Code: отладку вели в режиме так называемого «vibe debugging», а самого Claude задействовали при подготовке патчей. В основную ветку ядра Linux правки ещё не вошли – их только предстоит принять в апстрим.

Заключение

Если у вас ноутбук с графикой AMD Radeon, на котором экран замирает после долгой работы, до выхода исправления остаётся прежний обходной путь – отключение Panel Self Refresh. Сами патчи пока живут вне основной ветки ядра, поэтому массовым пользователям придётся дождаться, когда они попадут в апстрим, а затем и в стабильные ядра дистрибутивов. Показателен и сам способ, которым закрыли давний баг: к разбору низкоуровневого кода графического драйвера подключили ИИ-инструмент.

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте