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);
 | 
						|
}
 |