Elizabeth Figura
2989373212
vkd3d-shader/hlsl: Add a hlsl_block_add_binary_expr() helper.
2025-02-24 16:19:07 +01:00
Elizabeth Figura
858b6a3e0b
vkd3d-shader/hlsl: Add a hlsl_block_add_cast() helper.
2025-02-24 16:19:07 +01:00
Elizabeth Figura
2e09257d94
vkd3d-shader/hlsl: Add a hlsl_block_add_unary_expr() helper.
2025-02-24 16:19:07 +01:00
Elizabeth Figura
b7ea23303e
vkd3d-shader/hlsl: Add a hlsl_block_add_float_constant() helper.
2025-02-24 16:19:07 +01:00
Elizabeth Figura
e830cdee71
vkd3d-shader/hlsl: Inline add_pow_expr().
...
The helper is used in one place.
2025-02-24 16:19:07 +01:00
Conor McCarthy
439652f023
tests: Replace test_vs_ps_relative_addressing() with a shader runner test.
...
Besides simply being more compact, this allows the test to cover more
shader types, perhaps most notably DXIL.
2025-02-24 16:19:01 +01:00
Henri Verbeet
1fd89abcc3
vkd3d-shader: Enable DXIL support in the default configuration.
2025-02-24 15:10:08 +01:00
Henri Verbeet
73c0356861
tests: Add a shader model 6 signature reflection test for different types.
2025-02-24 15:10:08 +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
Henri Verbeet
3bcdb85ddc
vkd3d-shader/dxbc: Set the "elements_capacity" field as well in shader_parse_signature().
...
Leaving it as 0 mostly ends up doing the right thing in practice, but isn't
quite right.
2025-02-24 15:10:08 +01:00
Giovanni Mascellani
2feb3a3bba
vkd3d: Take the root signature from shaders when creating graphics pipelines.
...
If the root signature wasn't explicitly specified.
This fixes a failure in The Touryst.
2025-02-20 16:00:55 +01:00
Giovanni Mascellani
42b65e80cf
tests: Test embedding the root signature in shaders for graphics pipelines.
2025-02-20 15:59:22 +01:00
Henri Verbeet
0796af7b4b
vkd3d: Avoid vkd3d_shader_parse_input_signature().
2025-02-20 15:57:26 +01:00
Henri Verbeet
2e62e9ea7e
vkd3d-shader: Handle arrayed elements in vkd3d_shader_signature_from_shader_signature().
2025-02-20 15:57:26 +01:00
Henri Verbeet
ce5164e26e
tests: Add a signature reflection test for arrayed inputs and outputs.
2025-02-20 15:57:26 +01:00
Henri Verbeet
4e28d1c658
vkd3d-shader/dxbc: Do not extract I/O signatures for DXIL shaders.
...
The DXIL parser doesn't need them.
2025-02-20 15:57:26 +01:00
Henri Verbeet
f4a3d17269
vkd3d-shader/dxil: Avoid using the I/O signatures from the DXBC container.
...
We currently generate our own I/O signatures inside the DXIL parser, but
use the element counts from the DXBC container signatures to allocate
the input_params/output_params/patch_constant_params arrays. That
happens to work for well-behaved inputs, but it's asking for trouble.
2025-02-20 15:57:26 +01:00
Henri Verbeet
970a1a2b35
vkd3d-shader/dxbc: Update the vkd3d_shader_parse_input_signature() documentation for dxbc-dxil shaders.
2025-02-20 15:57:26 +01:00
Elizabeth Figura
d5a2ff5c12
vkd3d-shader/hlsl: Add a hlsl_block_add_int_constant() helper.
2025-02-20 15:56:31 +01:00
Elizabeth Figura
992d20def3
vkd3d-shader/hlsl: Add a hlsl_block_add_uint_constant() helper.
2025-02-20 15:50:13 +01:00
Elizabeth Figura
79ad8c9354
vkd3d-shader/hlsl: Handle error instructions in hlsl_new_swizzle().
...
We already check for error instructions when parsing swizzles, but if allocation
fails at codegen time we would like to avoid asserting when subsequently
constructing a swizzle.
2025-02-20 15:49:40 +01:00
Elizabeth Figura
4072aa4a4b
vkd3d-shader/hlsl: Remove the type equality assertions in hlsl_new_ternary_expr().
...
Similar to d1c2ae3f0e , this is a bit too strict
and may prevent e.g. simultaneous use of float and float1 at codegen time.
However, in this case the inciting factor is that in the case of allocation
failure at codegen time, we would like to allow one or more arguments to have
error type.
2025-02-20 15:48:25 +01:00
Elizabeth Figura
ba868ed4a6
vkd3d-shader/hlsl: Skip transformation passes on error.
...
The primary motivation here is to avoid needing to worry about instructions
potentially pointing to the preallocated error instruction in the case of
allocation failure.
This doesn't cover all passes, but none of the other passes make assumptions
about instruction sources.
2025-02-20 15:48:24 +01:00