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.
--
v3: tests: Test emitting the signature.
vkd3d-compiler: Add an option to emit the signature when disassembling.
vkd3d-shader/d3d-asm: Support emitting the shader signature.
vkd3d-shader/d3d-asm: Refactor dumping a write mask to a dedicated function.
vkd3d-shader/d3d-asm: Describe the ASM dialect with a bunch of flags instead of a plain enum.
vkd3d-shader/d3d-asm: Do not make a copy of the buffer before returning it.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/553
This allows for the basic features necessary to compile sm1 shaders. This is the
first step towards comprehensive Direct3D 1-9 support in the Vulkan backend.
Fixed-function d3d states that must be emulated with shaders in Vulkan (e.g.
alpha test) are not yet implemented, nor is the fixed-function pipeline.
Accordingly it is unlikely that any real applications run yet.
Tested with vkd3d's tests. Specifically, run `make crosstest` in a vkd3d tree,
then:
wine tests/shader_runner.cross64.exe ../vkd3d/tests/hlsl/writemask-assignop-0.shader_test
--
v2: wined3d/spirv: Hook up sm1 interface matching.
wined3d: Compile sm1 bytecode to spirv.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4875
Goes atop !533. The last commit belongs to this MR.
--
v3: vkd3d-shader/dxil: Implement DX intrinsic Binary.
vkd3d-shader/dxil: Add an operand type code for the return type.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/572