Nvidia has published a "do's and don'ts" guide for DirectX 12 developers amongst its GameWorks development information resources. The firm explains that these easy to digest bullet point guidelines will be useful to programmers as: "The DX12 API places more responsibilities on the programmer than any former DirectX API".
The introduction of DirectX 12 marks a very large leap from the previous version of the API. It brings advanced low-level programming APIs for Direct3D 12 which can reduce driver overhead and result in "console-level efficiency on phone, tablet and PC". So far we have seen glimpses of the power and capabilities this affords in performance increases using the same hardware but different DirectX versions. However it requires developers to get used to a new way of working.
Nvidia says that developers will find themselves responsible for resource state barriers and the use of fences to synchronize command queues. Meanwhile illegal API usage won't be caught or corrected by the DX-runtime or the driver so developers will have to be stringent with their code and should "strongly leverage the debug runtime and pay close attention to any errors that get reported." Finally a good familiarity with the DX 12 feature specifications is recommended.
Nvidia's do's and don'ts list includes plenty of recommendations regarding the parallel nature of DX12 and how to make the best of it. The list is largely vendor unspecific but the last set of tips does concern Maxwell GPU features. The full list of tips includes do's and don'ts in the following categories: