vkd3d/libs/vkd3d-shader
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
..
checksum.c vkd3d-shader: Use a hash to build the filename when dumping shaders. 2024-08-29 19:14:27 +02:00
d3d_asm.c vkd3d-shader/d3d-asm: Dump signatures when tracing a VSIR program. 2024-10-08 22:04:59 +02:00
d3dbc.c vkd3d-shader/d3dbc: Make signature masks contiguous. 2024-10-17 17:28:52 +02:00
dxbc.c vkd3d-shader/ir: Set the signature sort indices in shader_signature_merge(). 2024-10-08 22:05:38 +02:00
dxil.c vkd3d-shader/dxil: Shift register write masks by the component index in sm6_parser_emit_dx_store_output(). 2024-10-15 16:45:28 +02:00
fx.c vkd3d-shader/fx: Add support for tracing string variables. 2024-10-14 15:40:46 +02:00
glsl.c vkd3d-shader/tpf: Use dcl_input_ps_sgv for sv_isfrontface. 2024-10-15 16:44:38 +02:00
hlsl_codegen.c vkd3d-shader/tpf: Write the patch constant function in hull shaders. 2024-10-16 21:40:40 +02:00
hlsl_constant_ops.c vkd3d-shader/hlsl: Fold logic AND and logic OR identities. 2024-09-03 15:11:16 +02:00
hlsl.c vkd3d-shader/hlsl: Record semantic extern vars separately for each entry function. 2024-10-15 16:18:27 +02:00
hlsl.h vkd3d-shader/tpf: Introduce tpf_write_shader_function(). 2024-10-16 21:12:13 +02:00
hlsl.l vkd3d-shader/hlsl: Remove the 'double' keyword. 2024-09-23 15:26:35 +02:00
hlsl.y vkd3d-shader/hlsl: Implement struct single inheritance. 2024-10-16 21:07:53 +02:00
ir.c vkd3d-shader/ir: Validate the line density SV_TessFactor signature element for isolines domains. 2024-10-16 21:40:58 +02:00
libvkd3d-shader.pc.in build: Build libvkd3d-shader as public library. 2018-11-02 11:19:00 +01:00
msl.c vkd3d-shader/msl: Implement support for VKD3DSPR_OUTPUT registers. 2024-10-10 19:45:34 +02:00
preproc.h vkd3d-shader/preproc: Store argument values per expansion, not per macro. 2024-10-07 17:32:27 +02:00
preproc.l vkd3d-shader/preproc: Store argument values per expansion, not per macro. 2024-10-07 17:32:27 +02:00
preproc.y vkd3d-shader/preproc: Store argument values per expansion, not per macro. 2024-10-07 17:32:27 +02:00
spirv.c vkd3d-shader/ir: Allow controlling FFP point size through a vkd3d-shader parameter. 2024-10-10 22:25:09 +02:00
tpf.c vkd3d-shader/tpf: Write the patch constant function in hull shaders. 2024-10-16 21:40:40 +02:00
vkd3d_shader_main.c vkd3d-shader/fx: Introduce a parser/disassembler. 2024-10-14 15:20:41 +02:00
vkd3d_shader_private.h vkd3d-shader/tpf: Write the patch constant function in hull shaders. 2024-10-16 21:40:40 +02:00
vkd3d_shader.map vkd3d-shader: Implement scanning combined resource/sampler information. 2023-11-13 23:19:23 +01:00