Commit Graph

339 Commits

Author SHA1 Message Date
Giovanni Mascellani
7f834f57e5 vkd3d-shader/ir: Validate that signatures are sensible for shader type. 2024-10-15 16:47:04 +02:00
Giovanni Mascellani
859b911b3a vkd3d-shader/ir: Validate the output control point count. 2024-10-15 16:47:04 +02:00
Giovanni Mascellani
bd3ba87747 vkd3d-shader/ir: Validate the input control point count. 2024-10-15 16:47:04 +02:00
Giovanni Mascellani
5dfaa26990 vkd3d-shader/ir: Validate the allowed data type and component count for SV_CullDistance. 2024-10-14 19:39:12 +02:00
Giovanni Mascellani
cd5718f59d vkd3d-shader/ir: Validate the allowed signatures and stages for SV_CullDistance. 2024-10-14 19:39:12 +02:00
Giovanni Mascellani
33972998a9 vkd3d-shader/ir: Validate the allowed data type and component count for SV_ClipDistance. 2024-10-14 19:39:12 +02:00
Giovanni Mascellani
0465549c9d vkd3d-shader/ir: Validate the allowed signatures and stages for SV_ClipDistance. 2024-10-14 19:39:12 +02:00
Giovanni Mascellani
20b3a4c362 vkd3d-shader/ir: Validate the allowed data type and component count for SV_Position. 2024-10-14 19:39:12 +02:00
Giovanni Mascellani
962ce961d4 vkd3d-shader/ir: Validate the allowed signatures and stages for SV_Position. 2024-10-14 19:39:12 +02:00
Giovanni Mascellani
2d452842ed vkd3d-shader/ir: Introduce a helper for validating MISCTYPE registers. 2024-10-14 15:42:00 +02:00
Giovanni Mascellani
15d8591a26 vkd3d-shader/ir: Introduce a helper for validating RASTOUT registers. 2024-10-14 15:42:00 +02:00
Giovanni Mascellani
7021a57193 vkd3d-shader/ir: Introduce a helper for validating UAV registers. 2024-10-14 15:42:00 +02:00
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
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
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
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
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
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
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
1256b4f862 vkd3d-shader/d3d-asm: Rename vkd3d_shader_trace() to vsir_program_trace(). 2024-10-08 22:04:59 +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
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
0e50825b83 vkd3d-shader/ir: Validate indices for UAV registers. 2024-10-03 19:08:33 +02:00
Giovanni Mascellani
3ab68c1e46 vkd3d-shader/ir: Validate indices for RESOURCE registers. 2024-10-03 19:08:33 +02:00
Giovanni Mascellani
ab23038367 vkd3d-shader/ir: Validate indices for SAMPLER registers. 2024-10-03 19:08:33 +02:00
Giovanni Mascellani
7e9dc8da97 vkd3d-shader/ir: Validate index count for MISCTYPE registers. 2024-10-02 22:12:47 +02:00
Giovanni Mascellani
99aebb1b31 vkd3d-shader/ir: Validate index count for RASTOUT registers. 2024-10-02 22:12:47 +02:00
Giovanni Mascellani
19d35d89cd vkd3d-shader/ir: Validate index count for DEPTHOUTLE registers. 2024-10-02 22:12:47 +02:00