58ffb5d181
vkd3d-shader/spirv: Introduce integer width cast instructions.
...
ITOI and UTOU may cast from a bool to a 32-bit integer. Cast to a 64-bit
integer from a smaller type will be added later.
2023-11-09 21:14:32 +01:00
7de4ac2e48
vkd3d-shader/spirv: Support bool cast in spirv_compiler_emit_alu_instruction().
2023-11-09 21:14:30 +01:00
5b87d6419a
vkd3d-shader/spirv: Support bool logic ops in spirv_compiler_emit_alu_instruction().
2023-11-09 21:14:27 +01:00
12240efa79
vkd3d-shader/spirv: Use register counts from the signature and shader desc.
2023-11-07 22:26:49 +01:00
0058764f01
vkd3d-shader: Store the control point counts in struct vkd3d_shader_desc.
2023-11-07 22:26:49 +01:00
2f7d52dba4
vkd3d-shader/ir: Check that IF blocks are correctly nested.
2023-11-07 22:26:01 +01:00
749df8dec2
vkd3d-shader/dxil: Implement the DXIL BINOP instruction.
2023-11-06 23:09:03 +01:00
acbc80cba2
vkd3d-shader/spirv: Introduce an IDIV instruction.
2023-11-06 23:09:00 +01:00
c8d3515d8b
vkd3d-shader/spirv: Introduce an FREM instruction.
2023-11-06 23:08:58 +01:00
fa23165cc0
vkd3d-shader/spirv: Remove handling of VKD3DSPR_OUTCONTROLPOINT.
...
I/O normalization removes this register type.
2023-11-06 23:07:58 +01:00
b73d2c978d
vkd3d-shader/ir: Check for vocp usage during IR normalization.
...
The hull shader barrier used for this was broken by I/O normalization, since
vocp is no longer exposed to the spirv backend.
Restore this barrier by checking for vocp during normalization instead.
2023-11-06 23:07:56 +01:00
af72466db1
vkd3d-shader/ir: Validate the index of a TEMP register.
2023-11-02 18:22:52 +01:00
4140b87499
vkd3d-shader/ir: Validate the DCL_TEMPS instruction.
2023-11-02 18:22:50 +01:00
79fa5fd8bb
vkd3d-shader/ir: Validate the register index count.
2023-11-02 18:22:49 +01:00
26e4191d4b
vkd3d-shader/ir: Validate the register dimension.
2023-11-02 18:22:47 +01:00
f3a20be35a
vkd3d-shader/ir: Validate the register data type.
2023-11-02 18:22:38 +01:00
72d0f765f2
vkd3d-shader/ir: Validate the register precision.
2023-11-02 18:22:37 +01:00
2ba8c5771c
vkd3d-shader: Deduplicate profile version comparison functions.
2023-11-02 18:22:35 +01:00
dd96fe50e2
vkd3d-shader: Dump shaders as soon as possible.
...
So that they are dumped even if parsing fails, which is a circumstance
in which one likely wants to see the problematic shader.
The downside of that is that for shader types other than HLSL
the profile is not written any more in the filename. This should
not be a big problem, because in those cases the shader describes
its own type.
When dumping an HLSL shader, the id is brought in front of the profile
in the file name, in order to make it more tab-friendly: when dealing
with a directory full of shaders it's likely that the id determines
the profile, but the other way around.
2023-11-02 18:22:26 +01:00
ab09c0b45b
vkd3d-shader: Expose the whole profile when dumping an HLSL shader.
...
The profile cannot be reliably devised by analyzing the HLSL code,
so it's useful to have it included in the file name.
2023-11-02 18:22:24 +01:00
43b5d73870
vkd3d-shader/dxil: Implement DX instruction CBufferLoadLegacy.
2023-11-01 21:47:32 +01:00
3b1bbe2b0a
vkd3d-shader/dxil: Implement DX instruction CreateHandle.
2023-11-01 21:47:30 +01:00
15b69721de
vkd3d-shader/tpf: Set the interpolation mode for signature elements.
2023-10-31 21:59:38 +01:00
9a6e4a0c58
vkd3d-shader/hlsl: Check for duplicate case statements.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2023-10-31 21:58:59 +01:00
f7525bf0c6
vkd3d-shader/dxil: Validate the descriptor list metadata nodes.
2023-10-19 23:07:42 +02:00