When arguments are copied to make space for a writable formal parameter, and the formal parameter is relaxed precision, make the copy also relaxed precision.
93 lines
4.3 KiB
Plaintext
Executable File
93 lines
4.3 KiB
Plaintext
Executable File
spv.precisionArgs.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 42
|
|
|
|
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 18 "aM"
|
|
Name 20 "bM"
|
|
Name 22 "arg"
|
|
Name 25 "aH"
|
|
Name 27 "bH"
|
|
Name 29 "arg"
|
|
Name 32 "param"
|
|
Name 34 "param"
|
|
Name 37 "param"
|
|
Name 39 "param"
|
|
Decorate 8(f) RelaxedPrecision
|
|
Decorate 14(f) RelaxedPrecision
|
|
Decorate 18(aM) RelaxedPrecision
|
|
Decorate 19 RelaxedPrecision
|
|
Decorate 20(bM) RelaxedPrecision
|
|
Decorate 21 RelaxedPrecision
|
|
Decorate 29(arg) RelaxedPrecision
|
|
Decorate 30 RelaxedPrecision
|
|
Decorate 32(param) RelaxedPrecision
|
|
Decorate 33 RelaxedPrecision
|
|
Decorate 35 RelaxedPrecision
|
|
Decorate 37(param) 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)
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
18(aM): 12(ptr) Variable Function
|
|
20(bM): 12(ptr) Variable Function
|
|
22(arg): 12(ptr) Variable Function
|
|
25(aH): 12(ptr) Variable Function
|
|
27(bH): 12(ptr) Variable Function
|
|
29(arg): 12(ptr) Variable Function
|
|
32(param): 12(ptr) Variable Function
|
|
34(param): 12(ptr) Variable Function
|
|
37(param): 12(ptr) Variable Function
|
|
39(param): 12(ptr) Variable Function
|
|
19: 6(float) Load 18(aM)
|
|
21: 6(float) Load 20(bM)
|
|
Store 22(arg) 21
|
|
23: 6(float) Load 22(arg)
|
|
24: 2 FunctionCall 10(fooConst(f1;f1;) 19 23
|
|
26: 6(float) Load 25(aH)
|
|
28: 6(float) Load 27(bH)
|
|
Store 29(arg) 26
|
|
30: 6(float) Load 29(arg)
|
|
31: 2 FunctionCall 10(fooConst(f1;f1;) 30 28
|
|
33: 6(float) Load 18(aM)
|
|
Store 32(param) 33
|
|
35: 6(float) Load 20(bM)
|
|
Store 34(param) 35
|
|
36: 2 FunctionCall 16(foo(f1;f1;) 32(param) 34(param)
|
|
38: 6(float) Load 25(aH)
|
|
Store 37(param) 38
|
|
40: 6(float) Load 27(bH)
|
|
Store 39(param) 40
|
|
41: 2 FunctionCall 16(foo(f1;f1;) 37(param) 39(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
|