 d78ca6297d
			
		
	
	
		d78ca6297d
		
	
	
	
	
		
			
			git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27760 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 420 core
 | |
| 
 | |
| layout(binding = 0) uniform atomic_uint counter;
 | |
| 
 | |
| uint func(atomic_uint c)
 | |
| {
 | |
|     return atomicCounterIncrement(c);
 | |
| }
 | |
| 
 | |
| uint func2(out atomic_uint c) // ERROR
 | |
| {
 | |
|     return counter;           // ERROR, type mismatch
 | |
|     return atomicCounter(counter);
 | |
| }
 | |
| 
 | |
| void main()
 | |
| {
 | |
|      atomic_uint non_uniform_counter; // ERROR
 | |
|      uint val = atomicCounter(counter);
 | |
|      atomicCounterDecrement(counter);
 | |
| }
 | |
| 
 | |
| layout(binding = 1, offset = 3) uniform atomic_uint countArr[4];
 | |
| uniform int i;
 | |
| 
 | |
| void opac()
 | |
| {
 | |
|     counter + counter;  // ERROR
 | |
|     -counter;           // ERROR
 | |
|     int a[3];
 | |
|     a[counter];         // ERROR
 | |
|     countArr[2];
 | |
|     countArr[i];
 | |
|     counter = 4;        // ERROR
 | |
| }
 | |
| 
 | |
| in atomic_uint acin;    // ERROR
 | |
| atomic_uint acg;        // ERROR
 | |
| uniform atomic_uint;
 | |
| uniform atomic_uint aNoBind;                          // ERROR, no binding
 | |
| layout(binding=0, offset=32) uniform atomic_uint aOffset;
 | |
| layout(binding=0, offset=4) uniform atomic_uint;
 | |
| layout(binding=0) uniform atomic_uint bar3;           // offset is 4
 | |
| layout(binding=0) uniform atomic_uint ac[3];          // offset = 8
 | |
| layout(binding=0) uniform atomic_uint ad;             // offset = 20
 | |
| layout(offset=8) uniform atomic_uint bar4;            // ERROR, no binding
 | |
| layout(binding = 0, offset = 12) uniform atomic_uint overlap;  // ERROR, overlapping offsets
 | |
| layout(binding = 20) uniform atomic_uint bigBind;     // ERROR, binding too big
 |