Are we going to need much more than input and output signatures from D3DReflect()? If not, it seems a fair bit easier to just add some helpers which use either vkd3d_shader_scan() or D3DReflect() for that to d3d12_crosstest.h.
I would like to be able to test signatures, constant buffers, and resources. (That's most of ID3D12ShaderReflection; the other part is basically the STAT chunk, which we currently don't even output.) Signatures is vkd3d_shader_scan_signature_info; resources should be vkd3d_shader_scan_descriptor_info1 (plus I think a couple of extra patches I have). The hard part is constant buffers; I've basically tried to design the interface several times and always been put off by how complex it gets. Still, perhaps the best thing to do is figure it out now anyway...