Ashes of the Singularity: Escalation - DX12 & Vulkan Short Analysis

Introduction:

Back when it released in 2016, Ashes of the Singularity was the first game to launch supporting DirectX 12, the new Microsoft-made low-level API, and its Nitrous engine was developed to take advantage of the API's advanced features. Being a low-level API means it can reduce driver overhead by more directly accessing a machine's hardware resources. Now, thanks to the v2.4 update to Ashes of the Singularity: Escalation, the standalone expansion that has become the default game, the title supports a second low-level API, Vulkan, which is maintained by the Khronos Group, the same group behind OpenGL. Unlike DirectX 12, Vulkan is available on more than just Windows 10 machines, and it is open source. For some time there had been community interest in seeing AotS and Escalation support Vulkan, and the developers admitted to their own interest in it as well, although the work would take some time to complete. We, at last, have both APIs supported in this game, so it seems a good time to take at least a quick look at it.

Escalation features a built-in benchmark, which offers two valuable conveniences for this testing. One is that the tests themselves can be easily reproduced, unlike dynamic gameplay, which is especially helpful as we are looking at the two APIs here, and not specifically the game's own performance. The second is that while I do enjoy capturing frame time data with OCAT, the benchmark actually records and saves frame time data along with its processed results. It also seems to capture slightly different data than OCAT does, including an approximate time spent within the driver, which is kind of neat to look at for these low-level APIs. Actually, if you look at the results of one of these benchmarks, I believe this is what is identified as "Driver Overhead" in the benchmark graph, so I think I have recreated these graphs, but with the raw data that is in milliseconds instead of frames per second. I will still be looking to the processed benchmark results, however.

One last thing I wish to mention is that I recently purchased an RX Vega 64 reference GPU, and, naturally, I decided to drop it in and see what it gives me. Except for changing the GPU voltage (stock is 1.2 V and I have successfully lowered it to 0.95 V), it is completely stock. I also opened up the fan profile some, but I have always run the GTX 1080 with a custom fan profile, too, so it kind of balances out.

Since they will be mostly common across the tests, here are my computer's specs: