 41a36bbb2f
			
		
	
	
		41a36bbb2f
		
	
	
	
	
		
			
			git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22066 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 300 es
 | |
| in uvec2 badu;  // ERROR
 | |
| flat in uvec2 t;
 | |
| in highp float f;
 | |
| in highp vec2 tc;
 | |
| in bool bad;    // ERROR
 | |
| uniform uvec4 v;
 | |
| uniform int i;
 | |
| uniform bool b;
 | |
| 
 | |
| out uvec4 c;
 | |
| 
 | |
| uniform lowp usampler2D usampler;
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     int count = 1;
 | |
| 
 | |
|     uint u = t.y + 3u;
 | |
|     const uint cu1error = 0xFFFFFFFF;  // ERROR
 | |
|     const uint cu1 = 0xFFFFFFFFU;
 | |
|     const uint cu2 = -1u;              // 0xFFFFFFFF
 | |
|     const uint cu3 = 1U;
 | |
|     const uint cu4error = 1;           // ERROR
 | |
|     const uint cu4 = 1u;
 | |
| 
 | |
|     if (cu1 == cu2)
 | |
|         count *= 2;  // done
 | |
|     if (cu3 == cu4)
 | |
|         count *= 3;  // done
 | |
|     if (cu2 == cu3)
 | |
|         count *= 5;  // not done
 | |
| 
 | |
|     const uint cushiftediierror = 0xFFFFFFFF  >> 10;   // ERROR
 | |
|     const  int  cshiftedii      = 0xFFFFFFFF  >> 10;
 | |
|     const uint cushiftedui      = 0xFFFFFFFFu >> 10;
 | |
|     const uint cushiftediuerror = 0xFFFFFFFF  >> 10u;  // ERROR
 | |
|     const  int  cshiftediu      = 0xFFFFFFFF  >> 10u;
 | |
|     const uint cushifteduu      = 0xFFFFFFFFu >> 10u;
 | |
| 
 | |
|     if (cshiftedii == cshiftediu)
 | |
|         count *= 7;  // done
 | |
|     if (cushiftedui == cushifteduu)
 | |
|         count *= 11; // done
 | |
|     if (cshiftedii == int(cushiftedui))
 | |
|         count *= 13; // not done
 | |
| 
 | |
|     uint shiftediierror = 0xFFFFFFFF  >> 10;   // ERROR
 | |
|      int shiftedii      = 0xFFFFFFFF  >> 10;
 | |
|     uint shiftedui      = 0xFFFFFFFFu >> 10;
 | |
|     uint shiftediuerror = 0xFFFFFFFF  >> 10u;  // ERROR
 | |
|      int shiftediu      = 0xFFFFFFFF  >> 10u;
 | |
|     uint shifteduu      = 0xFFFFFFFFu >> 10u;
 | |
| 
 | |
|     if (shiftedii == shiftediu)
 | |
|         c = texture(usampler, tc);
 | |
|     if (shiftedui == shifteduu)
 | |
|         c = texture(usampler, tc + float(1u));
 | |
|     if (shiftedii == int(shiftedui))
 | |
|         c = texture(usampler, tc - vec2(2u));
 | |
| 
 | |
|     if (t.x > 4u) {
 | |
|         float af = float(u);
 | |
|         bool ab = bool(u);
 | |
|         int ai = int(u);
 | |
| 
 | |
|         c += uvec4(uint(af), uint(ab), uint(ai), count);
 | |
|     }
 | |
| 
 | |
|     const uint cmask1 = 0x0A1u;
 | |
|     const uint cmask2 = 0xA10u;
 | |
|     const uint cmask3 = cmask1 << 4;
 | |
|     const uint cmask4 = 0xAB1u;
 | |
| 
 | |
|     if (cmask3 == cmask2)
 | |
|         count *= 17;  // done
 | |
| 
 | |
|     if ((cmask3 & cmask1) != 0u)
 | |
|         count *= 19; // not done
 | |
| 
 | |
|     if ((cmask1 | cmask3) == cmask4)
 | |
|         count *= 23; // done
 | |
| 
 | |
|     if ((cmask1 ^ cmask4) == 0xA10u)
 | |
|         count *= 27; // done
 | |
| 
 | |
|     uint mask1 = 0x0A1u;
 | |
|     uint mask2 = 0xA10u;
 | |
|     uint mask3 = mask1 << 4;
 | |
|     uint mask4 = 0xAB1u;
 | |
| 
 | |
|     if (mask3 == mask2)
 | |
|         count *= 100;
 | |
| 
 | |
|     if ((mask3 & mask1) != 0u)
 | |
|         count *= 101;
 | |
| 
 | |
|     if ((mask1 | mask3) == mask4)
 | |
|         count *= 102;
 | |
| 
 | |
|     if ((mask1 ^ mask4) == 0xA10u)
 | |
|         count *= 103;
 | |
| 
 | |
|     c += uvec4(count);	
 | |
| }
 |