Because it is valid in HLSL to alias bindings: A) remove validation that aliasing is not done B) make the algorithms tolerate aliasing
		
			
				
	
	
		
			10 lines
		
	
	
		
			254 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			10 lines
		
	
	
		
			254 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
AppendStructuredBuffer<uint> Buf1 : register(u1);
 | 
						|
AppendStructuredBuffer<uint> Buf2 : register(u2);
 | 
						|
AppendStructuredBuffer<uint> Buf3 : register(u1);
 | 
						|
 | 
						|
float4 main() : SV_Target
 | 
						|
{
 | 
						|
	Buf1.Append(10u);
 | 
						|
	Buf2.Append(20u);
 | 
						|
	return float4(1.0, 3.0, 5.0, 1.0);
 | 
						|
} |