These patches add support for SM 5.1 register spaces.
The binary format of DXBC changes depending on whether SM 5.1 is used, compared to SM 5.0 or earlier as 5.0 has a flat binding space, whereas 5.1 does not, which makes implementation a bit awkward.
Two tests are added which demonstrate the functionality for all descriptor types as well as root constants and root descriptors.
Descriptor indexing is also part of SM 5.1, but is not covered here, as that will need a larger rewrite of the binding model in vkd3d to work.
(These patches were the start of the DXIL patchset submitted earlier.)
Hans-Kristian Arntzen (3): vkd3d: Deal correctly with SM 5.1 register spaces. vkd3d: Add test case for SM 5.1 register spaces. vkd3d: Add test case for root constants in SM 5.1.
include/vkd3d_shader.h | 16 + libs/vkd3d-shader/dxbc.c | 29 ++ libs/vkd3d-shader/spirv.c | 194 +++++++- libs/vkd3d-shader/vkd3d_shader_private.h | 5 + libs/vkd3d/command.c | 32 +- libs/vkd3d/state.c | 65 ++- libs/vkd3d/vkd3d_private.h | 1 + tests/d3d12.c | 579 +++++++++++++++++++++++ 8 files changed, 867 insertions(+), 54 deletions(-)