 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
		
			
				
	
	
		
			166 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| spv.precisionArgs.frag
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 8000a
 | |
| // Id's are bound by 83
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main"
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Source ESSL 310
 | |
|                               Name 4  "main"
 | |
|                               Name 10  "fooConst(f1;f1;"
 | |
|                               Name 8  "f"
 | |
|                               Name 9  "g"
 | |
|                               Name 16  "foo(f1;f1;"
 | |
|                               Name 14  "f"
 | |
|                               Name 15  "g"
 | |
|                               Name 20  "retM(f1;"
 | |
|                               Name 19  "x"
 | |
|                               Name 23  "retH(f1;"
 | |
|                               Name 22  "x"
 | |
|                               Name 26  "retHM(f1;"
 | |
|                               Name 25  "x"
 | |
|                               Name 29  "retMH(f1;"
 | |
|                               Name 28  "x"
 | |
|                               Name 47  "aM"
 | |
|                               Name 49  "bM"
 | |
|                               Name 51  "arg"
 | |
|                               Name 54  "aH"
 | |
|                               Name 56  "bH"
 | |
|                               Name 58  "arg"
 | |
|                               Name 61  "param"
 | |
|                               Name 63  "param"
 | |
|                               Name 66  "param"
 | |
|                               Name 68  "param"
 | |
|                               Name 71  "param"
 | |
|                               Name 74  "param"
 | |
|                               Name 77  "param"
 | |
|                               Name 80  "param"
 | |
|                               Decorate 8(f) RelaxedPrecision
 | |
|                               Decorate 14(f) RelaxedPrecision
 | |
|                               Decorate 20(retM(f1;) RelaxedPrecision
 | |
|                               Decorate 19(x) RelaxedPrecision
 | |
|                               Decorate 26(retHM(f1;) RelaxedPrecision
 | |
|                               Decorate 28(x) RelaxedPrecision
 | |
|                               Decorate 31 RelaxedPrecision
 | |
|                               Decorate 38 RelaxedPrecision
 | |
|                               Decorate 39 RelaxedPrecision
 | |
|                               Decorate 42 RelaxedPrecision
 | |
|                               Decorate 47(aM) RelaxedPrecision
 | |
|                               Decorate 48 RelaxedPrecision
 | |
|                               Decorate 49(bM) RelaxedPrecision
 | |
|                               Decorate 50 RelaxedPrecision
 | |
|                               Decorate 58(arg) RelaxedPrecision
 | |
|                               Decorate 59 RelaxedPrecision
 | |
|                               Decorate 61(param) RelaxedPrecision
 | |
|                               Decorate 62 RelaxedPrecision
 | |
|                               Decorate 64 RelaxedPrecision
 | |
|                               Decorate 66(param) RelaxedPrecision
 | |
|                               Decorate 71(param) RelaxedPrecision
 | |
|                               Decorate 72 RelaxedPrecision
 | |
|                               Decorate 73 RelaxedPrecision
 | |
|                               Decorate 79 RelaxedPrecision
 | |
|                               Decorate 80(param) RelaxedPrecision
 | |
|                               Decorate 81 RelaxedPrecision
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeFloat 32
 | |
|                7:             TypeFunction 2 6(float) 6(float)
 | |
|               12:             TypePointer Function 6(float)
 | |
|               13:             TypeFunction 2 12(ptr) 12(ptr)
 | |
|               18:             TypeFunction 6(float) 12(ptr)
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|           47(aM):     12(ptr) Variable Function
 | |
|           49(bM):     12(ptr) Variable Function
 | |
|          51(arg):     12(ptr) Variable Function
 | |
|           54(aH):     12(ptr) Variable Function
 | |
|           56(bH):     12(ptr) Variable Function
 | |
|          58(arg):     12(ptr) Variable Function
 | |
|        61(param):     12(ptr) Variable Function
 | |
|        63(param):     12(ptr) Variable Function
 | |
|        66(param):     12(ptr) Variable Function
 | |
|        68(param):     12(ptr) Variable Function
 | |
|        71(param):     12(ptr) Variable Function
 | |
|        74(param):     12(ptr) Variable Function
 | |
|        77(param):     12(ptr) Variable Function
 | |
|        80(param):     12(ptr) Variable Function
 | |
|               48:    6(float) Load 47(aM)
 | |
|               50:    6(float) Load 49(bM)
 | |
|                               Store 51(arg) 50
 | |
|               52:    6(float) Load 51(arg)
 | |
|               53:           2 FunctionCall 10(fooConst(f1;f1;) 48 52
 | |
|               55:    6(float) Load 54(aH)
 | |
|               57:    6(float) Load 56(bH)
 | |
|                               Store 58(arg) 55
 | |
|               59:    6(float) Load 58(arg)
 | |
|               60:           2 FunctionCall 10(fooConst(f1;f1;) 59 57
 | |
|               62:    6(float) Load 47(aM)
 | |
|                               Store 61(param) 62
 | |
|               64:    6(float) Load 49(bM)
 | |
|                               Store 63(param) 64
 | |
|               65:           2 FunctionCall 16(foo(f1;f1;) 61(param) 63(param)
 | |
|               67:    6(float) Load 54(aH)
 | |
|                               Store 66(param) 67
 | |
|               69:    6(float) Load 56(bH)
 | |
|                               Store 68(param) 69
 | |
|               70:           2 FunctionCall 16(foo(f1;f1;) 66(param) 68(param)
 | |
|               72:    6(float) Load 47(aM)
 | |
|                               Store 71(param) 72
 | |
|               73:    6(float) FunctionCall 20(retM(f1;) 71(param)
 | |
|               75:    6(float) Load 54(aH)
 | |
|                               Store 74(param) 75
 | |
|               76:    6(float) FunctionCall 23(retH(f1;) 74(param)
 | |
|               78:    6(float) Load 54(aH)
 | |
|                               Store 77(param) 78
 | |
|               79:    6(float) FunctionCall 26(retHM(f1;) 77(param)
 | |
|               81:    6(float) Load 47(aM)
 | |
|                               Store 80(param) 81
 | |
|               82:    6(float) FunctionCall 29(retMH(f1;) 80(param)
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 10(fooConst(f1;f1;):           2 Function None 7
 | |
|             8(f):    6(float) FunctionParameter
 | |
|             9(g):    6(float) FunctionParameter
 | |
|               11:             Label
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|   16(foo(f1;f1;):           2 Function None 13
 | |
|            14(f):     12(ptr) FunctionParameter
 | |
|            15(g):     12(ptr) FunctionParameter
 | |
|               17:             Label
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|     20(retM(f1;):    6(float) Function None 18
 | |
|            19(x):     12(ptr) FunctionParameter
 | |
|               21:             Label
 | |
|               31:    6(float) Load 19(x)
 | |
|                               ReturnValue 31
 | |
|                               FunctionEnd
 | |
|     23(retH(f1;):    6(float) Function None 18
 | |
|            22(x):     12(ptr) FunctionParameter
 | |
|               24:             Label
 | |
|               34:    6(float) Load 22(x)
 | |
|                               ReturnValue 34
 | |
|                               FunctionEnd
 | |
|    26(retHM(f1;):    6(float) Function None 18
 | |
|            25(x):     12(ptr) FunctionParameter
 | |
|               27:             Label
 | |
|               38:     12(ptr) Variable Function
 | |
|               37:    6(float) Load 25(x)
 | |
|                               Store 38 37
 | |
|               39:    6(float) Load 38
 | |
|                               ReturnValue 39
 | |
|                               FunctionEnd
 | |
|    29(retMH(f1;):    6(float) Function None 18
 | |
|            28(x):     12(ptr) FunctionParameter
 | |
|               30:             Label
 | |
|               43:     12(ptr) Variable Function
 | |
|               42:    6(float) Load 28(x)
 | |
|                               Store 43 42
 | |
|               44:    6(float) Load 43
 | |
|                               ReturnValue 44
 | |
|                               FunctionEnd
 |