HLSL: handle clip and cull distance input builtin type conversion
HLSL allows a range of types for clip and cull distances. There are
three dimensions, including arrayness, vectorness, and semantic ID.
SPIR-V requires clip and cull distance be a single array of floats in
all cases.
This code provides input side conversion between the SPIR-V form and
the HLSL form. (Output conversion was added in PR #947 and #997).
This PR extends HlslParseContext::assignClipCullDistance to cope with
the input side conversion. Not as much changed as appears: there was
also a lot of renaming to reflect the fact that the code now handles
either direction.
Currently, non-{frag,vert} stages are not handled, and are explicitly
rejected.
Fixes #1026.
Showing
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
Test/hlsl.clipdistance-1.frag
0 → 100644
Test/hlsl.clipdistance-1.geom
0 → 100644
Test/hlsl.clipdistance-2.frag
0 → 100644
Test/hlsl.clipdistance-2.geom
0 → 100644
Test/hlsl.clipdistance-3.frag
0 → 100644
Test/hlsl.clipdistance-4.frag
0 → 100644
Test/hlsl.clipdistance-5.frag
0 → 100644
Test/hlsl.clipdistance-6.frag
0 → 100644
Test/hlsl.clipdistance-7.frag
0 → 100644
Test/hlsl.clipdistance-8.frag
0 → 100644
Test/hlsl.clipdistance-9.frag
0 → 100644
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment