I've tested GeForce Now

  • So, yesterday I’ve tested GeForce Now service and got some interesting results. Full disclosure: in Russia GeForce Now is served by 3rd-party company, but they use NVidia branding and, and NVidia promotes their service as GeForce Now. So while my results may not be indicative of worldwide situation, it should be pretty accurate.

    As a test game I used Doom 2016 and compared streamed version with a version running on my brand-new gaming PC. Good things first: I didn’t notice any visual difference between local and streamed version whether I was stationary or moving at high speed. Even things like fog had no visual artifacts of video compression. At the same time bandwidth consumption was around 20 Mbps, which is great for 1080p 60fps with individually compressed frames. Also launching games and using cloud saves is very easy.

    Not so good is the delay. Doom was perfectly playable via stream, but there was a noticeable difference between local version and streamed version. I haven’t measured it and I’m bad at estimating such things, but I doubt I would notice it if it was less than a couple of frames. It definitely not a network delay (I have 2ms RTT between my PC and data center where servers are hosted), so it must be a video compression delay. Another not so good thing is that my PC load level twice faster than the server (and I haven’t the fastest SSD you can buy). Again, it’s not a deal breaker, but I expected more from the cloud-based solution.

    Now the bad thing. There were dropped frames, sometimes almost a second of dropped frames. This was the most curious thing, so I’ve captured network traffic and started digging. Here’s what I found.

    Besides a series of TCP connections that last for 7 seconds and barely transfer any data, communication consists of 4 UDP streams. Two transfer data to the client (most likely, one for video and one for audio) and two transfer data in other direction (most likely, one is used for control inputs and another for something unimportant since it’s the only stream that don’t have quality-of-service marking):

    Now if you look at I/O graph you’ll see something interesting:

    Blue is (most likely) video stream, green is audio stream, black is controller input and red is something else. When I saw dropped frames in game, there’s some significant packet drop, but only for the video stream. Other streams aren’t impacted. It’s even more obvious if you look closer:

    And this is how it looks on the video-frame level:

    For reference, this is how it looks on the video-frame level when everything is OK:

    This doesn’t look like a network bottleneck, since other streams with same or lower quality-of-service level aren’t impacted. It potentially could be a result of load-balancing this particular stream on overloaded network link, but I know this network path from my work and I haven’t encountered any capacity problems. So I just have to assume that there’s some problem on the server’s side, possibly with the video encoding. I know it’s sounds strange since NVidia GPUs are great for video encoding, but delay I’ve talked earlier about is also indicative of some encoding issues. And it's possible that there's not enough video encoding servers (but enough servers to run games) in this data center.

    In summary, GeForce Now is a service that can actually do videogame streaming, but it has some issues that needs to be fixed. So you can consider it to play Cyberpunk 2077, but definitely try before you buy.