Yandex Browser's GPU crashes dropped significantly after pretending to be Chrome
Yandex Browser is a Chromium-based browser, which means that it uses the same core as Google Chrome, Microsoft Edge, Brave, Vivaldi or Opera. The browser was launched in 2012. One would assume that performance of all these browsers would be about the same in most cases, but this is apparently not the case.
Maxim Smirnov, who leads Yandex's browser performance team, describes in a new blog post on the official company blog how his team managed to reduce GPU process crashes by the factor 5.5 and memory consumption of the GPU process by 8% on average. According to Yandex, all they had to do is rename the GPU process to chrome.exe.
The improvements were observed on AMD systems, and it is unclear if NVIDIA systems are affected by this as well.
The idea to see if renaming the process would improve performance of the company's browser came after Smirnov's team analyzed a scrolling issue that affected the company's browser but not Chrome and Edge on the same Lenovo laptop. The team confirmed that its browser was using the same touchpad logic as the other browsers. When Yandex renamed its browser executable from browse.exe to chrome.exe, it noticed that the scrolling issue was fixed.
This suggested that a list of hardcoded application file names was used by the touchpad driver, and that Yandex's browser was not on the list.
Optimizing browser performance by pretending to be chrome.exe
Yandex's performance team remembered the touchpad solution, and decided to investigate, if the renaming of the GPU process would have a positive effect on the browser's performance. If an installed GPU driver would also use hardcoded process names, it could mean that these processes would benefit from this.
Yandex used an internal function of Chromium to replace browser.exe with chrome.exe internally only. This had the advantage that the process name was left untouched. Users who opened the Task Manager would still see browser.exe as the process name.
The company set up an A/B experiment to check if the change had any impact on the GPU process' stability and performance. Turns out it did: "The results surprised us a lot: for users with AMD video cards from the experimental group, the number of GPU process crashes decreased by 5.5 times, the memory consumption of the GPU process decreased by an average of 8%, and the opening of web pages in the browser and interface responsiveness also slightly accelerated".
Yandex's conclusion was, that the AMD driver used hardcoded process names for certain features or optimizations. Yandex contacted AMD to request inclusion of its browser in the list. The company is aware that this would affect future drivers only, and it decided to launch a change in Yandex Browser version 22.9.0 that pretends that the browser's GPU process is chrome.exe.
Other Chromium-based browsers and applications may be affected by this as well. Browser makers may want to verify this by running their own sets of tests.