 05a62bf528
			
		
	
	
		05a62bf528
		
	
	
	
	
		
			
			git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29347 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #version 430 core
 | |
| 
 | |
| layout(local_size_x = 2) in;
 | |
| layout(local_size_x = 16) in;     // ERROR, changing
 | |
| layout(local_size_z = 4096) in;   // ERROR, too large
 | |
| layout(local_size_x = 2) in;
 | |
| 
 | |
| const int total = gl_MaxComputeWorkGroupCount.y 
 | |
|                 + gl_MaxComputeUniformComponents
 | |
|                 + gl_MaxComputeTextureImageUnits
 | |
|                 + gl_MaxComputeImageUniforms
 | |
|                 + gl_MaxComputeAtomicCounters
 | |
|                 + gl_MaxComputeAtomicCounterBuffers;
 | |
| 
 | |
| buffer ShaderStorageBlock
 | |
| {
 | |
|     int value;
 | |
|     float values[];
 | |
| };
 | |
| 
 | |
| buffer InvalidShaderStorageBlock
 | |
| {
 | |
|     float values[];  // ERROR
 | |
|     int value;
 | |
| } invalid;
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     barrier();
 | |
|     memoryBarrier();
 | |
|     memoryBarrierAtomicCounter();
 | |
|     memoryBarrierBuffer();
 | |
|     memoryBarrierShared();
 | |
|     memoryBarrierImage();
 | |
|     groupMemoryBarrier();
 | |
|     value = int(values[gl_LocalInvocationIndex]);
 | |
| 
 | |
|     int a;
 | |
|     if (a > 10)
 | |
|         barrier();
 | |
| }
 | |
| 
 | |
| layout(location = 2) in vec3 v3;      // ERROR
 | |
| in float f;                           // ERROR
 | |
| out float fo;                         // ERROR
 | |
| 
 | |
| shared vec4 s;
 | |
| layout(location = 2) shared vec4 sl;  // ERROR
 | |
| shared float fs = 4.2;                // ERROR
 | |
| 
 | |
| layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out;  // ERROR
 | |
| 
 | |
| int arrX[gl_WorkGroupSize.x];
 | |
| int arrY[gl_WorkGroupSize.y];
 | |
| int arrZ[gl_WorkGroupSize.z];
 | |
| 
 | |
| readonly buffer roblock
 | |
| {
 | |
|     int value;
 | |
|     float values[];
 | |
| } ro;
 | |
| 
 | |
| void foo()
 | |
| {
 | |
|     ro.values[2] = 4.7;        // ERROR, readonly
 | |
|     ro.values.length();
 | |
|     barrier();
 | |
| }
 |