vkd3d/libs/vkd3d-shader
Francisco Casas d96e9665b1 vkd3d-shader/hlsl: Error out when an output semantic is used more than once.
The use of the hlsl_semantic.reported_duplicated_output_next_index field
allows reporting multiple overlapping indexes, such as in the following
vertex shader:

    void main(out float1x3 x : OVERLAP0, out float1x3 y : OVERLAP1)
    {
        x = float3(1.0, 2.0, 3.2);
        y = float3(5.0, 6.0, 5.0);
    }

    apple.hlsl:1:41: E5013: Output semantic "OVERLAP1" is used multiple times.
    apple.hlsl:1:13: First use of "OVERLAP1" is here.
    apple.hlsl:1:41: E5013: Output semantic "OVERLAP2" is used multiple times.
    apple.hlsl:1:13: First use of "OVERLAP2" is here.

While at the same time avoiding reporting overlaps more than once for
large arrays:

    struct apple
    {
        float2 p : sv_position;
    };

    void main(out apple aps[4])
    {
    }

    apple.hlsl:3:8: E5013: Output semantic "sv_position0" is used multiple times.
    apple.hlsl:3:8: First use of "sv_position0" is here.
2023-05-01 22:18:22 +02:00
..
checksum.c vkd3d-shader: Introduce vkd3d_make_u{16, 32}() helpers. 2021-08-11 20:58:24 +02:00
d3dbc.c vkd3d-shader/hlsl: Move get_array_size() and get_array_type() to hlsl.c. 2023-05-01 22:18:19 +02:00
dxbc.c vkd3d-shader/sm4: Move the TPF parser from dxbc.c to hlsl_sm4.c. 2023-04-20 22:54:28 +02:00
glsl.c vkd3d-shader/glsl: Update the current source location in vkd3d_glsl_generator_generate(). 2023-03-13 22:09:58 +01:00
hlsl_codegen.c vkd3d-shader/hlsl: Error out when an output semantic is used more than once. 2023-05-01 22:18:22 +02:00
hlsl_constant_ops.c vkd3d-shader/hlsl: Rename the "type" field of struct hlsl_type to "class". 2023-04-03 17:59:24 +02:00
hlsl.c vkd3d-shader/hlsl: Move get_array_size() and get_array_type() to hlsl.c. 2023-05-01 22:18:19 +02:00
hlsl.h vkd3d-shader/hlsl: Error out when an output semantic is used more than once. 2023-05-01 22:18:22 +02:00
hlsl.l vkd3d-shader/hlsl: Parse packoffset(). 2023-04-04 21:59:40 +02:00
hlsl.y vkd3d-shader/hlsl: Error out when an output semantic is used more than once. 2023-05-01 22:18:22 +02:00
ir.c vkd3d-shader/ir: Insert hull shader control point input declarations if no control point phase is defined. 2023-04-12 21:54:28 +02:00
libvkd3d-shader.pc.in build: Build libvkd3d-shader as public library. 2018-11-02 11:19:00 +01:00
preproc.h build: Make the default symbol visibility "hidden". 2021-08-09 21:43:22 +02:00
preproc.l vkd3d-shader/preproc: Don't add additional spaces after whitespace tokens. 2022-03-31 21:24:56 +02:00
preproc.y vkd3d-shader/hlsl: Handle over/underflow when parsing integer literals. 2022-05-12 19:33:56 +02:00
spirv.c vkd3d-shader/trace: Add separate id for discard. 2023-04-26 22:46:49 +02:00
tpf.c vkd3d-shader/hlsl: Move get_array_size() and get_array_type() to hlsl.c. 2023-05-01 22:18:19 +02:00
trace.c vkd3d-shader/trace: Add separate id for discard. 2023-04-26 22:46:49 +02:00
vkd3d_shader_main.c vkd3d-shader: Explicitly align the size in bytecode_get_next_offset() and rename it accordingly. 2023-04-06 17:52:16 +02:00
vkd3d_shader_private.h vkd3d-shader/trace: Add separate id for discard. 2023-04-26 22:46:49 +02:00
vkd3d_shader.map vkd3d-shader/dxbc: Introduce API for serialising DXBC blobs. 2023-02-23 21:47:27 +01:00