So, the pipeline failed because of the new test I added, which declared a `[buffer srv 0]` and later a `[texture 0]` and the shader_runner didn't override the former with the later, passing the two resources to the d3d12 backend, which crashed because of this.
Here is the output: ``` shader_runner:1636: Running tests from a Windows cross build shader_runner:1638: Compiling shaders with d3dcompiler_47.dll and executing with d3d9.dll shader_runner:95: Driver string: d3d10warp.dll. shader_runner:96: Device: Microsoft Basic Render Driver, 1414:008c. shader_runner:99: Using WARP device. shader_runner:1641: Compiling shaders with d3dcompiler_47.dll and executing with d3d11.dll shader_runner:166: Adapter: Microsoft Basic Render Driver, 1414:008c. shader_runner:170: Using WARP device. shader_runner:275: DoublePrecisionFloatShaderOps: 1. shader_runner:1644: Compiling shaders with d3dcompiler_47.dll and executing with d3d12.dll shader_runner:340: Adapter: Microsoft Basic Render Driver, 1414:008c. shader_runner:344: Using WARP device. shader_runner:655: DoublePrecisionFloatShaderOps: 1. shader_runner:339: srv-buffer.shader_test:71: Test failed: Failed to create root signature, hr 0x80070057. ``` Note that I had to use `setvbuf(stdout, NULL, _IONBF, 0);` and `setvbuf(stderr, NULL, _IONBF, 0);` to get it, because the trace was empty, so we should consider adding those lines to the cross test at some point.
I added the get_resource_type_category() function on patch 2/3 to allow UAV resources to override UAV buffer resources and vice-versa, and this function is updated in 3/3 to allow SRV resources to override SRV buffer resources.