3486 Commits

Author SHA1 Message Date
Giovanni Mascellani
03ad04c890 vkd3d-shader/ir: Validate OUTCONTROLPOINT registers. 2024-10-17 17:34:55 +02:00
Giovanni Mascellani
1e86f00247 vkd3d-shader/ir: Validate INCONTROLPOINT registers. 2024-10-17 17:34:55 +02:00
Giovanni Mascellani
a4ab53ab7b vkd3d-shader/ir: Validate PATCHCONST registers. 2024-10-17 17:34:55 +02:00
Giovanni Mascellani
62d5bc91f5 vkd3d-shader/ir: Validate OUTPUT registers. 2024-10-17 17:34:55 +02:00
Giovanni Mascellani
349fdd0843 vkd3d-shader/ir: Validate INPUT registers. 2024-10-17 17:34:55 +02:00
Giovanni Mascellani
d9508558a9 vkd3d-shader: Keep track of whether programs have normalised hull shader control point I/O. 2024-10-17 17:34:55 +02:00
Giovanni Mascellani
eba8fd4720 vkd3d-shader: Keep track of whether programs have normalised I/O. 2024-10-17 17:34:55 +02:00
Nikolay Sivov
071130b944 vkd3d-shader/fx: Add support for tracing annotations.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-17 17:32:54 +02:00
Elizabeth Figura
eeb7bbe3c5 vkd3d-shader/hlsl: Handle error expressions in ternary expressions. 2024-10-17 17:28:52 +02:00
Elizabeth Figura
d95962068a vkd3d-shader/hlsl: Handle error expressions in initializers. 2024-10-17 17:28:52 +02:00
Elizabeth Figura
dfe79cb6a9 vkd3d-shader/hlsl: Factor the component count check into initialize_var(). 2024-10-17 17:28:52 +02:00
Elizabeth Figura
d8892a4ca2 vkd3d-shader/hlsl: Store the initializer location in struct parse_initializer. 2024-10-17 17:28:52 +02:00
Elizabeth Figura
44ea7b5e12 vkd3d-shader/hlsl: Factor out an initialize_var() helper. 2024-10-17 17:28:52 +02:00
Giovanni Mascellani
0e43dea42d vkd3d-shader/ir: Check that signature masks are contiguous. 2024-10-17 17:28:52 +02:00
Giovanni Mascellani
083b87c712 vkd3d-shader/d3dbc: Make signature masks contiguous.
The goal is to make a requirement for VSIR that signature element
masks are always contiguous. The SPIR-V backend already implicitly
makes that assumption, since it just consider the LSB and popcount
of the mask.

For example, consider this HLSL pixel shader:

    float4 main(float4 color : COLOR) : SV_Target
    {
        return float4(color.x, 10.0f, 11.0f, color.w);
    }

Currently the parser describes the input signature element
corresponding to semantic COLOR as having mask .xw, which is
sensible. However, the SPIR-V parser will interpret that as
a mask starting at x and with popcount 2, and assuming it is
contiguous it will implicitly act as if it were .xy. This is
not correct, because the wrong component will be loaded from
the vertex stage.
2024-10-17 17:28:52 +02:00
Giovanni Mascellani
2b45878ff8 vkd3d-shader/ir: Validate the line density SV_TessFactor signature element for isolines domains. 2024-10-16 21:40:58 +02:00
Giovanni Mascellani
f470eb2a1a vkd3d-shader/ir: Validate the line detail SV_TessFactor signature element for isolines domains. 2024-10-16 21:40:58 +02:00
Giovanni Mascellani
c5c3151414 vkd3d-shader/ir: Validate SV_InsideTessFactor signature elements for tri domains. 2024-10-16 21:40:58 +02:00
Giovanni Mascellani
4e8b34c075 vkd3d-shader/ir: Validate SV_TessFactor signature elements for tri domains. 2024-10-16 21:40:58 +02:00
Giovanni Mascellani
b2460a6794 vkd3d-shader/ir: Validate SV_InsideTessFactor signature elements for quad domains. 2024-10-16 21:40:58 +02:00
Giovanni Mascellani
a8b9a92c10 vkd3d-shader/ir: Validate SV_TessFactor signature elements for quad domains. 2024-10-16 21:40:58 +02:00
Shaun Ren
1ed5f1a4d0 vkd3d-shader/tpf: Write the patch constant function in hull shaders.
We use a single hs_fork_phase here for the patch constant function.
2024-10-16 21:40:40 +02:00
Shaun Ren
ae2d86b99c vkd3d-shader/tpf: Determine SIV from SV and index in write_sm4_dcl_semantic(). 2024-10-16 21:12:29 +02:00
Shaun Ren
df3aaac7cf vkd3d-shader/tpf: Introduce tpf_write_shader_function(). 2024-10-16 21:12:13 +02:00
Shaun Ren
147f8898ca vkd3d-shader/hlsl: Process the patch constant function in hlsl_emit_bytecode().
Also, support patch constant function semantics in sm4_sysval_semantic_from_semantic_name().
2024-10-16 21:10:24 +02:00