Andrey Gusev
8882d324a6
vkd3d-shader/ir: Store the actual return value in shader_signature_map_patch_constant_index_ranges().
2025-04-28 12:49:27 +02:00
Andrey Gusev
c69d2ab0ae
vkd3d-shader/dxil: Store the actual return value in sm6_parser_signatures_init().
2025-04-28 12:47:57 +02:00
Henri Verbeet
88bbc106c7
vkd3d-shader/spirv: We can parse up to SPIR-V 1.6.
...
The main reason to care at this point is that we actually emit SPIR-V 1.3
ourselves in some cases.
2025-04-23 18:12:39 +02:00
Conor McCarthy
c75b318805
vkd3d-shader/tpf: Emit the resource data type only for typed resource declarations.
2025-04-23 18:10:51 +02:00
Shaun Ren
2a89b23ede
vkd3d-shader/hlsl: Validate and record stream output objects.
...
Validation should only be done for stream outputs that are used.
2025-04-23 18:01:06 +02:00
Shaun Ren
f2f44b054d
vkd3d-shader/hlsl: Allocate registers for stream output objects.
...
All stream output objects need to have a stream index allocated,
whether they are used or not.
We allocate stream outputs here, before other objects are allocated,
because the stream index is needed to create the appropriate output
semantic variables during append_output_copy(), which will be called
in a lowering pass for the Append() method.
2025-04-23 17:54:54 +02:00
Shaun Ren
d620ad4942
vkd3d-shader/hlsl: Introduce HLSL_REGSET_STREAM_OUTPUTS regset.
2025-04-23 17:54:54 +02:00
Shaun Ren
8059608af9
vkd3d-shader/hlsl: Parse the RestartStrip() method for stream outputs.
2025-04-23 17:54:54 +02:00
Shaun Ren
9525eb2f0c
vkd3d-shader/hlsl: Parse the Append() method for stream outputs.
2025-04-23 17:54:54 +02:00
Shaun Ren
9b65cc8895
vkd3d-shader/hlsl: Support HLSL_CLASS_STREAM_OUTPUT in hlsl type helpers.
2025-04-23 17:54:54 +02:00
Giovanni Mascellani
c764f71cf5
vkd3d-shader/ir: Validate that DEPTHOUTLE registers aren't used as sources.
2025-04-16 16:46:38 +02:00
Giovanni Mascellani
ee7895465c
vkd3d-shader/ir: Validate that DEPTHOUTGE registers aren't used as sources.
2025-04-16 16:46:28 +02:00
Giovanni Mascellani
834017c198
vkd3d-shader/ir: Validate that DEPTHOUT registers aren't used as sources.
2025-04-16 16:46:05 +02:00
Francisco Casas
9378d51b18
vkd3d-shader/hlsl: Remove the unnecessary "instr" field from the parser %union.
2025-04-16 16:22:42 +02:00
Francisco Casas
77941b131e
vkd3d-shader/hlsl: Add switch_case destructors to the parser.
2025-04-16 16:21:51 +02:00
Francisco Casas
ff5f9cbcb6
vkd3d-shader/hlsl: Add parse_variable_def destructors to the parser.
2025-04-16 16:21:45 +02:00
Francisco Casas
f3ba7a84f4
vkd3d-shader/hlsl: Avoid leaking blocks on YYABORT.
...
Currently program errors might result on instructions that use
ctx->error_instr as src. In case we hit YYABORT while parsing another
part of the HLSL source, we have to make sure that the block that
contains the instruction is properly cleaned up, or we might hit the
vkd3d:590273:err:hlsl_free_instr Failed assertion: list_empty(&node->uses)
assertion when hlsl_ctx_cleanup() is called after the YYABORT.
Consider the following shader:
float4 main() : sv_target
{
// Statement A
int p = foo; // initializer argument is ERROR.
// Statement B
undeclared_fun(); // triggers YYABORT.
}
Statement A will src the ctx->error_instr because of the undeclared
identifier and Statement B will trigger an YYABORT because of the
undeclared function.
2025-04-16 16:01:35 +02:00
Francisco Casas
128688a573
vkd3d-shader/hlsl: Avoid leaking declaration_statement blocks.
2025-04-16 16:00:18 +02:00
Francisco Casas
58706474ec
vkd3d-shader/hlsl: Make struct_declaration_without_vars return void.
2025-04-16 15:58:40 +02:00
Giovanni Mascellani
922cb47a4b
vkd3d-shader/ir: Validate descriptor counts in vsir programs.
2025-04-16 15:56:59 +02:00
Giovanni Mascellani
be94a37e23
vkd3d-shader/ir: Validate descriptor resource data types in vsir programs.
2025-04-16 15:52:46 +02:00
Giovanni Mascellani
01f47e00f2
vkd3d-shader/ir: Validate descriptor resource types in vsir programs.
2025-04-16 15:49:32 +02:00
Giovanni Mascellani
0da80c1f25
vkd3d-shader/ir: Validate descriptor types in vsir programs.
2025-04-16 15:46:20 +02:00
Giovanni Mascellani
869e6ef583
vkd3d-shader: Describe the resource data types of samplers as NONE.
...
It used to be UINT before, but it doesn't make any sense.
2025-04-16 15:42:31 +02:00
Giovanni Mascellani
f02ea94c42
vkd3d-shader/d3d-asm: Trace register names for I/O declarations.
2025-04-14 21:57:27 +02:00