* This is possible on D3D11 but only with certain cap bits, it's simpler to test
on D3D12 and the DXBC debugger will go through the same path for both.
* We force FetchUAV/FetchSRV to always return something, and it can be empty if
the resource is unbound meaning we get proper OOB behaviour for it. The D3D12
implementation still prints an error message for registers that don't
correspond to the root signature at all, but for D3D11 we silently allow it.
* It's not particularly scalable and can be brittle to driver changes, and we
can use targeted specific pixel tests to check what we really want - to see if
the output has rendered correctly.
* Overlay tests still check files directly - this is a future refactor to
remove.
This mimics the D3D11 shader debugging test, but performs the draws
twice - once with SM 5.0 and once with SM 5.1. The python test performs
the same checks as the D3D11 version, but is explicitly disabled since
D3D12 shader debugging is not yet enabled by default.