한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

遊戲 Lag 白皮書 › L2 用戶端 OS 與裝置

overlay 程式干擾 Overlays and screen hooks

原因 ID co-overlay · 主要負責 外部(外部) · 協同 遊戲開發團隊(用戶端開發)

在含圖解與實驗的完整版中開啟卡片 →

通訊軟體、啟動器、錄影、FPS 顯示程式為了在遊戲畫面上疊加自己的 UI,會介入遊戲的渲染流程(hook)。每個畫格的工作量因此增加,偶爾還會與遊戲衝突,造成頓一下或遊戲被強制關閉。

為什麼 通訊軟體、遊戲啟動器、顯示卡工具、錄影程式的 overlay 開著 → 於是 每次把畫格輸出到畫面時,overlay 都會介入疊加自己的 UI → 畫面上 畫格一點一點變慢,通知跳出的瞬間頓一下,或出現畫面錯誤、強制關閉(玩家看起來像斷線)

症狀
卡頓, 定格, 斷線
因素
停滯
誰會遇到
只有我
何時
一直都有, 偶爾隨機發生
負責單位
主要負責 外部(外部) · 協同 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
在閃退報告與卡頓 log 中一併收集執行中的 overlay 清單。
外部要做的事
收到回報時,引導玩家關閉所有 overlay 再測一次。
圖表上
只有部分偏高 · 畫格時間、閃退次數(開啟 overlay 的玩家)
查看位置
關閉所有 overlay,比較同一場景的 PresentMon 畫格時間;有閃退時,查看事件檢視器中事件識別碼 1000 的錯誤模組名稱(Faulting module name)
符合的跡象
關閉 overlay 後頓一下、畫面錯誤消失,或閃退的錯誤模組是 overlay 程式的 DLL
不符合的跡象
關閉所有 overlay 後仍一樣時,是顯示卡驅動程式或「用戶端閃退」
確認方式
在玩家端環境確認
深入了解
只有特定的人卡頓或遊戲被關掉,又無法用配備解釋時,先懷疑 overlay 與遊戲安全模組的衝突。

出處

  1. Steam Overlay (Steamworks Documentation) Valve
    Steam overlay 會自動 hook 到透過 Steam 啟動的遊戲中,這種方式有時會讓遊戲在渲染 API 使用上的記憶體錯誤浮上檯面而閃退
  2. PresentMon Capture Application (README-CaptureApplication.md) Intel
    以 FrameTime(畫格之間的 CPU 時間)錄下每個畫格的時間
  3. The application or service crashing behavior troubleshooting guidance Microsoft
    「應用程式」log 中的事件識別碼 1000 含有錯誤模組名稱(Faulting module name),有時其他模組的損壞會讓 Windows 模組被記為錯誤模組

相關原因

同一層:L2 用戶端 OS 與裝置

同一症狀(卡頓)在其他層的原因

查看含圖解與實驗的完整版卡片