By Benjy Boxer
A lot of people are using Parsec to play offline games with their friends online. We’re constantly introducing new features to make this experience better, like our matchmaking system (Party Finder) and Approved Apps. At this moment, thousands of people actively use Parsec daily to play games via the Parsec game streaming software. Some people are playing on cloud machines, some are connecting to their own PC at home, and others are inviting friends to join them in a local co-op game, like Swords of Ditto, Cuphead, or a classic like Smash Bros, online.
Each time you start game streaming with Parsec, we record the average round trip time for packets to reach the guest computer (or ping), the encoding latency of the H.264 stream, and which GPU you’re using to host the session. We use this data to tweak the algorithms that determine the streaming quality and networking behind Parsec. Data from more than a quarter million recent Co-Play sessions shows a clear performance advantage for encoding between Nvidia NVENC, Intel Quick Sync, and AMD VCE. From this data, we also know that most of the people playing games together are actually pretty close (as measured in ping).
Nvidia NVENC Outperforms Intel Quick Sync And AMD VCE On H.264 Encoding Latency
For this post, we’re going to share a little bit of data about the game streaming sessions where one or more people is connecting to another friend who is hosting a game for them to play. On Parsec, we call this Co-Playing, and it’s how people are playing offline games, like Towerfall, online.
We found that hardware plays a huge role in the performance of these connections. The most important part of that being the encoding latency of the video. Encoding latency is the amount of time it takes for the hardware on a GPU to compress a frame of video captured off of the GPU to prepare it to be shipped across the internet to the guest PC. Nvidia’s NVENC is approximately 2.59 times faster than AMD VCE and 1.89 times faster than Intel Quick Sync. The median encoding latency for an Nvidia card is 5.8 milliseconds; whereas, the median encoding latency on VCE is 15.06 milliseconds. This encoding latency is measured across all Co-Play sessions in Parsec, so there’s definitely a performance difference between newer generation cards than older generation cards, which we will examine in a future post.
This trend also holds up on more recent GPUs too. In fact, Nvidia seems to have improved the performance of NVENC; whereas, VCE continues to require about 15 milliseconds to encode a video frame at 60 FPS.
The Majority Of Co-Play Sessions Have Less Than 3 Frames Of Lag Between Guest And Host
Once you take into account the encoding latency, the most important factor in measuring lag is the ping between the two computers. As it turns out, on a majority of Co-Play sessions in Parsec, the ping is the most important factor in latency. The median ping between the host and the guest matters a lot with regards to overall lag. The median ping in a Parsec Co-Play session is 32.68 milliseconds. This is slightly higher than 2 frames at 60 frames per second (at 60 FPS, each frame is delivered in 16.67ms). There’s not much we can do about the networking distance between two computers. Better routing and traffic prioritization could probably lower this, but you need control over the networks connecting two computers to change that. One thing that a Parsec user could do to reduce ping is use an ethernet connection or 5 Ghz Wifi connection rather than 2.4 Ghz Wifi.
From our data, it looks like NVENC and Quick Sync are outperforming AMD VCE on encoding H.264 streams. We’re about to introduce H.265 as an option in Parsec. Initial testing on our setup in-house suggests that NVENC will once again outperform VCE, but we’ll know more after it is released!