Giovanni Mascellani
c60eecbac8
vkd3d-shader/ir: Introduce a helper for validating RESOURCE registers.
2024-10-14 15:42:00 +02:00
Giovanni Mascellani
edbf7349bd
vkd3d-shader/ir: Introduce a helper for validating SAMPLER registers.
2024-10-14 15:42:00 +02:00
Giovanni Mascellani
52761e689b
vkd3d-shader/ir: Introduce a helper for validating registers without indices.
2024-10-14 15:42:00 +02:00
Giovanni Mascellani
ce638b9cca
vkd3d-shader/ir: Introduce a helper for validating LABEL registers.
2024-10-14 15:42:00 +02:00
Giovanni Mascellani
92d1ba9188
vkd3d-shader/ir: Introduce a helper for validating SSA registers.
2024-10-14 15:42:00 +02:00
Giovanni Mascellani
1c43b2e55f
vkd3d-shader/ir: Introduce a helper for validating TEMP registers.
2024-10-14 15:42:00 +02:00
Nikolay Sivov
35d2df14d8
vkd3d-shader/fx: Add support for tracing string variables.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-14 15:40:46 +02:00
Nikolay Sivov
907b6705fe
vkd3d-shader/fx: Add support for parsing constant buffer elements.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-14 15:40:14 +02:00
Nikolay Sivov
6801ad9b7a
vkd3d-shader/fx: Introduce a parser/disassembler.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-14 15:20:41 +02:00
Elizabeth Figura
cd249a47b8
tests: Test FFP point size clamping.
2024-10-10 22:44:33 +02:00
Elizabeth Figura
1e3c1392bd
vkd3d-shader/ir: Allow controlling FFP point size clamping through vkd3d-shader parameters.
2024-10-10 22:44:26 +02:00
Elizabeth Figura
ec53e325b6
tests: Test FFP point size.
2024-10-10 22:30:35 +02:00
Henri Verbeet
3ddf46649b
tests/shader_runner: Trace the "clip-planes" cap.
2024-10-10 22:28:26 +02:00
Elizabeth Figura
54092286be
vkd3d-shader/ir: Allow controlling FFP point size through a vkd3d-shader parameter.
2024-10-10 22:25:09 +02:00
Elizabeth Figura
6ee17cf77e
vkd3d-shader/spirv: Implement shader point size.
2024-10-10 22:14:45 +02:00
Elizabeth Figura
a29a4288d2
tests: Add a test for shader point size output.
2024-10-10 21:50:30 +02:00
Elizabeth Figura
56e5fca501
vkd3d-shader/spirv: Always write the point size in vertex shaders.
...
Vulkan requires that point size be written.
There should be no backwards compatibility concern here, since the vertex shader
supplies point size with the lowest priority.
2024-10-10 21:50:30 +02:00
Giovanni Mascellani
f0e31dd6b3
vkd3d-shader/ir: Only allow PATCHCONST registers as destination parameteres in Hull Shaders.
2024-10-10 20:04:13 +02:00
Giovanni Mascellani
f2d181e65c
vkd3d-shader/ir: Only allow PATCHCONST registers as source parameteres in Hull and Domain Shaders.
2024-10-10 20:04:13 +02:00
Giovanni Mascellani
6cbe5ffa15
vkd3d-shader/ir: Disallow OUTPUT registers in source parameters.
2024-10-10 20:04:13 +02:00
Giovanni Mascellani
5b5a27dccb
vkd3d-shader/ir: Disallow INPUT registers in destination parameters.
2024-10-10 20:04:13 +02:00
Henri Verbeet
bf71b13797
vkd3d-shader/glsl: Implement support for compute shaders.
2024-10-10 20:00:45 +02:00
Henri Verbeet
fb17ba18ae
vkd3d-shader/glsl: Implement VKD3DSIH_STORE_UAV_TYPED.
2024-10-10 20:00:45 +02:00
Henri Verbeet
8e47ecbd92
vkd3d-shader/glsl: Use the semantic index for shader_out_* declarations.
...
Because that's what we use in shader_glsl_print_sysval_name(). Fragment
shaders like the ones from uav-rwtexture.shader_test that output to
sv_target1 would declare "shader_out_0", but then store to
"shader_out_1" in the epilogue.
2024-10-10 20:00:45 +02:00
Henri Verbeet
afb1a2610e
vkd3d-shader/glsl: Use VKD3D_SHADER_ERROR_GLSL_UNSUPPORTED for unsupported CBV descriptor arrays.
2024-10-10 20:00:45 +02:00
Henri Verbeet
845d6f9134
vkd3d-shader/ir: Remove VKD3DSIH_DCL_UAV_TYPED instructions.
2024-10-10 20:00:45 +02:00
Giovanni Mascellani
080f25c583
vkd3d-shader/ir: Do not search for signature elements using a scalar write mask.
...
The fallback code was added when shader_signature_find_element_for_reg()
would crash when unable to find the requested signature element.
Now it doesn't any more, and the second search is redundant.
2024-10-10 20:00:19 +02:00
Giovanni Mascellani
690c47dbf8
vkd3d-shader/ir: Validate that constant interpolation is used with integer types.
2024-10-10 19:58:00 +02:00
Giovanni Mascellani
e366fc3ad6
vkd3d-shader/ir: Validate interpolation mode in shader signatures.
2024-10-10 19:58:00 +02:00
Giovanni Mascellani
831a797837
vkd3d-shader/ir: Validate minimum precision in shader signatures.
2024-10-10 19:58:00 +02:00
Giovanni Mascellani
7b1bc5ca74
vkd3d-shader/ir: Validate component types in shader signatures.
2024-10-10 19:58:00 +02:00
Giovanni Mascellani
5034e1eeb5
vkd3d-shader/ir: Validate system value semantics in shader signatures.
2024-10-10 19:58:00 +02:00
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