-
Notifications
You must be signed in to change notification settings - Fork 860
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2294 from KhronosGroup/fix-arg-precision
Fix #2293: Get correct RelaxedPrecision settings for various ways of passing arguments to formal parameters.
- Loading branch information
Showing
9 changed files
with
139 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#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) { } | ||
|
||
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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters