I renamed `is_todo_6` to `is_todo_pipeline` to reflect that it has a different meaning than `is_todo`.
I added a new patch to remove the application of `is_todo` to result probes. The reasoning in explained in the commit.
dxcompiler sometimes emits a binary on failure. In some cases it reflects the erroneous HLSL, e.g. when `numthreads[(0, 1, 1)]` is used, but in others the binary does something else, e.g. when uniforms are used in the `main()` parameter list it loads them as signature inputs. The `IDxcResult` parent `IDxcOperationResult` interface contains a `GetStatus()` function which returns correct failure information.
Many shaders use uniform parameters, so these now have `fail(sm>=6)` tags. A later patch should probably move all of these uniforms out of the parameter list, and add a single test file to test uniform parameters in SM < 6. We don't need this yet as uniforms require loading of resource info and implementation of cbuffer loads.
This MR now depends on MR 345, mainly to make it unnecessary to have todos on result probes where DX intrinsics are unimplemented (i.e. where `emit_unhandled()` is called).
A test in `entry-point-semantics.shader_test` fails because it depends on the DXIL shader signature. We could skip it or wait for the next MR which will load signatures.