Implement NVX_multiview_per_view_attributes

This commit is contained in:
chaoc 2017-02-14 14:52:34 -08:00
parent 7225a1cb1e
commit df3956c50f
17 changed files with 285 additions and 60 deletions

View file

@ -3,7 +3,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 38
// Id's are bound by 39
Capability Geometry
Capability Tessellation
@ -13,7 +13,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Extension "SPV_NV_viewport_array2"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 16 18 32
EntryPoint TessellationControl 4 "main" 16 18 33
ExecutionMode 4 OutputVertices 4
Source GLSL 450
SourceExtension "GL_NV_stereo_view_rendering"
@ -25,13 +25,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberName 12(gl_PerVertex) 2 "gl_SecondaryViewportMaskNV"
Name 16 "gl_out"
Name 18 "gl_InvocationID"
Name 28 "gl_PerVertex"
MemberName 28(gl_PerVertex) 0 "gl_Position"
MemberName 28(gl_PerVertex) 1 "gl_PointSize"
MemberName 28(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 28(gl_PerVertex) 3 "gl_CullDistance"
MemberName 28(gl_PerVertex) 4 "gl_SecondaryPositionNV"
Name 32 "gl_in"
Name 29 "gl_PerVertex"
MemberName 29(gl_PerVertex) 0 "gl_Position"
MemberName 29(gl_PerVertex) 1 "gl_PointSize"
MemberName 29(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 29(gl_PerVertex) 3 "gl_CullDistance"
MemberName 29(gl_PerVertex) 4 "gl_SecondaryPositionNV"
MemberName 29(gl_PerVertex) 5 "gl_PositionPerViewNV"
Name 33 "gl_in"
MemberDecorate 12(gl_PerVertex) 0 BuiltIn Layer
MemberDecorate 12(gl_PerVertex) 0 ViewportRelativeNV
MemberDecorate 12(gl_PerVertex) 0 SecondaryViewportRelativeNV 1
@ -39,11 +40,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberDecorate 12(gl_PerVertex) 2 BuiltIn SecondaryViewportMaskNV
Decorate 12(gl_PerVertex) Block
Decorate 18(gl_InvocationID) BuiltIn InvocationId
MemberDecorate 28(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 28(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 28(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 28(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 28(gl_PerVertex) Block
MemberDecorate 29(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 29(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 29(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 29(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 29(gl_PerVertex) Block
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -65,22 +66,23 @@ Warning, version 450 is not yet complete; most version-specific features are pre
23: TypePointer Output 6(int)
26: 9(int) Constant 1
27: TypeArray 7(float) 26
28(gl_PerVertex): TypeStruct 8(fvec4) 7(float) 27 27 8(fvec4)
29: 9(int) Constant 32
30: TypeArray 28(gl_PerVertex) 29
31: TypePointer Input 30
32(gl_in): 31(ptr) Variable Input
33: TypePointer Input 8(fvec4)
36: TypePointer Output 8(fvec4)
28: TypeArray 8(fvec4) 26
29(gl_PerVertex): TypeStruct 8(fvec4) 7(float) 27 27 8(fvec4) 28
30: 9(int) Constant 32
31: TypeArray 29(gl_PerVertex) 30
32: TypePointer Input 31
33(gl_in): 32(ptr) Variable Input
34: TypePointer Input 8(fvec4)
37: TypePointer Output 8(fvec4)
4(main): 2 Function None 3
5: Label
19: 6(int) Load 18(gl_InvocationID)
24: 23(ptr) AccessChain 16(gl_out) 19 20 21
Store 24 22
25: 6(int) Load 18(gl_InvocationID)
34: 33(ptr) AccessChain 32(gl_in) 22 21
35: 8(fvec4) Load 34
37: 36(ptr) AccessChain 16(gl_out) 25 22
Store 37 35
35: 34(ptr) AccessChain 33(gl_in) 22 21
36: 8(fvec4) Load 35
38: 37(ptr) AccessChain 16(gl_out) 25 22
Store 38 36
Return
FunctionEnd