Если у вас ноутбук с Intel iGPU и дискретной видеокартой, а в мессенджерах, редакторах кода и браузерах по краям интерфейса тянутся странные полосы и блочный мусор, который исчезает под курсором мыши — эта статья про вашу проблему.

Спойлер: дело не в видеокарте, не в мониторе и не в драйверах. И чинится это одним ключом реестра, до которого я дошёл через день перебора всех «народных» советов, ни один из которых не сработал.

Как это выглядит

Симптомы очень характерные, и если они совпадают — диагноз почти наверняка тот же:

  • Полосы и блочные артефакты тянутся от элементов интерфейса, а не хаотично по экрану

  • Появляются сразу при запуске приложения, а не после нагрузки

  • Исчезают, если провести курсором по затронутой области

  • Проявляются во всех Chromium‑приложениях сразу: Electron‑программы, браузеры на Chromium, десктопные клиенты

  • Обычные окна Windows — Проводник, блокнот, настройки — чистые

Последний пункт важен: он сразу отсекает половину гипотез.

Что это не

Прежде чем копать в правильную сторону, я потратил кучу времени, исключая ложные версии. Возможно, это сэкономит время вам.

Не матрица и не шлейф ноутбука. Подключил внешний монитор по HDMI — артефакты там ровно такие же. Аппаратная проблема с панелью отпадает.

Не сторонний софт и не оверлеи. Загрузился в безопасном режиме, где не грузятся ни RGB‑утилиты, ни оверлеи вроде RTSS, ни фоновые процессы — артефакты остались на месте.

Не проприетарный драйвер. В безопасном режиме Windows использует базовый видеодрайвер Microsoft, а не Intel/NVIDIA. Артефакты пережили и это.

Не оперативная память. Артефакты строго привязаны к одному классу приложений. Сбойная планка RAM била бы по всей системе без разбора.

К этому моменту круг сузился до одного: что‑то на стыке Windows и Chromium.

Причина

Виноваты три компонента, каждый из которых сам по себе исправен.

DirectComposition — механизм Windows, который склеивает окна в итоговую картинку на экране. Multi‑Plane Overlay (MPO) — аппаратное ускорение этой склейки: вместо того чтобы смешивать слои силами CPU, Windows отдаёт их GPU как отдельные «плоскости». Chromium — использует DirectComposition для вывода своего содержимого.

На гибридной графике добавляется четвёртый участник — сама схема Optimus. Кадр рендерится на дискретной видеокарте, но физически выводится на экран через интегрированную. В момент передачи кадра между адаптерами композитор не всегда корректно инвалидирует область — старые пиксели остаются висеть на экране. Движение курсора инициирует принудительную перерисовку региона, поэтому под мышкой мусор исчезает.

Баг известен с 2020 года. Его периодически чинят и он периодически возвращается с новыми сборками Windows и новыми версиями Chromium. Причина живучести — ответственность размазана между Microsoft, вендорами GPU‑драйверов и Google: каждый чинит свою часть, у остальных отваливается.

Что не помогает

Это список того, что советуют в первых десяти ссылках гугла. Проверено — не работает.

Совет

Результат

OverlayTestMode = 5 в реестре (отключение MPO)

Не помогает

Отключение Hardware‑accelerated GPU Scheduling

Не помогает

Отключение Variable Refresh Rate и Auto HDR

Не помогает

Откат драйвера видеокарты на предыдущую версию

Не помогает

Обновление драйвера на самый свежий

Не помогает

Установка всех накопительных обновлений Windows

Не помогает

Приоритет дискретной GPU в панели управления драйвером

Не помогает

Готовые утилиты пакетного отключения MPO

Не помогают

Отдельно про отключение iGPU — в BIOS или в диспетчере устройств. На ноутбуках без MUX‑переключателя (а это большинство бюджетных и средних моделей) встроенный экран физически подключён к интегрированной графике. Отключите её — и получите чёрный экран, откуда выбираться придётся через безопасный режим. Не делайте этого, если не уверены в наличии MUX.

Отдельно про Qt‑приложения

Здесь стоит поправиться: в черновике этой статьи в список Chromium‑приложений попал Telegram Desktop. Это ошибка — Telegram написан на C++/Qt, Chromium внутри него нет, и на флаги с политиками из разделов ниже он не отреагирует никак.

При этом визуально баг у него действительно тот же, просто по соседней причине: за композицию окна отвечает не Chromium, а собственный аппаратно‑ускоренный путь Qt через ANGLE, который так же упирается в DirectComposition на гибридной графике. Симптом совпадает, механизм — нет.

Лечится штатной настройкой самого приложения: Настройки → Продвинутые настройки → Включить аппаратное ускорение (снять галку). Если такая же картина в другом Qt‑приложении — ищите в его настройках пункт вида «hardware acceleration» и отключайте локально.

Решение

Вариант 1: системная политика Chromium

Chromium читает настройки из реестра Windows при каждом запуске — это штатный механизм групповых политик, придуманный для корпоративного управления. Нам он подходит идеально: одна запись применяется ко всем Chromium‑приложениям сразу, не привязана к путям и версиям и переживает обновления программ.

PowerShell от имени администратора:

reg add "HKLM\SOFTWARE\Policies\Google\Chrome" /v "HardwareAccelerationModeEnabled" /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HardwareAccelerationModeEnabled" /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\Policies\Chromium" /v "HardwareAccelerationModeEnabled" /t REG_DWORD /d 0 /f

Перезапустить приложения — артефактов больше нет.

Откат, если что‑то пойдёт не так:

reg delete "HKLM\SOFTWARE\Policies\Google\Chrome" /v "HardwareAccelerationModeEnabled" /f
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HardwareAccelerationModeEnabled" /f
reg delete "HKLM\SOFTWARE\Policies\Chromium" /v "HardwareAccelerationModeEnabled" /f

Важный нюанс. Этот способ отключает аппаратное ускорение целиком: WebGL и Canvas переходят на программный рендеринг через SwiftShader. Для чтения, переписки и написания кода разницы вы не заметите. Но если приложение всерьёз использует GPU — 3D в браузере, тяжёлые визуализации, аппаратное декодирование видео — стоит взять следующий вариант.

Вариант 2: точечный флаг запуска

--disable-direct-composition выключает только проблемный композитор, оставляя рабочими WebGL, Canvas и декодирование видео. Это скальпель там, где первый вариант — топор.

Для обычных приложений — правый клик по ярлыку, Свойства, в конец поля Объект через пробел:

"C:\Path\To\App.exe" --disable-direct-composition

Для приложений из Microsoft Store сложнее: у MSIX‑пакетов нет обычного пути к исполняемому файлу, а ярлык из меню Пуск молча игнорирует аргументы. Запускать нужно через shell:AppsFolder:

powershell -WindowStyle Hidden -command "Start-Process (\"shell:AppsFolder\$((Get-AppxPackage *ИМЯ*).PackageFamilyName)!ИДЕНТИФИКАТОР\") --disable-direct-composition"

Такой ярлык не содержит номера версии в пути, поэтому переживает обновления приложения — в отличие от прямой ссылки на папку в WindowsApps, которая ломается при каждом апдейте.

Вариант 3: автоматизация через IFEO

Если приложений много, а первый вариант по каким‑то причинам не подходит, флаг можно применять автоматически через Image File Execution Options — механизм Windows, перехватывающий запуск процесса по имени исполняемого файла независимо от того, кто и как его запустил: ярлык, меню Пуск, скрипт, сторонний софт.

Схема такая: оригинальный App.exe переименовывается в App.real.exe, а в IFEO регистрируется перехватчик, который запускает App.real.exe с нужным флагом. Найти все Chromium‑движки в системе можно по универсальному отпечатку — связке файла chrome_100_percent.pak и папки locales, которая есть у любой сборки на этом движке.

Готовый скрипт со сканером и откатом выложил на GitHub.

У способа есть цена: при крупном обновлении инсталлятор может восстановить оригинальное имя exe и сбросить перехват. Тогда скрипт нужно прогнать заново.

Что в итоге

Первый вариант закрывает вопрос за тридцать секунд и подходит подавляющему большинству. Второй — если нужно сохранить GPU‑ускорение. Третий — если приложений много и хочется, чтобы всё работало само.

Отдельно отмечу то, что меня удивило: на дворе 2026 год, баг известен шесть лет, а нормального решения на уровне ОС так и нет. Всё, что есть — обходные пути разной степени изящества. Пока три корпорации перекладывают друг на друга ответственность, чинить приходится нам.

Если у вас та же связка железа и что‑то из перечисленного сработало (или не сработало) — напишите в комментариях, соберём статистику по конфигурациям.