This commit splits lValueErrorCheck into machine dependent and independent parts. The GLSL form in TParseContext inherits from and invokes the machine dependent part in TParseContextBase. The base form checks language independent things. This split does not change the set of errors tested for: the test results are identical. The new base class interface is now used from the HLSL FE to test lvalues. There was one test diff due to this, where the test was writing to a uniform. It still does the same indirections, but does not attempt a uniform write.
196 lines
11 KiB
Plaintext
Executable File
196 lines
11 KiB
Plaintext
Executable File
hlsl.struct.frag
|
|
WARNING: 0:26: 'register' : ignoring shader_profile
|
|
WARNING: 0:27: 'register' : ignoring shader_profile
|
|
WARNING: 0:30: 'register' : ignoring shader_profile
|
|
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
|
0:34 Function Parameters:
|
|
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
|
0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
|
0:? Sequence
|
|
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})
|
|
0:40 i: direct index for structure (temp 4-component vector of float)
|
|
0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i})
|
|
0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
|
0:40 Constant:
|
|
0:40 1 (const uint)
|
|
0:40 Constant:
|
|
0:40 0 (const int)
|
|
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
|
0:42 Sequence
|
|
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:42 'input' (layout(location=0 ) in 4-component vector of float)
|
|
0:42 Branch: Return
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
|
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:
|
|
|
|
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
|
0:34 Function Parameters:
|
|
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
|
0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
|
0:? Sequence
|
|
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})
|
|
0:40 i: direct index for structure (temp 4-component vector of float)
|
|
0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i})
|
|
0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
|
0:40 Constant:
|
|
0:40 1 (const uint)
|
|
0:40 Constant:
|
|
0:40 0 (const int)
|
|
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
|
0:42 Sequence
|
|
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:42 'input' (layout(location=0 ) in 4-component vector of float)
|
|
0:42 Branch: Return
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
|
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
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 46
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "PixelShaderFunction" 29 31 32 35 37 39 42 43 44 45
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Name 4 "PixelShaderFunction"
|
|
Name 8 "FS"
|
|
MemberName 8(FS) 0 "b3"
|
|
Name 10 "s3"
|
|
Name 20 "myS"
|
|
MemberName 20(myS) 0 "b"
|
|
MemberName 20(myS) 1 "c"
|
|
MemberName 20(myS) 2 "a"
|
|
MemberName 20(myS) 3 "d"
|
|
Name 21 ""
|
|
MemberName 21 0 "i"
|
|
Name 22 "$Global"
|
|
MemberName 22($Global) 0 "s1"
|
|
MemberName 22($Global) 1 "s2"
|
|
MemberName 22($Global) 2 "ff5"
|
|
MemberName 22($Global) 3 "ff6"
|
|
Name 24 ""
|
|
Name 29 "ff4"
|
|
Name 31 "@entryPointOutput"
|
|
Name 32 "input"
|
|
Name 35 "a"
|
|
Name 37 "b"
|
|
Name 39 "c"
|
|
Name 42 "d"
|
|
Name 43 "ff1"
|
|
Name 44 "ff2"
|
|
Name 45 "ff3"
|
|
MemberDecorate 20(myS) 0 Offset 0
|
|
MemberDecorate 20(myS) 1 Offset 4
|
|
MemberDecorate 20(myS) 2 Offset 16
|
|
MemberDecorate 20(myS) 3 Offset 32
|
|
MemberDecorate 21 0 Offset 0
|
|
MemberDecorate 22($Global) 0 Offset 0
|
|
MemberDecorate 22($Global) 1 Offset 48
|
|
MemberDecorate 22($Global) 2 Offset 1620
|
|
MemberDecorate 22($Global) 3 Offset 1636
|
|
Decorate 22($Global) Block
|
|
Decorate 24 DescriptorSet 0
|
|
Decorate 29(ff4) Offset 4
|
|
Decorate 29(ff4) Location 7
|
|
Decorate 29(ff4) Binding 0
|
|
Decorate 31(@entryPointOutput) Location 0
|
|
Decorate 32(input) Location 0
|
|
Decorate 35(a) Location 1
|
|
Decorate 37(b) Flat
|
|
Decorate 37(b) Location 2
|
|
Decorate 39(c) NoPerspective
|
|
Decorate 39(c) Centroid
|
|
Decorate 39(c) Location 3
|
|
Decorate 42(d) Centroid
|
|
Decorate 42(d) Location 4
|
|
Decorate 43(ff1) BuiltIn FrontFacing
|
|
Decorate 44(ff2) Offset 4
|
|
Decorate 44(ff2) Location 5
|
|
Decorate 45(ff3) Offset 4
|
|
Decorate 45(ff3) Location 6
|
|
Decorate 45(ff3) Binding 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeBool
|
|
7: TypeVector 6(bool) 3
|
|
8(FS): TypeStruct 7(bvec3)
|
|
9: TypePointer Function 8(FS)
|
|
17: TypeInt 32 0
|
|
18: TypeFloat 32
|
|
19: TypeVector 18(float) 4
|
|
20(myS): TypeStruct 17(int) 17(int) 19(fvec4) 19(fvec4)
|
|
21: TypeStruct 19(fvec4)
|
|
22($Global): TypeStruct 20(myS) 21(struct) 18(float) 18(float)
|
|
23: TypePointer Uniform 22($Global)
|
|
24: 23(ptr) Variable Uniform
|
|
25: TypeInt 32 1
|
|
26: 25(int) Constant 1
|
|
27: 25(int) Constant 0
|
|
28: TypePointer Input 19(fvec4)
|
|
29(ff4): 28(ptr) Variable Input
|
|
30: TypePointer Output 19(fvec4)
|
|
31(@entryPointOutput): 30(ptr) Variable Output
|
|
32(input): 28(ptr) Variable Input
|
|
35(a): 28(ptr) Variable Input
|
|
36: TypePointer Input 6(bool)
|
|
37(b): 36(ptr) Variable Input
|
|
38: TypePointer Input 18(float)
|
|
39(c): 38(ptr) Variable Input
|
|
40: TypeVector 18(float) 2
|
|
41: TypePointer Input 40(fvec2)
|
|
42(d): 41(ptr) Variable Input
|
|
43(ff1): 36(ptr) Variable Input
|
|
44(ff2): 36(ptr) Variable Input
|
|
45(ff3): 36(ptr) Variable Input
|
|
4(PixelShaderFunction): 2 Function None 3
|
|
5: Label
|
|
10(s3): 9(ptr) Variable Function
|
|
11: 8(FS) Load 10(s3)
|
|
12: 8(FS) Load 10(s3)
|
|
13: 7(bvec3) CompositeExtract 11 0
|
|
14: 7(bvec3) CompositeExtract 12 0
|
|
15: 7(bvec3) LogicalEqual 13 14
|
|
16: 6(bool) All 15
|
|
33: 19(fvec4) Load 32(input)
|
|
Store 31(@entryPointOutput) 33
|
|
Return
|
|
FunctionEnd
|