你描述的現象是:從 tab 1 切到 tab 2 時,tab 1 的部分界面被疊加到了 tab 2 上,過幾秒才消失。這類問題表面看像是瀏覽器卡頓,其根因卻可能出現在三層不同的系統裏:應用層 Chrome 的渲染管線、操作系統的桌面合成與顯示疊加路徑、以及顯示設備本身的臨時殘影。弄清楚像素是怎樣從網頁一路流到屏幕,才能對症下藥。

下文分三塊來講:Chrome 如何把像素畫出來、為什麼會出現跨標籤的殘影、如何一步步定位與解決。同時給一段可直接保存為 html 的小實驗代碼,用來複現與診斷有沒有頁面重繪被延遲的問題。

一、Chrome 到底怎樣把一個標籤頁畫到屏幕上

Chrome 的現代渲染架構叫 RenderingNG。簡化地説,一個標籤頁在渲染時會經歷 Layout/Paint → Raster → Composite → Display 這條流水線。Blink 產出繪製命令,Skia 負責把繪製命令柵格化成位圖紋理,隨後由 Compositor 把各層 Layer/Quad 組合成合成幀,通過 GPU Process 提交到系統窗口的後緩衝區。Chrome 在 Windows 上普遍經由 ANGLE 層把 WebGL/Canvas 等調用映射到 D3D11、OpenGL 或 Vulkan,最後交給系統的桌面合成器顯示。官方文檔對這條管線有系統説明。(Chrome for Developers)

在 Windows,桌面最終由 DWM 合成。新一點的 Windows 10/11 和驅動會用到 MPO(Multi-Plane Overlay,多平面疊加)這套硬件路徑:顯卡顯示控制器直接把多個平面組合輸出,某些視頻或窗口能單獨成為一個平面,從而降低功耗或提升流暢度。微軟的驅動與 MPO 規範説明了這些疊加層的工作方式與硬件要求。(Microsoft Learn)

Chrome 還使用了 Window Occlusion(窗口遮擋感知)與標籤節流、丟棄等策略,以減少對被遮擋或後台標籤的活動消耗。這些策略在官方文章與開發文檔裏也有詳述:Chrome 會跟蹤窗口可見性事件,必要時才重新計算遮擋;當系統內存緊張時,後台標籤會被丟棄,回到標籤時再恢復。(Chromium Blog)

把這三點組合起來看:Chrome 生成合成幀 → 操作系統用 DWM/MPO 把幀疊加到屏幕 → 後台標籤可能被節流或丟棄。任何一個環節的異常,都可能表現為你看到的短暫殘影。

二、為什麼會出現 tab 1 的像素疊加在 tab 2 上

從大量用户案例與官方議題可以歸納出幾類高概率原因:

1)MPO 或圖形驅動的疊加平面問題 當 DWM 使用 MPO 進行多平面疊加時,如果顯卡驅動或合成器在平面複用、失效區域計算上有瑕疵,就可能把上一幀或上一窗口的內容短暫地保留在某個平面裏,肉眼就像是上一標籤的畫面“壓”在當前標籤上。社區與驅動論壇裏,MPO 導致的黑屏、閃爍、殘影在 Chromium 系應用裏有不少報告;很多人通過暫時禁用 MPO 規避了問題。微軟文檔解釋了 MPO 的機制,第三方技術帖給出如何通過註冊表切換 MPO 的方法(作為診斷手段)。(Microsoft Learn)

2)Window Occlusion / Tab 節流與後台 EcoQoS/Efficiency mode Windows 11 的 Efficiency mode 會給後台進程施加 EcoQoS,降低其調度優先級與頻率。Chrome 自身也會對後台標籤進行節流甚至丟棄。當你切回標籤時,如果渲染進程一時間搶不到足夠的 CPU/GPU 時隙,或者頁面需要恢復上下文,前台窗口可能先顯示了一幀舊畫面或空白,再過幾秒才更新。微軟的性能團隊文章解釋了 Efficiency mode/EcoQoS 對後台進程的影響;Chromium 的更新日誌與博客也介紹過標籤節流與遮擋計算帶來的變化。(Microsoft for Developers)

此外,Chrome 110 起自動丟棄後台標籤的策略在內存吃緊時更積極,切回來需要重建頁面狀態,這段時間內可能看到舊內容或白屏。(Ars Technica)

3)瀏覽器 Compositor 或 GPU 路徑上的個別缺陷 Chromium 的議題裏可以找到類似描述:切換標籤時合成器交換了一幀空白或舊幀、Canvas 內容在標籤切換後暫時丟失、窗口不總是重繪等。這類問題往往與特定版本、特定後端(D3D11/OpenGL/Vulkan)、特定硬件或系統主題有關,升級或切換後端可緩解。(Chromium Issues)

4)顯示器層面的臨時殘影 如果你在 Chrome 之外,比如切到純色桌面仍能看到淡淡的界面印記,可能是顯示面板的短時圖像殘留。廠商科普文章解釋了顯示器的 Ghosting 與 Image retention,這種現象一般是臨時性的,與瀏覽器無關,但會把診斷帶偏。可用同色全屏圖像做對照驗證。(HP)

5)擴展、實驗性 flag、硬件加速的視頻解碼組合問題 有用户在 Chrome 幫助社區與 SuperUser 上反饋,硬件加速與某些擴展、或視頻解碼疊加時會出現空白/殘影,關閉硬件加速或僅關閉硬件加速的視頻解碼能緩解。這説明並非純粹 CPU 卡頓,而是圖形路徑交互的副作用。(Super User)