• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    游戲引擎

    了解和測量 PC 延遲

    系統延遲是一個重要的游戲性能指標。在許多情況下,它對整體游戲體驗的影響比每秒幀數( FPS )更大。雖然 FPS 相對容易測量,但系統延遲傳統上很難測量

    端到端( E2E )系統延遲是管道中各種延遲的總和,如圖 1 所示。為了緩解 E2E 測量困難, PC 延遲( PCL )統計數據使游戲玩家、評論家和開發人員能夠測量 PCL ,這是系統延遲的主要組成部分

    外圍設備延遲+ PCL +顯示延遲可讓您全面了解 E2E 系統延遲。使用 PCL Stats ,您可以在沒有任何外部設備或干預的情況下自主測量每幀 PCL 。

    Diagram showing peripheral latency, PC Latency, and display latency, which together make up end-to-end system latency.
    圖 1 。端到端系統延遲的組成部分

    要測量系統延遲管道的這一關鍵部分,請集成 PC latency Stats (通過NVIDIA Reflex SDK或虛幻引擎插件)。一旦集成, PCL 可以通過FrameViewGeForce Experience in-game overlay.

    圖 2 顯示了集成 PCL Stats 時 FrameView 將記錄的所有交互。這些信息是理解和測量延遲的關鍵。

    Diagram showing several markers and events from a game and graphics API/OS being tracked using FrameView.
    圖 2 :當 PCL Stats 集成在游戲中時,通過 FrameView 進行的每幀交互示例

    PC Latency Stats 如何發出事件日志

    你的游戲負責以 100 到 300 毫秒的隨機間隔向自己發布獨特的“ ping ”消息。它還發出相應的PCLStatsInputWindows ( ETW )事件的事件跟蹤

    ETW 是一種 Windows 操作系統機制,使您能夠跟蹤和記錄事件。在過濾掉唯一消息的游戲引擎上, PCL Stats 可以發布虛擬鍵盤輸入消息,如 F13 。

    當游戲對該消息進行采樣時,它會用PC_LATENCY_PING標記 ETW 事件。游戲還使用SIMULATION_START標記 ETW 事件,以及每個事件的開始/結束Present()與的通話PRESENT_START/END標記 ETW 事件

    在不允許Present()要括起來的調用RENDER_START/END標記 ETW 事件用于記錄幀 ID ,將渲染提交括起來。有關標記事件的列表,請參見表 1 。

    ETW 事件名稱 參數(標記) 參數
    PCLStats 輸入 ? ?
    PCL 統計事件 個人防護用品 框架 ID
    ? 模擬啟動 框架 ID
    ? 模擬結束 框架 ID
    ? 渲染子任務啟動 框架 ID
    ? 渲染子任務啟動 框架 ID
    ? 當前_啟動 框架 ID
    ? 呈現_結束 框架 ID
    表 1 。 PCL Stats ETW 事件列表

    FrameView 和 PC Latency

    FrameView是一個利用開源項目的應用程序PresentMon用于測量 GPU 上的幀速率、幀時間、功率和每瓦性能。使用 PCL Stats ETW 事件中的幀 ID , FrameView 可以通過游戲管道的不同階段跟蹤每一幀。

    PC 延遲是平均輸入到幀開始( I2FS )延遲、幀開始到呈現( FS2P )延遲和呈現到顯示( P2D )延遲的總和。這些術語的定義如下。

    I2FS 延遲

    I2FS 延遲是指PCLStatsInputETW 事件和SIMULATION_START標記的下一幀的標記PC_LATENCY_PING標記

    I2FS 延遲值通常在輸入采樣間隔上均勻分布。游戲是周期性地對輸入進行采樣,每個輸入的 I2FS 延遲取決于輸入在兩個采樣之間的確切時間。因此,在將 I2FS 延遲包括在 PCL 中之前,有必要計算平均 I2FS 延遲

    請注意,由于使用了啟發式方法,當游戲低于 10 FPS 時, I2FS 延遲測量將不正確。在大多數情況下, I2FS 延遲非常接近“采樣延遲”。采樣延遲是指從鼠標點擊到游戲采樣之間的等待時間。

    Diagram showing what part of the CPU contributes to I2FS latency: Sampling.
    圖 3 。 輸入到幀啟動( I2FS )延遲

    FS2P 延遲

    FS2P 延遲是指SIMULATION_START標記和Present()呼叫這是 CPU 在幀上花費的總時間

    即使沒有輸入,也可以在每個幀上測量 FS2P 。在大多數情況下, Present ()調用是在渲染提交結束時進行的, FS2P 延遲非常接近“游戲延遲”。游戲延遲是指 CPU 處理對世界的輸入或更改并向 GPU 提交新幀以進行渲染所需的時間。

    Diagram showing what part of the CPU contributes to FS2P latency: Sim, Render Submission, and Driver.
    圖 4 。幀開始到呈現( FS2P )延遲

    P2D 延遲

    P2D 延遲是指Present()調用和幀緩沖區翻轉。 PresentMon 已將此值度量為msUntilDisplayed請注意, P2D 延遲不包括顯示器掃描延遲。顯示器掃描延遲是顯示器延遲的一個組成部分。

    Diagram showing the render queue and GPU comprises P2D latency.
    圖 5 。呈現到顯示( P2D )延遲

    將平均 I2FS 延遲、 FS2P 延遲和 P2D 延遲相加,得到 PCL 。請注意,此 PCL 計算不包括 USB SW 延遲。假設 USB SW 延遲是一致的,相對較小,因此可以用較小的偏移來表示。

    This diagram summarizes PCL across simulation, rendering, and the GPU.
    圖 6 。 PCL 管道視圖

    PCL Stats 如何處理幀丟棄

    在窗口模式下,一些幀可以被丟棄而不顯示在顯示器上。這會以以下兩種方式影響 PCL :

    1. 丟棄的幀將不會顯示延遲。
    2. 這個PC_LATENCY_PING標記可以標記到丟棄的幀。

    丟棄的幀不會顯示給用戶,并且在系統延遲測量中應該被忽略。此外,如果標記的幀被丟棄,則必須擴展正確的輸入到幀的開始延遲,以包含SIMULATION_START標記幀的標記( SSM )和未丟棄的下一幀的 SSM 。

    例如,當在具有 60Hz 顯示器的窗口模式下運行 200 FPS 的游戲時,每顯示一幀,就會丟棄兩到三幀。假設在丟棄的幀 X 上,幀開始延遲的輸入最初被測量為 2 . 5ms 。幀 X 的 SSM 和幀 X + 1 的 SSM 之間的時間是 5ms 。幀 X + 1 也被丟棄。并且幀 X + 1 的 SSM 和幀 X + 2 的 SSM 之間的時間是 4 . 5ms 。向用戶顯示幀 X + 2 。在這個例子中,幀開始延遲的正確輸入是丟棄的幀的總和: 2 . 5 + 5 + 4 . 5 = 12ms 。

    Diagram summarizing PCL across simulation, rendering, and the GPU when there are frame drops.
    圖 7 。 PCL 處于窗口模式

    總結

    減少系統延遲對于獲得最流暢的游戲體驗至關重要。隨著 PC 延遲的幾個組件的神秘化,您可以利用 PCL Stats 來準確跟蹤、測量和改善渲染管道中的延遲

    通過下載最新版本的 PCL StatsNVIDIA Reflex SDKget more information,包括集成提示。 PCL Stats 也是虛幻引擎中的主要功能。您也可以在NVIDIA forums.

    ?

    0

    標簽

    人人超碰97caoporen国产