Henri Verbeet
f4e10ea9d5
vkd3d-shader/d3d-asm: Include the I/O signatures when tracing vsir code.
2025-04-14 21:55:26 +02:00
Giovanni Mascellani
24e61cf74e
vkd3d-shader: Represent resource data types as vkd3d_data_type in struct vkd3d_shader_descriptor_info1.
2025-04-14 21:55:26 +02:00
Elizabeth Figura
d91d552a5e
vkd3d-shader/ir: Introduce a vsir_dst_param_init_null() helper.
2025-04-14 15:32:12 +02:00
Elizabeth Figura
7331c70e9e
vkd3d-shader/hlsl: Set the sysval for more sm1 semantics.
...
To match the sysval we set when reading them.
2025-04-14 15:29:19 +02:00
Feifan He
ba7a9a0b29
vkd3d-shader/msl: Implement VKD3DSIH_LD.
...
Co-authored-by: Giovanni Mascellani <gmascellani@codeweavers.com >
2025-04-14 15:27:02 +02:00
Giovanni Mascellani
10d8760134
vkd3d-shader/ir: Validate register id and index for RESOURCE registers.
2025-04-02 19:06:43 +02:00
Shaun Ren
bd055fac1c
vkd3d-shader/hlsl: Store geometry shader properties in struct vsir_program.
2025-03-18 15:46:02 +01:00
Shaun Ren
8af3173955
vkd3d-shader/hlsl: Support input primitive arrays in geometry shaders.
2025-03-18 15:40:11 +01:00
Giovanni Mascellani
2377db33db
vkd3d-shader: Represent descriptor information in the vsir program.
2025-03-18 15:38:01 +01:00
Nikolay Sivov
fb5d53bf57
vkd3d-shader/fx: Add a helper to escape printed strings.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-03-17 14:46:18 +01:00
Shaun Ren
b650e7a503
vkd3d-shader/hlsl: Validate stream output object declarations.
...
Valid stream output objects must be single-element containing a
PointStream/LineStream/TriangleStream object.
Moreover, stream output objects cannot be declared globally.
2025-03-12 21:12:56 +01:00
Shaun Ren
870c68dd27
vkd3d-shader/hlsl: Validate and record input primitive types in geometry shaders.
2025-03-12 21:11:46 +01:00
Shaun Ren
e880b11626
vkd3d-shader/hlsl: Parse the maxvertexcount attribute.
2025-03-12 20:42:15 +01:00
Nikolay Sivov
553e37314a
vkd3d-shader/fx: Print string object entries for fx_2_0.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-03-10 15:14:32 +01:00
Henri Verbeet
a6fda3e65d
vkd3d-shader/fx: Output error messages for invalid sizes.
2025-03-06 17:19:28 +01:00
Henri Verbeet
fe4143ad19
vkd3d-shader/dxil: Generate I/O signatures with 16-bit component types for native 16-bit shaders.
...
Which incidentally matches the I/O signatures from the DXBC container.
2025-02-24 15:10:08 +01:00
Henri Verbeet
f5d702b09a
vkd3d-shader/dxbc: Validate component types in shader_parse_signature().
2025-02-24 15:10:08 +01:00
Henri Verbeet
b8d740ebfc
vkd3d-shader/dxbc: Output messages for invalid semantic name references in shader_parse_signature().
2025-02-24 15:10:08 +01:00
Shaun Ren
f127f0849e
vkd3d-shader/hlsl: Generate vsir signature entries for patch variables.
2025-02-03 16:04:21 +01:00
Shaun Ren
f064a4022a
vkd3d-shader/hlsl: Validate and record InputPatch/OutputPatch types.
2025-01-29 17:45:46 +01:00
Elizabeth Figura
3c53293028
vkd3d-shader/ir: Separate VKD3DSPR_OUTPUT and VKD3DSPR_TEXCRDOUT.
...
This simplifies the IR.
2024-12-18 17:30:16 +01:00
Elizabeth Figura
8132239ed2
vkd3d-shader/ir: Separate VKD3DSPR_ADDR and VKD3DSPR_TEXTURE.
...
This simplifies the IR.
2024-12-18 17:30:16 +01:00
Elizabeth Figura
65f3f56f63
vkd3d-shader/d3dbc: Normalize to a single VKD3DSPR_CONST register set when reading.
...
We don't need VKD3DSPR_CONST2 et al in the IR, even for disassembly.
2024-12-18 17:30:16 +01:00
Elizabeth Figura
118617916a
vkd3d-shader: Explicitly translate between d3dbc and vsir register types.
2024-12-18 17:30:16 +01:00
Giovanni Mascellani
dd0ed989a1
vkd3d-shader/d3dbc: Normalise I/O register write masks when not disassembling.
...
Sometimes SM1-3 shaders contain write masks that exceed the
signature element masks. That happens because SM1-3 shaders do not
have a concept of signature and signature masks, and OTOH aren't
always able to express any given write mask.
In VSIR we don't want to deal with I/O register masks exceeding the
corresponding signature element mask or usage mask, because, for
instance, for higher shader models it can complicate dealing with
DCL_INDEX_RANGE. In order to have uniform rules for all shader
models we normalise masks coming from SM1-3 shaders.
We don't do that normalisation when disassembling, in order to
preserve the expected output.
2024-12-12 17:21:49 +01:00