 c44b95fdec
			
		
	
	
		c44b95fdec
		
	
	
	
	
		
			
			In HLSL, there are three (TODO: ??) dimensions of clip and cull distance values: * The semantic's value N, ala SV_ClipDistanceN. * The array demension, if the value is an array. * The vector element, if the value is a vector or array of vectors. In SPIR-V, clip and cull distance are arrays of scalar floats, always. This PR currently ignores the semantic N axis, and handles the other two axes by sequentially copying each vector element of each array member into sequential floats in the output array. Fixes: #946
		
			
				
	
	
		
			22 lines
		
	
	
		
			457 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			457 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| struct VS_INPUT         {
 | |
|     float4 Position             : POSITION;
 | |
| };
 | |
| 
 | |
| struct VS_OUTPUT        {
 | |
|     float4 Position             : SV_Position;
 | |
|     float4 ClipRect             : SV_ClipDistance0;  // vector in split struct
 | |
| };
 | |
| 
 | |
| VS_OUTPUT main(const VS_INPUT v)
 | |
| {
 | |
|     VS_OUTPUT           Output;
 | |
|     Output.Position     = 0;
 | |
| 
 | |
|     Output.ClipRect.x = 1;
 | |
|     Output.ClipRect.y = 2;
 | |
|     Output.ClipRect.z = 3;
 | |
|     Output.ClipRect.w = 4;
 | |
| 
 | |
|     return Output;
 | |
| }
 |