World of Warcraft: Render API Performance Review

Battle for Azeroth Pre-Patch

As most already know, Blizzard released their Battle for Azeroth expansion Pre-Patch July 18th which caused all kinds of problems from server stability, class issues, and raiding issues from the stat squish. Along with a TON of changes in this Pre-Patch, we also received a new rendering API (DirectX 12) which went mostly undocumented and unnoticed. The addition of another rendering API shows that not only are they continuing with the development of WoW and it's content, but they are also making continued engine updates to improve capabilities and performance.

Seeing how the expansion is nearing, I wanted to take a little time and see if this new rendering API provided any benefits with the current content and world. I decided to use the current generation mainstream GPUs from NVIDIA and AMD and set forth to benchmark both DirectX 11 and DirectX 12 rendering APIs to determine which one provided the best experience.

 

Why does it matter?

World of Warcraft has historically been poorly optimized for multithreading, and because of this, performance has always suffered as the visual fidelity improved. This performance bottlenecking has only gotten worse as they continued to improve the graphics, resolution of textures, and effects.

DirectX 11 was first released February 15th, 2011 and has started to show it's age from its initial design and capabilities. DirectX 12 was released July 29th, 2015 and was designed toward the strengths of DirectX 11 while also allowing more of direct access to bare metal hardware. DirectX 12 was Microsofts next iteration of APIs allowing programmers more capabilities and render calls with lower overhead between the application, programming API, and hardware.

It's exciting to see Blizzard incorporate DirectX 12 into World of Warcraft and hopefully, this means future engine improvements will relieve some of the bottlenecking that has persisted for the last several years.

 

Hardware

 

Test Methodology

I've completed the same tests with each render API (Direct 11 and DirectX 12) at 2160p (4k), 1440p, and 1080p resolutions.

 

I wanted to perform a test that represents consistency, but also provided a variety of effects and world involvement. Keeping those aspects in mind, I chose to perform all tests in the city of Dalaran as it's known to tax the graphics and performance of any computer.

I ran through Dalaran's square on the road path, taking the same route each time and sampled the same amount of time. The sample run was repeated for 2160p (4k), 1440p, and 1080p resolutions.

NVIDIA Driver: 398.36
AMD Driver: 18.7.1

GTX 1060 Observed Clocks: 1949MHz Core, 2002MHz Memory
RX 580 Observed Clocks: 1380MHz Core, 2000MHz Memory

World of Warcraft Graphic Preset: 7
Average Players Seen: 18-23

Same tests as DirectX 11 repeated for 2160p (4k), 1440p, and 1080p resolutions.

NVIDIA Driver: 398.36
AMD Driver: 18.7.1

GTX 1060 Observed Clocks: 1949MHz Core, 2002MHz Memory
RX 580 Observed Clocks: 1380MHz Core, 2000MHz Memory

World of Warcraft Graphic Preset: 7
Average Players Seen: 18-23

 

Display Settings

Below you will find screenshots that represent the visual quality used for each test. All settings remained the same except rendering API and resolution.

 

 

Results

Enough of the formalities, it's time to go through the data and see what improvements (if any) exist!

 

 

 

 

 

 

 

 

 

 

Conclusion

As you can see, DirectX 12 performance seems to be lacking, and further development or a better implementation will be needed to make this option useful. It is important to note; we saw a 22% positive gain with DirectX 12 and the GTX 1060 @ 2160 (4k) resolutions.
Given these results, you might want to make sure DX11 is the defaulted rendering path until future updates potential improve the implementation of DX12. We noticed that DX12 was selected post patching.

Even though we saw negative performance with the introduction of DX12, I still commend Blizzard in taking the initiative to upgrade the old World of Warcraft rendering engine.

 

Action Shots