Updated: Nov 28, 2019
I have just come back from taking my cat to the vets, and he really doesn't like going to the vets. In fact, he absolutely hates it. It also stresses me out to see him so distressed, so please forgive me if I am a little bit distracted or it is not as long as my usual sciency posts. But I was pretty excited to get this done since it is my first side-by-side comparison video. :D
I wanted to see, for myself, the performance difference between the Radeon RX 5700 and RX 590, because both of these video cards have 36 Compute Units (In the case of the former, they are arranged into pairs called 'Workgroup Processors') and each contains 64 stream processors. Of course, the Navi-based GPU has a significantly changed SIMD structure, which significantly improves utilisation of the stream processors in gaming and 3D graphics workloads.
The result, is you get more performance with the same amount of shaders and theoretical peak shader arithmetic power (FLOPS!). There are a few major differences between these two graphics processors, despite having the same number of shader processors, however. And I want to make those clear now.
Big differences between Navi 10 (PRO?) and Polaris 30.
Navi has twice the pixel throughput in its backend. That's 64 ROP / pixels per clock, versus 32 on the Polaris chip. It also has nearly twice the raw memory bandwidth; 448 GB/s peak for the Navi chip, and 256 GB/s peak for Polaris. Since the ROP / Render backends are very bandwidth heavy, that means Navi has significantly more backend/pixel painting throughput. However, this advantage will usually show itself at higher resolutions or with AA techniques such as MSAA. As I am testing at 1440x900 (yes the game is really demanding enough) I don't believe Navi's huge backend advantage will matter too much for the sake of this acadmic test.
Navi also has twice the L2 cache size (4MiB vs 2MiB) and a new L1 graphics cache design, and significantly better compression on all parts of the pipeline; this will no doubt help the cores a bit but that's part and parcel of the architectural improvements.
With that out of the way, Navi 10 is similar to Polaris 30 in some key areas too;
Both GPUS put out 4 triangles per clock in raw rasterised primitives. Both GPUs have 2304 stream processors (in 36 CU, or 36 CU in 18 WGP in Navi's case) and 144 texture mapping units. Running at the same clock speed in my test, 1500 MHz, both GPUs have more or less identical triangle output, shading and texturing throughput, on paper. Navi actually uses Primitive shaders to cull triangles much faster than Polaris's Primitive Discard Accelerator, but that is part of arch improvements and is factored into the results obviously.
What I wanted to get from this test, is to see how much more performance "Navi 10" / RDNA 1st Generation provides with the same raw shading performance as "Polaris 30" GCN 4th Generation. For me it is in an interesting test, if you don't agree then you don't have to read this or watch the video :D.
Some notes on the scene tested.
The game settings are as follows:
Adv. Phsyx OFF (this is not a CPU test)
Motion Blur Low
The game is running at 1440x900 because A) it is the highest native resolution that both of my PCs with each card can display, and B) because this scene is so bloody demanding that the 590 would probably just die if I tested at 1080p - it would be difficult to control the direction of the character for example. Even the 5700 has sub 30 FPS moments.
That brings me to the other points. I tested resolution changes a lot, and they don't make a huge impact in many of these scenes - the FPS increases as resolution goes down but not by the amount you'd think if it was ROP or heavily Shader limited. That is because I think the scene is triangle limited. That is to say, the meshes are so complex, and 'Extreme' quality actually loads higher detail meshes and geometry further from the player, that the GPU is heavily limited by the rate at which it can spit out triangles, so in a way this is a good test of Navi's geometry improvements over Polaris at the same clocks, with a peak at shader performance gains too. I've wanted to see Navi's geometry gains in games for a while, ever since I tested Navi 10 in Tessmark, which had some odd results. I think it's clear from this video that Navi has huge gains in geometry heavy scenes with tessellation and complex meshes in actual games...
... you'll notice what I mean about those geometry gains in the scene where the player first sees the Tessellated, Hairworks bear of doom, that kills you not with its claws, but with the FPS reduction from viewing it.
So, here you go. My first ever side-by-side video comparison. There are some important notes in the beginning of the video so please read those first! Thanks! <3
Update: Please note that Metro Exodus doesn't seem to display 'D3DUsage' correctly, this is what I list on the OSD. This is due to the game engine and happens on all of my systems, with all of my cards, including the RTX 2060 SUPER I had. It is not CPU bound, I absolutely assure you the only part of this that is a bit CPU bound is when Artyom is looking at the sky when Olga is trying to revive him. I tested this a lot because it was wierd for me too.
Royalty Free Music used in my video is from from: https://www.bensound.com/