Based off !306, so leaving it as a draft until that's merged
We don't seem to print anything if a test is skipped due to not meeting its requirements, should we be?
-- v2: vkd3d-shader/spirv: Add optimization pass to reduce scope of fsi begin/end in ROV translation. vkd3d: Enable EXT_fragment_shader_interlock. vkd3d-shader/spirv: Compile ROV to fragment shader interlock. vkd3d-shader/hlsl: Parse ROV types. vkd3d-shader/hlsl: Support SV_PrimitiveID in pixel shaders. tests: Add ROV test. tests: Support specifying required spirv extensions. tests: Support testing for integer pixel data. tests: Replicate init data across resources. vkd3d-shader: Add EXT_fragment_shader_interlock extension. vkd3d-shader/spirv: Handle thread group UAV barriers. vkd3d-shader/spirv: Include Uniform in the memory semantics for UAV barriers. vkd3d-shader/spirv: Handle globally coherent UAVs. vkd3d-shader: Introduce a UAV_GLOBALLY_COHERENT descriptor info flag. vkd3d-shader/d3d-asm: Trace the RASTERISER_ORDERED_VIEW UAV flag. vkd3d-shader/tpf: Fix extraction of the UAV declaration flags.