HLSL: Improve setting and testing of interpolation qualifiers.
Notably, use of 'linear' on a non-input could mark it as an input.
This commit is contained in:
parent
d21baed6bc
commit
34e7ee79bb
@ -6,9 +6,10 @@ WARNING: 0:30: 'register' : ignoring shader_profile
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float)
|
||||||
0:34 Function Parameters:
|
0:34 Function Parameters:
|
||||||
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
||||||
|
0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:39 Compare Equal (temp bool)
|
0:39 Compare Equal (temp bool)
|
||||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||||
@ -18,10 +19,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:40 's2' (global structure{temp 4-component vector of float i})
|
0:40 's2' (global structure{temp 4-component vector of float i})
|
||||||
0:40 Constant:
|
0:40 Constant:
|
||||||
0:40 0 (const int)
|
0:40 0 (const int)
|
||||||
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||||
0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
|
||||||
0:40 Constant:
|
|
||||||
0:40 7 (const int)
|
|
||||||
0:42 Sequence
|
0:42 Sequence
|
||||||
0:42 move second child to first child (temp 4-component vector of float)
|
0:42 move second child to first child (temp 4-component vector of float)
|
||||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||||
@ -30,11 +28,18 @@ gl_FragCoord origin is upper left
|
|||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
||||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||||
0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
|
||||||
0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float)
|
0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float)
|
||||||
0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float)
|
0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float)
|
||||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||||
|
0:? 'a' (layout(location=1 ) smooth in 4-component vector of float)
|
||||||
|
0:? 'b' (layout(location=2 ) flat in bool)
|
||||||
|
0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float)
|
||||||
|
0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float)
|
||||||
|
0:? 'ff1' (in bool Face)
|
||||||
|
0:? 'ff2' (layout(location=5 offset=4 ) in bool)
|
||||||
|
0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
|
||||||
|
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -43,9 +48,10 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float)
|
||||||
0:34 Function Parameters:
|
0:34 Function Parameters:
|
||||||
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
||||||
|
0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:39 Compare Equal (temp bool)
|
0:39 Compare Equal (temp bool)
|
||||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||||
@ -55,10 +61,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:40 's2' (global structure{temp 4-component vector of float i})
|
0:40 's2' (global structure{temp 4-component vector of float i})
|
||||||
0:40 Constant:
|
0:40 Constant:
|
||||||
0:40 0 (const int)
|
0:40 0 (const int)
|
||||||
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||||
0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
|
||||||
0:40 Constant:
|
|
||||||
0:40 7 (const int)
|
|
||||||
0:42 Sequence
|
0:42 Sequence
|
||||||
0:42 move second child to first child (temp 4-component vector of float)
|
0:42 move second child to first child (temp 4-component vector of float)
|
||||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||||
@ -67,20 +70,27 @@ gl_FragCoord origin is upper left
|
|||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
||||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||||
0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
|
||||||
0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float)
|
0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float)
|
||||||
0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float)
|
0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float)
|
||||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||||
|
0:? 'a' (layout(location=1 ) smooth in 4-component vector of float)
|
||||||
|
0:? 'b' (layout(location=2 ) flat in bool)
|
||||||
|
0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float)
|
||||||
|
0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float)
|
||||||
|
0:? 'ff1' (in bool Face)
|
||||||
|
0:? 'ff2' (layout(location=5 offset=4 ) in bool)
|
||||||
|
0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
|
||||||
|
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 46
|
// Id's are bound by 52
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "PixelShaderFunction" 34 36
|
EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 41 43 45 48 49 50 51
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Name 4 "PixelShaderFunction"
|
Name 4 "PixelShaderFunction"
|
||||||
Name 8 "FS"
|
Name 8 "FS"
|
||||||
@ -89,33 +99,47 @@ gl_FragCoord origin is upper left
|
|||||||
Name 19 ""
|
Name 19 ""
|
||||||
MemberName 19 0 "i"
|
MemberName 19 0 "i"
|
||||||
Name 21 "s2"
|
Name 21 "s2"
|
||||||
Name 25 ""
|
Name 25 "ff4"
|
||||||
MemberName 25 0 "a"
|
Name 30 "@entryPointOutput"
|
||||||
MemberName 25 1 "b"
|
Name 31 "input"
|
||||||
MemberName 25 2 "c"
|
Name 34 "myS"
|
||||||
MemberName 25 3 "d"
|
MemberName 34(myS) 0 "b"
|
||||||
MemberName 25 4 "ff1"
|
MemberName 34(myS) 1 "c"
|
||||||
MemberName 25 5 "ff2"
|
MemberName 34(myS) 2 "a"
|
||||||
MemberName 25 6 "ff3"
|
MemberName 34(myS) 3 "d"
|
||||||
MemberName 25 7 "ff4"
|
Name 36 "s1"
|
||||||
Name 27 "s4"
|
Name 39 "ff5"
|
||||||
Name 34 "@entryPointOutput"
|
Name 40 "ff6"
|
||||||
Name 36 "input"
|
Name 41 "a"
|
||||||
Name 39 "myS"
|
Name 43 "b"
|
||||||
MemberName 39(myS) 0 "b"
|
Name 45 "c"
|
||||||
MemberName 39(myS) 1 "c"
|
Name 48 "d"
|
||||||
MemberName 39(myS) 2 "a"
|
Name 49 "ff1"
|
||||||
MemberName 39(myS) 3 "d"
|
Name 50 "ff2"
|
||||||
Name 41 "s1"
|
Name 51 "ff3"
|
||||||
Name 44 "ff5"
|
Decorate 25(ff4) Offset 4
|
||||||
Name 45 "ff6"
|
Decorate 25(ff4) Location 7
|
||||||
MemberDecorate 25 4 BuiltIn FrontFacing
|
Decorate 25(ff4) Binding 0
|
||||||
Decorate 34(@entryPointOutput) Location 0
|
Decorate 30(@entryPointOutput) Location 0
|
||||||
Decorate 36(input) Location 0
|
Decorate 31(input) Location 0
|
||||||
Decorate 44(ff5) Offset 20
|
Decorate 39(ff5) Offset 20
|
||||||
Decorate 44(ff5) Binding 5
|
Decorate 39(ff5) Binding 5
|
||||||
Decorate 45(ff6) Offset 36
|
Decorate 40(ff6) Offset 36
|
||||||
Decorate 45(ff6) Binding 8
|
Decorate 40(ff6) Binding 8
|
||||||
|
Decorate 41(a) Location 1
|
||||||
|
Decorate 43(b) Flat
|
||||||
|
Decorate 43(b) Location 2
|
||||||
|
Decorate 45(c) NoPerspective
|
||||||
|
Decorate 45(c) Centroid
|
||||||
|
Decorate 45(c) Location 3
|
||||||
|
Decorate 48(d) Centroid
|
||||||
|
Decorate 48(d) Location 4
|
||||||
|
Decorate 49(ff1) BuiltIn FrontFacing
|
||||||
|
Decorate 50(ff2) Offset 4
|
||||||
|
Decorate 50(ff2) Location 5
|
||||||
|
Decorate 51(ff3) Offset 4
|
||||||
|
Decorate 51(ff3) Location 6
|
||||||
|
Decorate 51(ff3) Binding 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeBool
|
6: TypeBool
|
||||||
@ -129,23 +153,30 @@ gl_FragCoord origin is upper left
|
|||||||
21(s2): 20(ptr) Variable Private
|
21(s2): 20(ptr) Variable Private
|
||||||
22: TypeInt 32 1
|
22: TypeInt 32 1
|
||||||
23: 22(int) Constant 0
|
23: 22(int) Constant 0
|
||||||
24: TypeVector 17(float) 2
|
24: TypePointer Input 18(fvec4)
|
||||||
25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
25(ff4): 24(ptr) Variable Input
|
||||||
26: TypePointer Private 25(struct)
|
27: TypePointer Private 18(fvec4)
|
||||||
27(s4): 26(ptr) Variable Private
|
29: TypePointer Output 18(fvec4)
|
||||||
28: 22(int) Constant 7
|
30(@entryPointOutput): 29(ptr) Variable Output
|
||||||
29: TypePointer Private 18(fvec4)
|
31(input): 24(ptr) Variable Input
|
||||||
33: TypePointer Output 18(fvec4)
|
34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
||||||
34(@entryPointOutput): 33(ptr) Variable Output
|
35: TypePointer Private 34(myS)
|
||||||
35: TypePointer Input 18(fvec4)
|
36(s1): 35(ptr) Variable Private
|
||||||
36(input): 35(ptr) Variable Input
|
37: TypeVector 17(float) 3
|
||||||
39(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
38: TypePointer Private 37(fvec3)
|
||||||
40: TypePointer Private 39(myS)
|
39(ff5): 38(ptr) Variable Private
|
||||||
41(s1): 40(ptr) Variable Private
|
40(ff6): 38(ptr) Variable Private
|
||||||
42: TypeVector 17(float) 3
|
41(a): 24(ptr) Variable Input
|
||||||
43: TypePointer Private 42(fvec3)
|
42: TypePointer Input 6(bool)
|
||||||
44(ff5): 43(ptr) Variable Private
|
43(b): 42(ptr) Variable Input
|
||||||
45(ff6): 43(ptr) Variable Private
|
44: TypePointer Input 17(float)
|
||||||
|
45(c): 44(ptr) Variable Input
|
||||||
|
46: TypeVector 17(float) 2
|
||||||
|
47: TypePointer Input 46(fvec2)
|
||||||
|
48(d): 47(ptr) Variable Input
|
||||||
|
49(ff1): 42(ptr) Variable Input
|
||||||
|
50(ff2): 42(ptr) Variable Input
|
||||||
|
51(ff3): 42(ptr) Variable Input
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(s3): 9(ptr) Variable Function
|
10(s3): 9(ptr) Variable Function
|
||||||
@ -155,11 +186,10 @@ gl_FragCoord origin is upper left
|
|||||||
14: 7(bvec3) CompositeExtract 12 0
|
14: 7(bvec3) CompositeExtract 12 0
|
||||||
15: 7(bvec3) LogicalEqual 13 14
|
15: 7(bvec3) LogicalEqual 13 14
|
||||||
16: 6(bool) All 15
|
16: 6(bool) All 15
|
||||||
30: 29(ptr) AccessChain 27(s4) 28
|
26: 18(fvec4) Load 25(ff4)
|
||||||
31: 18(fvec4) Load 30
|
28: 27(ptr) AccessChain 21(s2) 23
|
||||||
32: 29(ptr) AccessChain 21(s2) 23
|
Store 28 26
|
||||||
Store 32 31
|
32: 18(fvec4) Load 31(input)
|
||||||
37: 18(fvec4) Load 36(input)
|
Store 30(@entryPointOutput) 32
|
||||||
Store 34(@entryPointOutput) 37
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,42 +1,67 @@
|
|||||||
hlsl.structin.vert
|
hlsl.structin.vert
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position)
|
0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
0:7 Function Parameters:
|
0:8 Function Parameters:
|
||||||
0:7 'd' (layout(location=0 ) in 4-component vector of float)
|
|
||||||
0:7 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord})
|
|
||||||
0:7 'e' (layout(location=4 ) in 4-component vector of float)
|
|
||||||
0:? Sequence
|
|
||||||
0:8 Sequence
|
|
||||||
0:8 move second child to first child (temp 4-component vector of float)
|
|
||||||
0:? '@entryPointOutput' (out 4-component vector of float Position)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
|
||||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
|
||||||
0:8 Constant:
|
|
||||||
0:8 1 (const int)
|
|
||||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
|
||||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
|
||||||
0:8 Constant:
|
|
||||||
0:8 0 (const int)
|
|
||||||
0:8 Construct vec4 (temp 4-component vector of float)
|
|
||||||
0:8 Convert uint to float (temp float)
|
|
||||||
0:8 direct index (temp uint)
|
|
||||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
|
||||||
0:8 Constant:
|
|
||||||
0:8 0 (const int)
|
|
||||||
0:8 'd' (layout(location=0 ) in 4-component vector of float)
|
0:8 'd' (layout(location=0 ) in 4-component vector of float)
|
||||||
0:8 'e' (layout(location=4 ) in 4-component vector of float)
|
0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
0:8 Branch: Return
|
0:8 'e' (layout(location=5 ) in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:11 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:11 b: direct index for structure (smooth temp 4-component vector of float)
|
||||||
|
0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||||
|
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||||
|
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Construct vec4 (temp 4-component vector of float)
|
||||||
|
0:11 Convert uint to float (temp float)
|
||||||
|
0:11 direct index (temp uint)
|
||||||
|
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 'd' (layout(location=0 ) in 4-component vector of float)
|
||||||
|
0:11 'e' (layout(location=5 ) in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:? Sequence
|
||||||
|
0:13 move second child to first child (temp 2-element array of 4-component vector of float)
|
||||||
|
0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
|
||||||
|
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||||
|
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 move second child to first child (temp 2-component vector of uint)
|
||||||
|
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||||
|
0:13 coord: direct index for structure (temp 2-component vector of uint)
|
||||||
|
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||||
|
0:13 b: direct index for structure (smooth temp 4-component vector of float)
|
||||||
|
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Branch: Return
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? '@entryPointOutput' (out 4-component vector of float Position)
|
0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
|
||||||
|
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||||
|
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||||
0:? 'd' (layout(location=0 ) in 4-component vector of float)
|
0:? 'd' (layout(location=0 ) in 4-component vector of float)
|
||||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||||
0:? 'e' (layout(location=4 ) in 4-component vector of float)
|
0:? 'b' (layout(location=4 ) smooth in 4-component vector of float)
|
||||||
|
0:? 'e' (layout(location=5 ) in 4-component vector of float)
|
||||||
|
|
||||||
|
|
||||||
Linked vertex stage:
|
Linked vertex stage:
|
||||||
@ -44,100 +69,158 @@ Linked vertex stage:
|
|||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position)
|
0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
0:7 Function Parameters:
|
0:8 Function Parameters:
|
||||||
0:7 'd' (layout(location=0 ) in 4-component vector of float)
|
|
||||||
0:7 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord})
|
|
||||||
0:7 'e' (layout(location=4 ) in 4-component vector of float)
|
|
||||||
0:? Sequence
|
|
||||||
0:8 Sequence
|
|
||||||
0:8 move second child to first child (temp 4-component vector of float)
|
|
||||||
0:? '@entryPointOutput' (out 4-component vector of float Position)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 add (temp 4-component vector of float)
|
|
||||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
|
||||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
|
||||||
0:8 Constant:
|
|
||||||
0:8 1 (const int)
|
|
||||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
|
||||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
|
||||||
0:8 Constant:
|
|
||||||
0:8 0 (const int)
|
|
||||||
0:8 Construct vec4 (temp 4-component vector of float)
|
|
||||||
0:8 Convert uint to float (temp float)
|
|
||||||
0:8 direct index (temp uint)
|
|
||||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
|
||||||
0:8 Constant:
|
|
||||||
0:8 0 (const int)
|
|
||||||
0:8 'd' (layout(location=0 ) in 4-component vector of float)
|
0:8 'd' (layout(location=0 ) in 4-component vector of float)
|
||||||
0:8 'e' (layout(location=4 ) in 4-component vector of float)
|
0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
0:8 Branch: Return
|
0:8 'e' (layout(location=5 ) in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:11 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:11 b: direct index for structure (smooth temp 4-component vector of float)
|
||||||
|
0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 add (temp 4-component vector of float)
|
||||||
|
0:11 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||||
|
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||||
|
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Construct vec4 (temp 4-component vector of float)
|
||||||
|
0:11 Convert uint to float (temp float)
|
||||||
|
0:11 direct index (temp uint)
|
||||||
|
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 'd' (layout(location=0 ) in 4-component vector of float)
|
||||||
|
0:11 'e' (layout(location=5 ) in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:? Sequence
|
||||||
|
0:13 move second child to first child (temp 2-element array of 4-component vector of float)
|
||||||
|
0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
|
||||||
|
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||||
|
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 move second child to first child (temp 2-component vector of uint)
|
||||||
|
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||||
|
0:13 coord: direct index for structure (temp 2-component vector of uint)
|
||||||
|
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||||
|
0:13 b: direct index for structure (smooth temp 4-component vector of float)
|
||||||
|
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Branch: Return
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? '@entryPointOutput' (out 4-component vector of float Position)
|
0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
|
||||||
|
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||||
|
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||||
0:? 'd' (layout(location=0 ) in 4-component vector of float)
|
0:? 'd' (layout(location=0 ) in 4-component vector of float)
|
||||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||||
0:? 'e' (layout(location=4 ) in 4-component vector of float)
|
0:? 'b' (layout(location=4 ) smooth in 4-component vector of float)
|
||||||
|
0:? 'e' (layout(location=5 ) in 4-component vector of float)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 41
|
// Id's are bound by 60
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "main" 9 14 26 34 37
|
EntryPoint Vertex 4 "main" 18 28 36 39 45 50 55 59
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "@entryPointOutput"
|
Name 12 "VI"
|
||||||
Name 14 "m"
|
MemberName 12(VI) 0 "m"
|
||||||
Name 26 "coord"
|
MemberName 12(VI) 1 "coord"
|
||||||
Name 34 "d"
|
MemberName 12(VI) 2 "b"
|
||||||
Name 37 "e"
|
Name 14 "local"
|
||||||
Decorate 9(@entryPointOutput) BuiltIn Position
|
Name 18 "m"
|
||||||
Decorate 14(m) Location 1
|
Name 28 "coord"
|
||||||
Decorate 26(coord) Location 3
|
Name 36 "d"
|
||||||
Decorate 34(d) Location 0
|
Name 39 "e"
|
||||||
Decorate 37(e) Location 4
|
Name 45 "m"
|
||||||
|
Name 50 "coord"
|
||||||
|
Name 55 "b"
|
||||||
|
Name 59 "b"
|
||||||
|
Decorate 18(m) Location 1
|
||||||
|
Decorate 28(coord) Location 3
|
||||||
|
Decorate 36(d) Location 0
|
||||||
|
Decorate 39(e) Location 5
|
||||||
|
Decorate 45(m) Location 0
|
||||||
|
Decorate 50(coord) Location 2
|
||||||
|
Decorate 55(b) Location 3
|
||||||
|
Decorate 59(b) Location 4
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeVector 6(float) 4
|
7: TypeVector 6(float) 4
|
||||||
8: TypePointer Output 7(fvec4)
|
8: TypeInt 32 0
|
||||||
9(@entryPointOutput): 8(ptr) Variable Output
|
9: 8(int) Constant 2
|
||||||
10: TypeInt 32 0
|
10: TypeArray 7(fvec4) 9
|
||||||
11: 10(int) Constant 2
|
11: TypeVector 8(int) 2
|
||||||
12: TypeArray 7(fvec4) 11
|
12(VI): TypeStruct 10 11(ivec2) 7(fvec4)
|
||||||
13: TypePointer Input 12
|
13: TypePointer Function 12(VI)
|
||||||
14(m): 13(ptr) Variable Input
|
|
||||||
15: TypeInt 32 1
|
15: TypeInt 32 1
|
||||||
16: 15(int) Constant 1
|
16: 15(int) Constant 2
|
||||||
17: TypePointer Input 7(fvec4)
|
17: TypePointer Input 10
|
||||||
20: 15(int) Constant 0
|
18(m): 17(ptr) Variable Input
|
||||||
24: TypeVector 10(int) 2
|
19: 15(int) Constant 1
|
||||||
25: TypePointer Input 24(ivec2)
|
20: TypePointer Input 7(fvec4)
|
||||||
26(coord): 25(ptr) Variable Input
|
23: 15(int) Constant 0
|
||||||
27: 10(int) Constant 0
|
27: TypePointer Input 11(ivec2)
|
||||||
28: TypePointer Input 10(int)
|
28(coord): 27(ptr) Variable Input
|
||||||
34(d): 17(ptr) Variable Input
|
29: 8(int) Constant 0
|
||||||
37(e): 17(ptr) Variable Input
|
30: TypePointer Input 8(int)
|
||||||
|
36(d): 20(ptr) Variable Input
|
||||||
|
39(e): 20(ptr) Variable Input
|
||||||
|
42: TypePointer Function 7(fvec4)
|
||||||
|
44: TypePointer Output 10
|
||||||
|
45(m): 44(ptr) Variable Output
|
||||||
|
46: TypePointer Function 10
|
||||||
|
49: TypePointer Output 11(ivec2)
|
||||||
|
50(coord): 49(ptr) Variable Output
|
||||||
|
51: TypePointer Function 11(ivec2)
|
||||||
|
54: TypePointer Output 7(fvec4)
|
||||||
|
55(b): 54(ptr) Variable Output
|
||||||
|
59(b): 20(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
18: 17(ptr) AccessChain 14(m) 16
|
14(local): 13(ptr) Variable Function
|
||||||
19: 7(fvec4) Load 18
|
21: 20(ptr) AccessChain 18(m) 19
|
||||||
21: 17(ptr) AccessChain 14(m) 20
|
|
||||||
22: 7(fvec4) Load 21
|
22: 7(fvec4) Load 21
|
||||||
23: 7(fvec4) FAdd 19 22
|
24: 20(ptr) AccessChain 18(m) 23
|
||||||
29: 28(ptr) AccessChain 26(coord) 27
|
25: 7(fvec4) Load 24
|
||||||
30: 10(int) Load 29
|
26: 7(fvec4) FAdd 22 25
|
||||||
31: 6(float) ConvertUToF 30
|
31: 30(ptr) AccessChain 28(coord) 29
|
||||||
32: 7(fvec4) CompositeConstruct 31 31 31 31
|
32: 8(int) Load 31
|
||||||
33: 7(fvec4) FAdd 23 32
|
33: 6(float) ConvertUToF 32
|
||||||
35: 7(fvec4) Load 34(d)
|
34: 7(fvec4) CompositeConstruct 33 33 33 33
|
||||||
36: 7(fvec4) FAdd 33 35
|
35: 7(fvec4) FAdd 26 34
|
||||||
38: 7(fvec4) Load 37(e)
|
37: 7(fvec4) Load 36(d)
|
||||||
39: 7(fvec4) FAdd 36 38
|
38: 7(fvec4) FAdd 35 37
|
||||||
Store 9(@entryPointOutput) 39
|
40: 7(fvec4) Load 39(e)
|
||||||
|
41: 7(fvec4) FAdd 38 40
|
||||||
|
43: 42(ptr) AccessChain 14(local) 16
|
||||||
|
Store 43 41
|
||||||
|
47: 46(ptr) AccessChain 14(local) 23
|
||||||
|
48: 10 Load 47
|
||||||
|
Store 45(m) 48
|
||||||
|
52: 51(ptr) AccessChain 14(local) 19
|
||||||
|
53: 11(ivec2) Load 52
|
||||||
|
Store 50(coord) 53
|
||||||
|
56: 42(ptr) AccessChain 14(local) 16
|
||||||
|
57: 7(fvec4) Load 56
|
||||||
|
Store 55(b) 57
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -16,7 +16,7 @@ struct {
|
|||||||
float4 i;
|
float4 i;
|
||||||
} s2;
|
} s2;
|
||||||
|
|
||||||
struct {
|
struct IN_S {
|
||||||
linear float4 a;
|
linear float4 a;
|
||||||
nointerpolation bool b;
|
nointerpolation bool b;
|
||||||
noperspective centroid float1 c;
|
noperspective centroid float1 c;
|
||||||
@ -25,19 +25,19 @@ struct {
|
|||||||
bool ff2 : packoffset(c0.y);
|
bool ff2 : packoffset(c0.y);
|
||||||
bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ;
|
bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ;
|
||||||
float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) <int bambam=30;> ;
|
float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) <int bambam=30;> ;
|
||||||
} s4;
|
};
|
||||||
|
|
||||||
float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]);
|
float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]);
|
||||||
float3 ff6 : packoffset(c2.y) : register(s3[5]);
|
float3 ff6 : packoffset(c2.y) : register(s3[5]);
|
||||||
|
|
||||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0
|
||||||
{
|
{
|
||||||
struct FS {
|
struct FS {
|
||||||
bool3 b3;
|
bool3 b3;
|
||||||
} s3;
|
} s3;
|
||||||
|
|
||||||
s3 == s3;
|
s3 == s3;
|
||||||
s2.i = s4.ff4;
|
s2.i = s.ff4;
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
@ -1,9 +1,14 @@
|
|||||||
struct VI {
|
struct VI {
|
||||||
float4 m[2];
|
float4 m[2];
|
||||||
uint2 coord;
|
uint2 coord;
|
||||||
|
linear float4 b;
|
||||||
};
|
};
|
||||||
|
|
||||||
float4 main(float4 d, VI vi, float4 e) : SV_POSITION
|
VI main(float4 d, VI vi, float4 e) : SV_POSITION
|
||||||
{
|
{
|
||||||
return vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e;
|
VI local;
|
||||||
|
|
||||||
|
local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e;
|
||||||
|
|
||||||
|
return local;
|
||||||
}
|
}
|
||||||
@ -2,5 +2,5 @@
|
|||||||
// For the version, it uses the latest git tag followed by the number of commits.
|
// For the version, it uses the latest git tag followed by the number of commits.
|
||||||
// For the date, it uses the current date (when then script is run).
|
// For the date, it uses the current date (when then script is run).
|
||||||
|
|
||||||
#define GLSLANG_REVISION "Overload400-PrecQual.1489"
|
#define GLSLANG_REVISION "Overload400-PrecQual.1490"
|
||||||
#define GLSLANG_DATE "16-Sep-2016"
|
#define GLSLANG_DATE "16-Sep-2016"
|
||||||
|
|||||||
@ -435,7 +435,7 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type)
|
|||||||
return false;
|
return false;
|
||||||
if (type.getBasicType() == EbtBlock) {
|
if (type.getBasicType() == EbtBlock) {
|
||||||
// the type was a block, which set some parts of the qualifier
|
// the type was a block, which set some parts of the qualifier
|
||||||
parseContext.mergeQualifiers(loc, type.getQualifier(), qualifier, true);
|
parseContext.mergeQualifiers(type.getQualifier(), qualifier);
|
||||||
// further, it can create an anonymous instance of the block
|
// further, it can create an anonymous instance of the block
|
||||||
if (peekTokenClass(EHTokSemicolon))
|
if (peekTokenClass(EHTokSemicolon))
|
||||||
parseContext.declareBlock(loc, type);
|
parseContext.declareBlock(loc, type);
|
||||||
@ -476,7 +476,6 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier)
|
|||||||
qualifier.volatil = true;
|
qualifier.volatil = true;
|
||||||
break;
|
break;
|
||||||
case EHTokLinear:
|
case EHTokLinear:
|
||||||
qualifier.storage = EvqVaryingIn;
|
|
||||||
qualifier.smooth = true;
|
qualifier.smooth = true;
|
||||||
break;
|
break;
|
||||||
case EHTokCentroid:
|
case EHTokCentroid:
|
||||||
|
|||||||
@ -728,7 +728,7 @@ void HlslParseContext::flattenStruct(const TVariable& variable)
|
|||||||
for (int member = 0; member < (int)members.size(); ++member) {
|
for (int member = 0; member < (int)members.size(); ++member) {
|
||||||
TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(),
|
TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(),
|
||||||
*members[member].type);
|
*members[member].type);
|
||||||
memberVariable->getWritableType().getQualifier().storage = variable.getType().getQualifier().storage;
|
mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier());
|
||||||
memberVariables.push_back(memberVariable);
|
memberVariables.push_back(memberVariable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3049,7 +3049,7 @@ void HlslParseContext::globalQualifierFix(const TSourceLoc&, TQualifier& qualifi
|
|||||||
// 'dst', for the purpose of error checking order for versions
|
// 'dst', for the purpose of error checking order for versions
|
||||||
// that require specific orderings of qualifiers.
|
// that require specific orderings of qualifiers.
|
||||||
//
|
//
|
||||||
void HlslParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, const TQualifier& src, bool force)
|
void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src)
|
||||||
{
|
{
|
||||||
// Storage qualification
|
// Storage qualification
|
||||||
if (dst.storage == EvqTemporary || dst.storage == EvqGlobal)
|
if (dst.storage == EvqTemporary || dst.storage == EvqGlobal)
|
||||||
@ -3060,8 +3060,6 @@ void HlslParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, c
|
|||||||
else if ((dst.storage == EvqIn && src.storage == EvqConst) ||
|
else if ((dst.storage == EvqIn && src.storage == EvqConst) ||
|
||||||
(dst.storage == EvqConst && src.storage == EvqIn))
|
(dst.storage == EvqConst && src.storage == EvqIn))
|
||||||
dst.storage = EvqConstReadOnly;
|
dst.storage = EvqConstReadOnly;
|
||||||
else if (src.storage != EvqTemporary && src.storage != EvqGlobal)
|
|
||||||
error(loc, "too many storage qualifiers", GetStorageQualifierString(src.storage), "");
|
|
||||||
|
|
||||||
// Layout qualifiers
|
// Layout qualifiers
|
||||||
mergeObjectLayoutQualifiers(dst, src, false);
|
mergeObjectLayoutQualifiers(dst, src, false);
|
||||||
@ -4586,7 +4584,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS
|
|||||||
}
|
}
|
||||||
|
|
||||||
TQualifier newMemberQualification = defaultQualification;
|
TQualifier newMemberQualification = defaultQualification;
|
||||||
mergeQualifiers(memberLoc, newMemberQualification, memberQualifier, false);
|
mergeQualifiers(newMemberQualification, memberQualifier);
|
||||||
memberQualifier = newMemberQualification;
|
memberQualifier = newMemberQualification;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -129,7 +129,7 @@ public:
|
|||||||
void boolCheck(const TSourceLoc&, const TIntermTyped*);
|
void boolCheck(const TSourceLoc&, const TIntermTyped*);
|
||||||
void globalQualifierFix(const TSourceLoc&, TQualifier&);
|
void globalQualifierFix(const TSourceLoc&, TQualifier&);
|
||||||
bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType);
|
bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType);
|
||||||
void mergeQualifiers(const TSourceLoc&, TQualifier& dst, const TQualifier& src, bool force);
|
void mergeQualifiers(TQualifier& dst, const TQualifier& src);
|
||||||
int computeSamplerTypeIndex(TSampler&);
|
int computeSamplerTypeIndex(TSampler&);
|
||||||
TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration);
|
TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration);
|
||||||
void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes);
|
void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user