Unlike previous vkd3d-utils interfaces, ID3D12ShaderReflection is rather more
large and complex, and will probably end up needing several new individual
scan interfaces from vkd3d-shader, which are themselves not exactly trivial to
design.
Therefore, instead of implementing everything in vkd3d-shader and then hooking
up the vkd3d-utils interfaces on top of that, this patch series copies the
existing implementation of reflection and then begins the process of moving its
implementation to vkd3d-shader.
The primary motivation here is to add reflection crosstests (primarily for the
benefit of the HLSL compiler) without being blocked on API design. Part 2 of
this patch series does this.
--
v3: tests: Test signature reflection via D3DReflect().
tests: Test VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_MAP_SEMANTIC_NAMES.
vkd3d-utils: Implement input and output signature reflection.
vkd3d-utils: Add D3DReflect().
include: Add vkd3d_d3d12shader.idl.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/561
Goes atop !537.
--
v7: tests/shader-runner: Add a clip distance array test.
vkd3d-shader/dxil: Support the clip distance semantic kind.
tests/d3d12: Test multiple clip distance inputs in test_clip_distance().
tests/d3d12: Use 5 clip distances for the multiple test in test_clip_distance().
vkd3d-shader/ir: Transform clip/cull outputs and patch constants into arrays.
vkd3d-shader/ir: Transform clip/cull inputs into an array.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/564
Goes atop !537.
--
v6: tests/shader-runner: Add a clip distance array test.
vkd3d-shader/dxil: Support the clip distance semantic kind.
tests/d3d12: Test multiple clip distance inputs in test_clip_distance().
tests/d3d12: Use 5 clip distances for the multiple test in test_clip_distance().
vkd3d-shader/ir: Transform clip/cull outputs and patch constants into arrays.
vkd3d-shader/ir: Transform clip/cull inputs into an array.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/564
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: vkd3d-shader/fx: Add initial support for writing passes for fx_2_0.
vkd3d-shader/fx: Add initial support for writing fx_2_0 binaries.
vkd3d-shader/fx: Check technique type in global scope as well.
vkd3d-shader/hlsl: Allow annotations on techniques.
vkd3d-shader/hlsl: Allow annotations on passes.
vkd3d-shader/hlsl: Add passes variables to the techniques.
vkd3d-shader/hlsl: Add initial support for parsing annotations.
tests/hlsl: Add some tests for annotations.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/565
At some point I would like to have an assembler for TPF, so that it's easier to write and modify tests. This is a first step in that direction, fixing some kind of format for serializing signatures in the comment at the beginning of the assembler code. I'm not decided yet on all details, so take this as an RFC for the moment.
--
v2: vkd3d-shader/d3d_asm: Dump the input and output signature in comments.
vkd3d-shader/d3d-asm: Pass a string buffer to vkd3d_dxbc_binary_to_text().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/553