860bb59c89
vkd3d-shader/ir: Validate index count for OUTPOINTID registers.
2024-11-23 23:15:39 +01:00
0c3c4e0563
vkd3d-shader/ir: Validate index count for PRIMID registers.
2024-11-23 23:15:39 +01:00
e383834049
vkd3d-shader/ir: Check that tessellation system values only appear in the patch constant signature.
2024-11-21 19:28:46 +01:00
018f3e8094
vkd3d-shader/ir: Validate tessellation system values for the given tessellator domain.
2024-11-21 19:28:46 +01:00
1ed8d907b3
vkd3d-shader/ir: Keep track of the tessellator domain in struct vsir_program.
2024-11-21 19:28:46 +01:00
49ec9add38
vkd3d-shader/ir: Check that semantic indices for tessellation system values are not duplicated.
2024-11-21 19:28:46 +01:00
8d8de1db10
vkd3d-shader/ir: Validate the semantic index for tessellation system values.
2024-11-21 19:28:46 +01:00
05c87b02f6
vkd3d-shader/ir: Return an error when the FLAT_INTERPOLATION parameter is invalid.
2024-11-20 14:53:58 +01:00
36510cd0be
vkd3d-shader/ir: Move applying flat interpolation to a dedicated pass.
...
I/O normalisation is already a rather complicated pass that does a
lot of things, so it's better to keep anything not strictly
related to it somewhere else.
2024-11-20 14:53:47 +01:00
0dc07f5cce
vkd3d-shader: Silence a spurious -Wmaybe-uninitialized in vsir_program_insert_alpha_test().
2024-11-14 14:12:13 +01:00
2996ad6bd2
vkd3d-shader/dxil: Implement DX intrinsic SampleIndex.
2024-11-13 16:18:13 +01:00
3d53d90d4b
vkd3d-shader/ir: Add a secondary sort by sysval for signature element register merges.
...
Fixes output signature normalisation failures in Silent Hill 2 caused by
failure of shader_signature_find_element_for_reg().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57359
2024-11-13 13:32:32 +01:00
fb8660c196
vkd3d-shader/ir: Add an is_pre_rasterization_shader() helper.
2024-11-05 20:00:27 +01:00
a10ee075ff
vkd3d-shader/ir: Force fog and point size to 1 component when normalizing I/O.
2024-11-05 19:57:41 +01:00
e6c84862a8
vkd3d-shader/ir: Search for SV_TARGET0 vsir_program_insert_alpha_test().
...
As opposed to any SV_TARGET with register index 0. We care about the
semantic index here, not the register index.
2024-11-04 15:32:05 +01:00
1b0248f31b
vkd3d-shader/ir: Specifically search for SV_POSITION0 in vsir_program_insert_clip_planes().
2024-11-04 15:30:44 +01:00
7e4ab9c7c0
vkd3d-shader: Write zeroes for uninitialized outputs in vsir_program_remap_output_signature().
2024-11-04 15:26:55 +01:00
e781abc3fb
vkd3d-shader: Write uninitialized components of COLOR0 as 1.
2024-11-04 15:21:09 +01:00
cc9fcee676
vkd3d-shader: Reduce masks to only read components in vsir_program_remap_output_signature().
2024-11-04 15:11:54 +01:00
61bda1c054
vkd3d-shader: Always ensure a RET at the end of a program.
2024-11-04 15:06:02 +01:00
1113d24a70
vkd3d-shader/ir: Store the global flags in struct vsir_program.
2024-10-22 20:40:31 +02:00
a492d64fef
vkd3d-shader/ir: Allow controlling point sprite through a parameter.
2024-10-22 19:14:02 +02:00
ed4d45355a
vkd3d-shader/ir: Represent the normalisation level with an enumeration.
2024-10-21 18:21:39 +02:00
768b19d410
vkd3d-shader/ir: Validate control point counts correctly.
...
Allow zero input control points for domain shaders, and zero output
control points for hull shaders.
2024-10-21 18:10:13 +02:00
03ad04c890
vkd3d-shader/ir: Validate OUTCONTROLPOINT registers.
2024-10-17 17:34:55 +02:00