Benchmarks: Dota 2 + Streaming feat. i7 vs Ryzen
Back when Ryzen launched, I wanted to make some “quick” benchmarks, mostly to check out how good the Ryzen 1700 is vs my 5820k when streaming Dota tournaments.
Turns out “quick” didn’t quite cut it so here’s what you can expect, very slightly beyond the schedule:
- Comparison of the different render options (DX9 vs DX9ex vs DX11 vs Vulkan vs OpenGL)
- Dota2’s core scaling with Hyper Threading on and off
- Dota2 performance with different streaming settings (Ryzen 1700 vs Ryzen 1600 vs 5820k vs 4790k)
If you would like to read more about my benchmarking methodology, please read my post here. All the following numbers are on 1080p.
TOO LONG DIDN’T READ
- Try -dx11 as launch option
- 2Core/4Thread CPU is a must, Dota scales up to six cores, with 4 being the sweet spot
- If you want to stream, buy a CPU with a lot of cores.
Render path comparison
In case you didn’t know, Dota 2 supports a plethora of different render paths:
- DirectX9 (-nod3d9ex): Vanilla DirectX 9 renderer, some effects don’t work.
- DX9ex (default): Same as DX9 but with extensions. Everything works.
- DX11 (-dx11): Newer DirectX 11 path, good performance.
- Vulkan (-vulkan): Next-gen low-level cross-platform API.
- OpenGL (-gl): Linux’ and Mac’s default render path.
If you want to use a different render path, go to Steam -> Dota2, rightclick, Properties -> Set Launch Options and add the correct launch command from the brackets above. Note that you have to install free Vulkan and OpenGL DLCs if you want to use those.
I don’t have an AMD card at the moment, so I can only test with my GTX 1080, but for both, the Ryzen and the Intel rig, DirectX 11 is the clear winner. While Vulkan offers similar FPS, the minimum FPS tend to be slightly worse and the shader cache being built sometimes can induce lag.
I strongly recommend trying out DirectX 11 if you’re on Windows. I’ve been using this since over a year now and have had no issues at all as well as excellent performance.
OpenGL being this far behind all other options is quite unfortunate. Especially due to its obvious choice for “Apples to Apples” comparisons when it comes to Linux vs Windows benchmarks. But given its current performance in Windows, I can not recommend using it in any way, shape or form.
Enough of render paths, let’s check out the next batch of numbers.
Core Scaling and HT
In Source 1 times, Dota 2 didn’t scale particularly well. This changed with Source 2 but I never really got the time to take an in-depth look how well the game now scales with cores. So I took my trusty 5820k and disabled a bunch of cores (and Hyper Threading) and this is what I got:
Clearly, 4 cores are the sweet spot but there are slight gains with more cores. Hyper Threading (or SMT) helps a lot, especially when having only two cores. Out of curiosity, I also tested the scaling on my Ryzen machine, but it looks close to identical and core 7 and 8 of the 1700 don’t provide significant FPS gains.
Note that there could be a chance that the Nvidia driver is responsible for some of the fps gains on 5–6 cores, but without an AMD card I can’t verify this right now.
Streaming benchmarks — i7 5820k vs Ryzen 1700 and i7 4790k vs Ryzen 1600
I have a 4.2ghz 5820k and a 3.9ghz Ryzen 1700 here, both running with the CMK32GX4M2B3000C15 kit and with a GTX 1080, Windows 10 and latest drivers all around. The X99 platform is a MSI X99S SLI, the X370 board of the Ryzen is a Crosshair 6 Hero with the 1401 Bios.
I have then tested simply Dota 2, Dota 2 with OBS Studio open and several streaming scenarios: Encoding the stream via x264 with the presets veryfast, faster, fast, medium and slow.
The Intel CPUs have a very clear lead in Dota 2. Given the fact that the 5820k was also running 300mhz (~8%) higher clock-speed you’d expect a slight lead, but the i7 still pulls away slightly more than that. It’s clear that Valve’s optimisations for Ryzen aren’t quite finished yet, inter-CCX latency looks to still be an issue.
Interesting is how much FPS the 5820k loses by simply turning on the stream (x264 veryfast data point in the graph). The Ryzen loses less FPS from that and can even pull ahead in minimums when using the “faster” preset.
This effect gets amplified for the fast- and medium presets and thanks to it’s two additional cores, the 1700 can still encode with the “medium” setting without issues, while the 5820k can only produce a slideshow at these settings.
Given the price tag of the 5820k (~400€)(or 6800k for that matter), the Ryzen 1700 (~320€) delivers a very impressive performance when streaming. While Dota is one of the most single-core IPC heavy games on the market, other games will be vastly different and should give the Ryzen a much better time.
I was curious about the performance of the quad-core i7’s though so I simulated a 4790k and a Ryzen 1600 to see how the battle in that price segment would look like. Now given, the i7 quad cores are usually 30–40% more expensive (220€ of the Ryzen vs 330€ for an i7 6700) but then again the 6700k and 7700k have higher IPC and clocks compared to my simulated Haswell.
Conclusion
DirectX 11 is great, as expected, but Vulkan has caught up a lot and if Valve pushes it further it could help a lot with the CPU overhead Dota 2 has.
You really want to have at least a 2core/4thread CPU for Dota, but it scales all the way to six cores
If you stream, you want all the cores you can get. Until the six core Coffee Lake CPUs come later this year (according to rumours), Ryzen is by far the best price/performance option on the market. You could argue for hardware encoding, but that still is significantly worse in quality comapred to x264 veryfast for the most part.
A B350 board (~90€) and a Ryzen 1600 (~220€) is much cheaper than a Z270 board (~120€) and an i7 (~300€). While the i7 6700k or 7700k would yield significantly higher FPS for Dota2, this changes the second you turn a software-encoded stream on. This instantly catapults the 1600 to the best value position on the market. The data here is all with 3.9ghz clock speed, but that’s very achievable given the solid boxed cooler of the Ryzen.
This took way too long, time to get back to work. Hope you guys enjoy the read and for questions, shoot me a tweet.
We’ll have more posts in a few weeks with a few of our layerth concepts we would love your feedback on, so keep an eye out for that!
Until then,
JJ