Commit Graph

6504 Commits

Author SHA1 Message Date
Henri Verbeet
27eb3c07ad vkd3d-shader/glsl: Implement switches. 2024-10-09 13:14:31 +02:00
Henri Verbeet
93f1af721f vkd3d-shader/glsl: Implement loops. 2024-10-09 13:14:31 +02:00
Henri Verbeet
790f35533b vkd3d-shader/glsl: vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_INT inputs. 2024-10-09 13:14:31 +02:00
Giovanni Mascellani
bb0e4506a6 vkd3d-shader/ir: Validate masks in shader signatures. 2024-10-09 13:13:00 +02:00
Giovanni Mascellani
c3b31b96e1 vkd3d-shader/ir: Validate register counts in patch constant signatures. 2024-10-09 13:13:00 +02:00
Giovanni Mascellani
a29270fa64 vkd3d-shader/ir: Validate register counts in output signatures. 2024-10-09 13:13:00 +02:00
Giovanni Mascellani
118f494de3 vkd3d-shader/ir: Validate register counts in input signatures. 2024-10-09 13:13:00 +02:00
Giovanni Mascellani
7202e6e2f3 vkd3d-shader/ir: Allow a patch constant signature only for Hull and Domain Shaders. 2024-10-09 13:13:00 +02:00
Giovanni Mascellani
16efb7c0c6 vkd3d-shader: Ignore the patch constant signature when it doesn't make sense. 2024-10-09 13:13:00 +02:00
Giovanni Mascellani
cd74461d6d vkd3d-shader/ir: Set the signature sort indices in shader_signature_merge().
Since the sort index is just a convenience field it is more
appropriate to only set it where it is required, instead of
requiring all frontends and passes to retain sensible values for
it.
2024-10-08 22:05:38 +02:00
Giovanni Mascellani
c332adaa68 vkd3d-shader/d3d-asm: Dump signatures when tracing a VSIR program. 2024-10-08 22:04:59 +02:00
Giovanni Mascellani
c7d09bba97 vkd3d-shader/d3d-asm: Rename dump_signatures() to dump_dxbc_signatures(). 2024-10-08 22:04:59 +02:00
Giovanni Mascellani
b21ae8d9c2 vkd3d-shader/d3d-asm: Rename dump_signature() to dump_dxbc_signature().
To stress the fact that only the fields that appear in the DXBC
signature sections are considered.
2024-10-08 22:04:59 +02:00
Giovanni Mascellani
1256b4f862 vkd3d-shader/d3d-asm: Rename vkd3d_shader_trace() to vsir_program_trace(). 2024-10-08 22:04:59 +02:00
Giovanni Mascellani
3428ed7a64 vkd3d-shader/dxil: Emit double arithmetic operations when appropriate. 2024-10-08 22:04:32 +02:00
Henri Verbeet
cf92d9f398 vkd3d-shader/ir: Store the thread group size in struct vsir_program. 2024-10-08 22:03:05 +02:00
Henri Verbeet
fc8384462f vkd3d-shader/glsl: Implement VKD3DSIH_IMAX. 2024-10-08 22:01:56 +02:00
Henri Verbeet
c2a42214ff vkd3d-shader/glsl: Implement VKD3DSIH_INEG. 2024-10-08 22:01:56 +02:00
Henri Verbeet
e55bc76fd2 vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_UINT inputs. 2024-10-08 22:01:56 +02:00
Henri Verbeet
0acebd6e09 vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_UINT outputs. 2024-10-08 22:01:56 +02:00
Henri Verbeet
95a46fb0f0 vkd3d-shader/glsl: Handle SV_POSITION inputs in fragment shaders. 2024-10-08 22:01:56 +02:00
Conor McCarthy
fcb09be6e3 tests/shader-runner: Move the Vulkan helper functions to vulkan_utils.h. 2024-10-08 20:34:03 +02:00
Conor McCarthy
ce83628882 tests/shader-runner: Move struct vulkan_test_context to vulkan_utils.h. 2024-10-08 20:34:03 +02:00
Conor McCarthy
fc65170521 tests/shader_runner: Introduce struct vulkan_test_context for the Vulkan runner. 2024-10-08 20:34:03 +02:00
Conor McCarthy
d76435cd21 tests: Move the dxc compilation helpers to utils.h. 2024-10-08 20:34:03 +02:00
Evan Tang
102cfdab36 tests: Add a test for writing patch constants during tessellation. 2024-10-07 17:44:29 +02:00
Evan Tang
3342d307a8 tests: Add a test for shader interstage register packing. 2024-10-07 17:39:45 +02:00
Evan Tang
c571a45e65 vkd3d-shader/ir: Don't shift register write masks by the component index in shader_dst_param_io_normalise().
This loses information about which source elements they want, making
"o.yzw = reg.xxyz" compile to "o = reg.xxy" instead of "o = reg.xyz".
2024-10-07 17:36:11 +02:00
Evan Tang
b5ccc0e705 vkd3d-shader/ir: Remove an unnecessary typecast in shader_instruction_eliminate_phase_instance_id(). 2024-10-07 17:34:54 +02:00
Giovanni Mascellani
fbd8b1a8c4 tests/shader-runner: Print the WARP driver version.
Since recent versions seem to have more features and possibly
fewer bugs it is useful to know what you're dealing with.

Currently the latest WARP drivers are distributed here:

  https://www.nuget.org/packages/Microsoft.Direct3D.WARP
2024-10-07 17:33:50 +02:00
Elizabeth Figura
34fdb304bb vkd3d-shader/hlsl: Handle error expressions in increments. 2024-10-07 17:33:07 +02:00
Elizabeth Figura
84685fb56d vkd3d-shader/hlsl: Handle error expressions in subscripts. 2024-10-07 17:33:07 +02:00
Elizabeth Figura
c66f25016b vkd3d-shader/hlsl: Handle error expressions in array indexes. 2024-10-07 17:33:07 +02:00
Elizabeth Figura
41ff4343e1 vkd3d-shader/hlsl: Handle error expressions in explicit casts. 2024-10-07 17:33:07 +02:00
Elizabeth Figura
10efdd3f63 vkd3d-shader/hlsl: Introduce an add_explicit_conversion() helper. 2024-10-07 17:33:07 +02:00
Elizabeth Figura
aa79bfa681 vkd3d-shader/preproc: Store argument values per expansion, not per macro. 2024-10-07 17:32:27 +02:00
Henri Verbeet
e7c4867359 vkd3d-shader/glsl: Implement support for VKD3DSPR_IDXTEMP registers. 2024-10-07 17:31:20 +02:00
Henri Verbeet
944929d0da vkd3d-shader/glsl: Implement VKD3DSIH_IADD. 2024-10-07 17:31:20 +02:00
Henri Verbeet
4eed6b8887 vkd3d-shader/glsl: Add interpolation modifiers to interstage inputs and outputs. 2024-10-07 17:31:20 +02:00
Henri Verbeet
7b47528e4b vkd3d-shader/glsl: Handle SV_VERTEX_ID inputs. 2024-10-07 17:31:20 +02:00
Henri Verbeet
79455041f0 vkd3d-shader/glsl: Implement VKD3DSIH_EQO. 2024-10-07 17:31:19 +02:00
Nikolay Sivov
565698711b tests: Add a test for uniform array indexing. 2024-10-07 17:30:41 +02:00
Nikolay Sivov
d1c2ae3f0e vkd3d-shader/hlsl: Remove the type equality assertion for binary expression arguments. 2024-10-07 17:29:40 +02:00
Francisco Casas
0b989c9f37 vkd3d-shader/hlsl: Fix the conditions to discard default values.
Otherwise default_values for strings are lost.

Thanks to Nikolay Sivov for pointing this out.
2024-10-07 17:28:07 +02:00
Feifan He
b7314e2438 vkd3d-shader/msl: Handle signature element masks in the prologue and epilogue. 2024-10-07 17:21:52 +02:00
Feifan He
7c42da465a vkd3d-shader/msl: Generate the shader entry point prologue. 2024-10-07 17:21:52 +02:00
Feifan He
cd070f9995 vkd3d-shader/msl: Generate the shader entry point epilogue. 2024-10-07 17:21:52 +02:00
Feifan He
a88f3168e5 vkd3d-shader/msl: Generate the shader entry point. 2024-10-07 17:21:52 +02:00
Feifan He
577cc47740 vkd3d-shader/msl: Generate shader input structure declarations. 2024-10-07 17:21:52 +02:00
Feifan He
cd5917c648 vkd3d-shader/msl: Generate shader output structure declarations. 2024-10-07 17:21:27 +02:00