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
a4ed06bc5b
vkd3d-shader/d3d-asm: Recognise the 'rasteriser ordered view' UAV flag.
2023-10-18 20:58:27 +02:00
b63c853688
vkd3d-utils: Implement D3DGetBlobPart().
...
This was largely adapted from Wine's d3dcompiler_43, with some style
adjustments.
2023-10-18 20:58:22 +02:00
4b7ca0c294
vkd3d-shader/dxil: Read DXIL global flags.
2023-10-17 22:18:25 +02:00
06f8a88466
vkd3d-shader: Define more global flags.
2023-10-17 22:18:23 +02:00
7113064a19
vkd3d-shader/dxil: Handle signature element additional tag/value pairs.
2023-10-16 22:36:36 +02:00
8648ca0e77
vkd3d-shader/dxil: Read the DXIL input and output signatures.
...
These can differ from the DXBC signatures by having multiple rows, and
load/store instructions reference them by id instead of register index.
2023-10-16 22:36:29 +02:00
62badbff7a
vkd3d-shader/dxil: Validate the entry point info.
2023-10-16 22:36:28 +02:00
cba3e18c45
vkd3d-shader/dxil: Read DXIL metadata values.
2023-10-12 18:23:31 +02:00
a62343f544
vkd3d-shader/dxil: Read DXIL metadata strings.
2023-10-12 18:23:29 +02:00
df4e1b7393
vkd3d-shader/dxil: Read immediate constant arrays.
2023-10-11 22:21:19 +02:00