Giovanni Mascellani
6e14d7ab90
vkd3d-shader/ir: Validate usage masks in shader signatures.
2024-10-10 19:58:00 +02:00
Giovanni Mascellani
71dccc0132
vkd3d-shader/ir: Do not emit an instruction number before starting validating instructions.
2024-10-10 19:58:00 +02:00
Giovanni Mascellani
3285d1ad8c
tests: Only destroy the device if the context has one in vulkan_test_context_destroy().
...
If vulkan_test_context_init_device() was never called, or failed to
create a device, the context won't have a device.
2024-10-10 19:53:18 +02:00
Feifan He
ccc48291b3
vkd3d-shader/msl: Implement support for VKD3DSPR_OUTPUT registers.
2024-10-10 19:45:34 +02:00
Feifan He
48a2207511
vkd3d-shader/msl: Implement support for VKD3DSPR_INPUT registers.
2024-10-10 19:43:12 +02:00
Feifan He
75e0cde045
vkd3d-shader/msl: Implement support for VKD3DSPR_CONSTBUFFER registers.
2024-10-10 19:41:31 +02:00
Feifan He
2d7832e738
vkd3d-shader/msl: Generate shader descriptor structure declarations.
2024-10-10 19:40:34 +02:00
Giovanni Mascellani
9cb4207c92
vkd3d-shader/spirv: Write spirv_compiler_emit_variable() in terms of spirv_compiler_emit_array_variable().
...
Essentially for code clarity, so that it's more obvious that a
non-array variable is indeed an array variable with no indices.
2024-10-09 13:15:25 +02:00
Henri Verbeet
aba45d0386
vkd3d-shader/glsl: Implement VKD3DSIH_CONTINUE.
2024-10-09 13:14:31 +02:00
Henri Verbeet
bc4aacd21e
vkd3d-shader/glsl: Implement VKD3DSIH_ULT.
2024-10-09 13:14:31 +02:00
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