 435dd8028b
			
		
	
	
		435dd8028b
		
	
	
	
	
		
			
			This simplifies and enforces use of precision in many more places, to help avoid accidental loss of RelaxedPrecision through intermediate operations. Known fixes are: - ?: - function return values with mis-matched precision - precision of function return values when a copy was needed to fix types
		
			
				
	
	
		
			28 lines
		
	
	
		
			568 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			568 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 310 es
 | |
| 
 | |
| precision mediump float;
 | |
| 
 | |
| void fooConst(const in float f, const in highp float g) { }
 | |
| 
 | |
| void foo(in float f, in highp float g) { }
 | |
| 
 | |
|       float retM (      float x) { return x; }
 | |
| highp float retH (highp float x) { return x; }
 | |
|       float retHM(highp float x) { return x; }
 | |
| highp float retMH(      float x) { return x; }
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     float aM, bM;
 | |
|     highp float aH, bH;
 | |
|     fooConst(aM, bM);   // must copy bM
 | |
|     fooConst(aH, bH);   // must copy aH
 | |
|     foo(aM, bM);
 | |
|     foo(aH, bH);
 | |
| 
 | |
|     retM(aM);
 | |
|     retH(aH);
 | |
|     retHM(aH);
 | |
|     retMH(aM);
 | |
| }
 |