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
- Test/baseResults/hlsl.clipdistance-1.frag.out 190 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-1.frag.out
- Test/baseResults/hlsl.clipdistance-1.geom.out 153 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-1.geom.out
- Test/baseResults/hlsl.clipdistance-2.frag.out 419 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-2.frag.out
- Test/baseResults/hlsl.clipdistance-2.geom.out 171 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-2.geom.out
- Test/baseResults/hlsl.clipdistance-3.frag.out 190 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-3.frag.out
- Test/baseResults/hlsl.clipdistance-4.frag.out 262 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-4.frag.out
- Test/baseResults/hlsl.clipdistance-5.frag.out 325 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-5.frag.out
- Test/baseResults/hlsl.clipdistance-6.frag.out 399 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-6.frag.out
- Test/baseResults/hlsl.clipdistance-7.frag.out 385 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-7.frag.out
- Test/baseResults/hlsl.clipdistance-8.frag.out 285 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-8.frag.out
- Test/baseResults/hlsl.clipdistance-9.frag.out 250 additions, 0 deletionsTest/baseResults/hlsl.clipdistance-9.frag.out
- Test/baseResults/hlsl.semantic.geom.out 8 additions, 169 deletionsTest/baseResults/hlsl.semantic.geom.out
- Test/baseResults/hlsl.semantic.vert.out 10 additions, 10 deletionsTest/baseResults/hlsl.semantic.vert.out
- Test/hlsl.clipdistance-1.frag 6 additions, 0 deletionsTest/hlsl.clipdistance-1.frag
- Test/hlsl.clipdistance-1.geom 22 additions, 0 deletionsTest/hlsl.clipdistance-1.geom
- Test/hlsl.clipdistance-2.frag 7 additions, 0 deletionsTest/hlsl.clipdistance-2.frag
- Test/hlsl.clipdistance-2.geom 19 additions, 0 deletionsTest/hlsl.clipdistance-2.geom
- Test/hlsl.clipdistance-3.frag 8 additions, 0 deletionsTest/hlsl.clipdistance-3.frag
- Test/hlsl.clipdistance-4.frag 9 additions, 0 deletionsTest/hlsl.clipdistance-4.frag
- Test/hlsl.clipdistance-5.frag 9 additions, 0 deletionsTest/hlsl.clipdistance-5.frag
Loading
Please register or sign in to comment