DirectX 12 feature

DirectX 12 – Async Compute Supported In Latest NVIDIA Drivers, Steam Overlay Works In DX12 Mode

DirectX 12 is a really hot topic as we’ve got a number of games supporting it. And Oxide developer Kollock has revealed some interesting new information about this new API. According to Kollock, the latest WHQL drivers from NVIDIA support Async Compute; a feature that NVIDIA’s GPUs did not initially support.

As Kollock claimed:

“I can confirm that the latest shipping DX12 drivers from NV do support async compute. You’d have to ask NV how specifically it is implemented.”

Async Compute is a feature that was previously support only by AMD’s GPUs, so it will be interesting to see what NVIDIA has done via its drivers, and whether the results are as good as those of AMD’s.

For what is worth, Async Compute is still disabled in Ashes of the Singularity for NVIDIA’s GPUs.

“Async compute is currently forcibly disabled on public builds of Ashes for NV hardware. Whatever performance changes you are seeing driver to driver doesn’t have anything to do with async compute.”

Another interesting thing is that Steam’s overlay is working in DX12 by hooking the present call. DX12 and UWP were criticized for not supporting overlay programs. However, as both Kollock and NTAuthority stated, Steam’s overlay can work in DX12.

As Kollock said:

“I’d also point out more basically that the Steam overlay works by hooking the present call, in DX12.”

And here is Steam’s overlay working, courtesy of NTAuthority.

Kollock also talked about the rumoured list of issues that come with DX12 and Windows 10 Store games. According to Oxide’s developer, the only issue right now is with the refresh rate and that’s when vsync is disabled.

In case you are not aware of, the rumoured list of the DX12 and Windows 10 Store issues is this one.

  • 60 FPS cap
  • 60Hz forced
  • Gsync and FreeSync not supported
  • Windowed mode is forced (store only)
  • .EXE encrypted (store only)
  • No true access to game files (store only)
  • Little to no 21:9 or multi monitor support (store only)
  • 3rd Party FPS readers and FPS limiters won’t work (For most of the titles)
  • No .ini modding (store only)
  • No reshade support
  • No SweetFX support
  • Limited key binding (store only)
  • Limited driver intervention due to App encryption (store only)
  • Slower roll out of patches (as they must pass WHQL per patch – store only)
  • Poorer support for mGPU configurations
  • At the mercy of Developers to implement desired features.

Regarding this list, Kollock had this to say:

“Uhm, no. Almost none of these are true. I have no idea what Windows Store apps require, but Steam is 90% of the Game market, and the rest is GMG, GoG, and Origin.

The main difference between D3D12 and D3D11 is that when you create a swap effect you have to use FLIP rather then DISCARD. That has implications on refresh, but you can also do the refresh of the monitor. Practically speaking, this only matters if vsync is disabled, which is generally done only for performance testing.”

Kollock also added:

“As I’ve said before, the only difference between a D3D11 and a D3D12 title at present is that when creating a swap chain in D3D12 you must use the swap effect DXGI_SWAP_EFFECT_FLIP_DISCARD, in D3D11 you can use DXGI_SWAP_EFFECT_DISCARD.

This has implications when vysnc is disabled, but shouldn’t when vsync is enabled which is not only what we default to, but what we recommend for players. More or less, this becomes a very subjective argument over whether tearing or dropping frames is better when you don’t want to run at a refresh of your monitor. However, most people in the industry would concur that you really want to running with your monitors refresh rate.”

And as for Freesync/G-Sync, Kollock said that they should work, unless Freesync/G-Sync support has been hacked in some in games in order to work.

“The limitation is with vsync off, FreeSync and Gsync work by changing the refresh, so I don’t think this change would impact it at all except they may have hackeddadadadad.

It should [work], I don’t think this change would impact freesync and gsync except perhaps to break things temporarily if they are hacking them to work. I don’t know enough of how they’ve made freesync/gsync to work at a system level.”

What is made crystal clear here is that not only Microsoft needs to work with the current DX12 issues, but also AMD and NVIDIA. Both the red and the green teams need to do some driver changes in order to support features that were previously working fine in DX11 (but for some strange reason are broken in DX12, especially if there were hacks involved into making these features work in the first place).