vkd3d-shader/tpf: Allow I/O index ranges to not intersect a signature element for a given register.

The current TPF validator enforces that for each register involved
in a DCL_INDEX_RANGE instruction there must be a signature element
for that register and the DCL_INDEX_RANGE write mask. This is an
excessively strong request, and causes some shaders from The Falconeer
to be invalidly rejected.

The excessively strong check was needed to avoid triggering a bug
in the I/O normaliser. Since that bug is now solved, the check
can be relaxed.
This commit is contained in:
Giovanni Mascellani
2024-09-16 16:11:40 +02:00
committed by Henri Verbeet
parent 4b84fb486b
commit 665c29f0be
Notes: Henri Verbeet 2025-02-19 18:01:43 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Francisco Casas (@fcasas)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1332
2 changed files with 4 additions and 3 deletions

View File

@@ -303,5 +303,5 @@ void main(patch_constant_data input,
}
[test]
todo draw 3 control point patch list 3
todo(mvk) probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0)
if(!llvmpipe) todo(glsl | msl | mvk & vulkan) draw 3 control point patch list 3
if(!llvmpipe) todo(mvk) probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0)