STEAM GROUP
Steam Remote Play homestream
STEAM GROUP
Steam Remote Play homestream
2,220
IN-GAME
31,861
ONLINE
Founded
November 7, 2013
Vinlaen Oct 22, 2021 @ 2:42pm
What is Display Latency? (re: much higher latency versus Parsec)
What is the Display Latency statistic displayed during Remote Play (ie. in-home streaming) ?

I've tested several games and this are my typical values:

Steaming Latency: <1ms input, Display latency: 20-30ms
Ping time: <1ms (direct)

It's using hardware encoding/decoding and I'm on a fast wireless network (802.11ax, 5 GHz, 10 feet from AP, etc), but it feels considerably worse than using Parsec.

If I understand correctly, Parsec uses DXGI (DirectX Display Duplication) plus NVEnc but Steam uses different methods (based on the game).

Regardless, Parsec reports about 3ms decode, 3ms encode, and 3ms network but even if you combine those numbers it's much, much lower than the "Display Latency" of 20-30ms.
< >
Showing 1-5 of 5 comments
_I_ Oct 22, 2021 @ 5:12pm 
display latency = draw + encode + transmit + decode + display
total time

normally its 1-2 frames behind the host
60hz = 16ms for each frame

you need to add the 16ms, from drawing/rendering the frame
and the sync time of the client, ~0-16ms
Vinlaen Oct 22, 2021 @ 5:39pm 
Thanks for the reply. Can you explain draw and display?

Encode (ie. NvEnc), Transmit (network latency), and Decode (MacOS Video Toolbox) I understand and Parsec is showing about 3ms for each of them so 9ms total. That leaves about 11-20ms for draw and display.

I know that Display cannot be the latency of the LCD (laptop) display as that requires external tools to measure, right?

EDIT: Also, it's showing "Game-polled D3D11 NV12 + NVENC" even though I've enabled NvFBC. Does NvFBC work any longer?
Last edited by Vinlaen; Oct 22, 2021 @ 5:55pm
_I_ Oct 22, 2021 @ 6:57pm 
draw is the time it takes for the gpu to create the frame (1000ms / fps)

nvfbc is the method of pulling the frame from the gpus frame buffer
dx/d3d is the api used to create the frame

the frame then needs to be encoded to be transmitted to the client and decoded
that part is the encode/transmit/decode

once decoded it needs to be sent to the client display, where it would need to sync to the displays refresh rate/time
receive, decode, buffer -> wait til next frame to be sent
ex. display frame -> 2ms -> receive next frame info -> 3ms to decode -> buffer -> wait 11ms (16-2-3ms) -> display frame
(16ms = 1000ms/60hz)

display latency is the total time, from when the gpu gets the info and signal to create the frame, to when its displayed on the clients display, 20-30ms is perfectly normal on a good connection
Last edited by _I_; Oct 22, 2021 @ 7:00pm
Vinlaen Oct 23, 2021 @ 5:51pm 
Thanks for the information and explanation.

Should it be using NvFBC instead of Game-polled D3D11 NV12?

I have it enabled in the settings and I even downloaded the Nvidia Capture SDK and the NvFBCEnable.exe utility. It says NvFBC is enabled but Steam doesn't appear to use it?
_I_ Oct 23, 2021 @ 9:00pm 
steam has its own nvbfc tool it uses
on most gtx/rtx gpus its faster than other methods of capturing

the sdk is for creating your own capture tool
< >
Showing 1-5 of 5 comments
Per page: 1530 50

Date Posted: Oct 22, 2021 @ 2:42pm
Posts: 5