GLSL: XFB: more support for built-in block redeclarations with XFB.
- correct inheritence (or not) of the right XFB buffer - compute implicit stride (fixes #1212) - semantic check block-member redeclarations - inherit stride from a member
This commit is contained in:
parent
9c6f8cc29b
commit
eb2c0c72bf
7 changed files with 195 additions and 8 deletions
68
Test/baseResults/spv.xfb2.vert.out
Executable file
68
Test/baseResults/spv.xfb2.vert.out
Executable file
|
|
@ -0,0 +1,68 @@
|
|||
spv.xfb2.vert
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80003
|
||||
// Id's are bound by 35
|
||||
|
||||
Capability Shader
|
||||
Capability TransformFeedback
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 10 14
|
||||
ExecutionMode 4 Xfb
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "gl_PerVertex"
|
||||
MemberName 8(gl_PerVertex) 0 "gl_Position"
|
||||
Name 10 ""
|
||||
Name 14 "position"
|
||||
Name 17 "ComponentsBlock"
|
||||
MemberName 17(ComponentsBlock) 0 "c1"
|
||||
MemberName 17(ComponentsBlock) 1 "c2"
|
||||
Name 19 "components"
|
||||
MemberDecorate 8(gl_PerVertex) 0 Offset 16
|
||||
MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position
|
||||
Decorate 8(gl_PerVertex) Block
|
||||
Decorate 10 XfbBuffer 3
|
||||
Decorate 10 XfbStride 32
|
||||
Decorate 14(position) Location 0
|
||||
MemberDecorate 17(ComponentsBlock) 0 Offset 0
|
||||
MemberDecorate 17(ComponentsBlock) 1 Offset 16
|
||||
Decorate 17(ComponentsBlock) Block
|
||||
Decorate 19(components) DescriptorSet 0
|
||||
Decorate 19(components) Binding 5
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(gl_PerVertex): TypeStruct 7(fvec4)
|
||||
9: TypePointer Output 8(gl_PerVertex)
|
||||
10: 9(ptr) Variable Output
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: TypePointer Input 7(fvec4)
|
||||
14(position): 13(ptr) Variable Input
|
||||
16: TypeVector 6(float) 2
|
||||
17(ComponentsBlock): TypeStruct 7(fvec4) 16(fvec2)
|
||||
18: TypePointer Uniform 17(ComponentsBlock)
|
||||
19(components): 18(ptr) Variable Uniform
|
||||
20: TypePointer Uniform 7(fvec4)
|
||||
24: 11(int) Constant 1
|
||||
25: TypePointer Uniform 16(fvec2)
|
||||
28: 6(float) Constant 0
|
||||
33: TypePointer Output 7(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
15: 7(fvec4) Load 14(position)
|
||||
21: 20(ptr) AccessChain 19(components) 12
|
||||
22: 7(fvec4) Load 21
|
||||
23: 7(fvec4) FAdd 15 22
|
||||
26: 25(ptr) AccessChain 19(components) 24
|
||||
27: 16(fvec2) Load 26
|
||||
29: 6(float) CompositeExtract 27 0
|
||||
30: 6(float) CompositeExtract 27 1
|
||||
31: 7(fvec4) CompositeConstruct 29 30 28 28
|
||||
32: 7(fvec4) FAdd 23 31
|
||||
34: 33(ptr) AccessChain 10 12
|
||||
Store 34 32
|
||||
Return
|
||||
FunctionEnd
|
||||
Loading…
Add table
Add a link
Reference in a new issue