GLSL/SPV: Propagaet precision qualifier from function to return value.

When a return value's type has no precision qualification (e.g., the return
expression is formed from a constructor), and the formal function return type
has a precision qualification, back propagate that from the return type to the
type of the return value's expression.
This commit is contained in:
John Kessenich 2020-07-15 23:38:47 -06:00
parent 4f72970ed3
commit 3d2391fb25
7 changed files with 462 additions and 455 deletions

View file

@ -61,7 +61,7 @@ ERROR: node is still EOpNull!
0:49 Constant:
0:49 0.000000
0:50 Branch: Return with expression
0:50 Construct float ( temp 4-element array of 7-element array of float)
0:50 Construct float ( temp 4-element array of 7-element array of highp float)
0:50 direct index ( temp 7-element array of highp float)
0:50 'a' ( in 5-element array of 7-element array of highp float)
0:50 Constant:
@ -76,7 +76,7 @@ ERROR: node is still EOpNull!
0:50 Constant:
0:50 3 (const int)
0:51 Branch: Return with expression
0:51 Construct float ( temp 4-element array of 7-element array of float)
0:51 Construct float ( temp 4-element array of 7-element array of highp float)
0:51 direct index ( temp 7-element array of highp float)
0:51 'a' ( in 5-element array of 7-element array of highp float)
0:51 Constant:
@ -91,7 +91,7 @@ ERROR: node is still EOpNull!
0:51 Constant:
0:51 3 (const int)
0:52 Branch: Return with expression
0:52 Construct float ( temp 4-element array of 7-element array of float)
0:52 Construct float ( temp 4-element array of 7-element array of highp float)
0:52 direct index ( temp 7-element array of highp float)
0:52 'a' ( in 5-element array of 7-element array of highp float)
0:52 Constant: