Разработчики из Яндекса поделились в своём блоге интересным открытием, связанным с работой драйверов AMD — они оптимизируют работу Google Chrome, но игнорируют другие аналоги на основе Chromium (в частности — Яндекс Браузер). Специалисты Яндекса решили использовать эту возможность, и теперь их веб-обозреватель «притворяется» браузером Chrome.
Стараясь оптимизировать работу Яндекс Браузера и его графической подсистемы, разработчики вспомнили одну из своих старых проблем — в прошлом на ноутбуках Lenovo скроллинг в веб-обозревателе работал некорректно, хотя его реализация была идентичной таковой в Chrome. Тогда в попытках исправить это программисты решили переименовать исполняемый файл своего браузера на chrome.exe, и проблема разрешилась — судя по всему, в драйверах тачпада от Lenovo был список определённых приложений, для которых применялось исправление данной проблемы.
Уже сталкиваясь с таким в прошлом, разработчики Яндекс Браузера решили провернуть такой же трюк и с текущей проблемой — на это их подтолкнул и тот факт, что AMD нередко оптимизирует свои драйверы под конкретные игры, а значит, ничего не мешает ей проделывать то же самое и в случае с программами. В итоге специалисты подменили подстроку browser.exe на chrome.exe внутри GPU-процесса (то есть не затронув имя исполняемого файла) и решили поэкспериментировать.
Результаты на тестовых компьютерах с видеокартами AMD удивили: количество падений GPU-процесса снизилось в 5,5 раз, расход памяти уменьшился в среднем на 8%, а также немного повысились скорость открытия страниц и общая отзывчивость браузера. Это свидетельствует о том, что в драйверах AMD на самом деле есть фикс, применяющийся для избранных приложений (в частности — для chrome.exe).
Яндекс уже направил в AMD запрос на включение Браузера в белый список программ, но фикс может появиться нескоро и, в любом случае, он будет только в новых версиях драйверов. Поэтому разработчики решили не ждать этого и внедрить в Яндекс Браузер для Windows мимикрию под Google Chrome. Функция появилась в версии 22.9.0 — чтобы проверить, работает ли она, необходимо отыскать строку Executable Path на служебной странице browser://gpu.