Commit Graph

452 Commits

Author SHA1 Message Date
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