
This fixes issue #487 and #480. It also correctly handles output parameters from the entry point.
161 lines
9.0 KiB
Plaintext
Executable File
161 lines
9.0 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:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
|
0:34 Function Parameters:
|
|
0:34 'input' (in 4-component vector of float)
|
|
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 move second child to first child (temp 4-component vector of float)
|
|
0:40 i: direct index for structure (temp 4-component vector of float)
|
|
0:40 's2' (global structure{temp 4-component vector of float i})
|
|
0:40 Constant:
|
|
0:40 0 (const int)
|
|
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord)
|
|
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 FragCoord ff4})
|
|
0:40 Constant:
|
|
0:40 7 (const int)
|
|
0:42 Sequence
|
|
0:42 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (out 4-component vector of float)
|
|
0:42 'input' (in 4-component vector of float)
|
|
0:42 Branch: Return
|
|
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:? '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 FragCoord ff4})
|
|
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)
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
|
0:34 Function Parameters:
|
|
0:34 'input' (in 4-component vector of float)
|
|
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 move second child to first child (temp 4-component vector of float)
|
|
0:40 i: direct index for structure (temp 4-component vector of float)
|
|
0:40 's2' (global structure{temp 4-component vector of float i})
|
|
0:40 Constant:
|
|
0:40 0 (const int)
|
|
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord)
|
|
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 FragCoord ff4})
|
|
0:40 Constant:
|
|
0:40 7 (const int)
|
|
0:42 Sequence
|
|
0:42 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (out 4-component vector of float)
|
|
0:42 'input' (in 4-component vector of float)
|
|
0:42 Branch: Return
|
|
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:? '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 FragCoord ff4})
|
|
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)
|
|
|
|
// 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" 34 36
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Name 4 "PixelShaderFunction"
|
|
Name 8 "FS"
|
|
MemberName 8(FS) 0 "b3"
|
|
Name 10 "s3"
|
|
Name 19 ""
|
|
MemberName 19 0 "i"
|
|
Name 21 "s2"
|
|
Name 25 ""
|
|
MemberName 25 0 "a"
|
|
MemberName 25 1 "b"
|
|
MemberName 25 2 "c"
|
|
MemberName 25 3 "d"
|
|
MemberName 25 4 "ff1"
|
|
MemberName 25 5 "ff2"
|
|
MemberName 25 6 "ff3"
|
|
MemberName 25 7 "ff4"
|
|
Name 27 "s4"
|
|
Name 34 "@entryPointOutput"
|
|
Name 36 "input"
|
|
Name 39 "myS"
|
|
MemberName 39(myS) 0 "b"
|
|
MemberName 39(myS) 1 "c"
|
|
MemberName 39(myS) 2 "a"
|
|
MemberName 39(myS) 3 "d"
|
|
Name 41 "s1"
|
|
Name 44 "ff5"
|
|
Name 45 "ff6"
|
|
MemberDecorate 25 4 BuiltIn FrontFacing
|
|
MemberDecorate 25 7 BuiltIn FragCoord
|
|
Decorate 44(ff5) Offset 20
|
|
Decorate 44(ff5) Binding 5
|
|
Decorate 45(ff6) Offset 36
|
|
Decorate 45(ff6) Binding 8
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeBool
|
|
7: TypeVector 6(bool) 3
|
|
8(FS): TypeStruct 7(bvec3)
|
|
9: TypePointer Function 8(FS)
|
|
17: TypeFloat 32
|
|
18: TypeVector 17(float) 4
|
|
19: TypeStruct 18(fvec4)
|
|
20: TypePointer Private 19(struct)
|
|
21(s2): 20(ptr) Variable Private
|
|
22: TypeInt 32 1
|
|
23: 22(int) Constant 0
|
|
24: TypeVector 17(float) 2
|
|
25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
|
26: TypePointer Private 25(struct)
|
|
27(s4): 26(ptr) Variable Private
|
|
28: 22(int) Constant 7
|
|
29: TypePointer Private 18(fvec4)
|
|
33: TypePointer Output 18(fvec4)
|
|
34(@entryPointOutput): 33(ptr) Variable Output
|
|
35: TypePointer Input 18(fvec4)
|
|
36(input): 35(ptr) Variable Input
|
|
39(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
|
40: TypePointer Private 39(myS)
|
|
41(s1): 40(ptr) Variable Private
|
|
42: TypeVector 17(float) 3
|
|
43: TypePointer Private 42(fvec3)
|
|
44(ff5): 43(ptr) Variable Private
|
|
45(ff6): 43(ptr) Variable Private
|
|
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
|
|
30: 29(ptr) AccessChain 27(s4) 28
|
|
31: 18(fvec4) Load 30
|
|
32: 29(ptr) AccessChain 21(s2) 23
|
|
Store 32 31
|
|
37: 18(fvec4) Load 36(input)
|
|
Store 34(@entryPointOutput) 37
|
|
Return
|
|
FunctionEnd
|