mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-13 21:50:06 +00:00
e2cda3c2d7
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.
9 lines
273 B
GLSL
9 lines
273 B
GLSL
|
|
// Test packing 0 and 1 semantics into single array[4], from in fn params.
|
|
float4 main(in float4 Position : SV_Position,
|
|
in float3 clip0 : SV_ClipDistance0,
|
|
in float clip1 : SV_ClipDistance1) : SV_Target0
|
|
{
|
|
return Position + clip0.x + clip1;
|
|
}
|