spv.stereoViewRendering.vert
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 27

                              Capability Shader
                              Capability ShaderViewportIndexLayerNV
                              Capability ShaderViewportMaskNV
                              Capability ShaderStereoViewNV
                              Extension  "SPV_EXT_shader_viewport_index_layer"
                              Extension  "SPV_NV_stereo_view_rendering"
                              Extension  "SPV_NV_viewport_array2"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 11 19 23 26
                              Source GLSL 450
                              SourceExtension  "GL_NV_stereo_view_rendering"
                              SourceExtension  "GL_NV_viewport_array2"
                              Name 4  "main"
                              Name 11  "gl_SecondaryViewportMaskNV"
                              Name 19  "gl_SecondaryPositionNV"
                              Name 21  "gl_PerVertex"
                              MemberName 21(gl_PerVertex) 0  "gl_Position"
                              MemberName 21(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 21(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 21(gl_PerVertex) 3  "gl_CullDistance"
                              Name 23  ""
                              Name 26  "gl_Layer"
                              Decorate 11(gl_SecondaryViewportMaskNV) BuiltIn SecondaryViewportMaskNV
                              Decorate 19(gl_SecondaryPositionNV) BuiltIn SecondaryPositionNV
                              MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 21(gl_PerVertex) Block
                              Decorate 26(gl_Layer) BuiltIn Layer
                              Decorate 26(gl_Layer) ViewportRelativeNV
                              Decorate 26(gl_Layer) SecondaryViewportRelativeNV 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeInt 32 0
               8:      7(int) Constant 1
               9:             TypeArray 6(int) 8
              10:             TypePointer Output 9
11(gl_SecondaryViewportMaskNV):     10(ptr) Variable Output
              12:      6(int) Constant 0
              13:      6(int) Constant 1
              14:             TypePointer Output 6(int)
              16:             TypeFloat 32
              17:             TypeVector 16(float) 4
              18:             TypePointer Output 17(fvec4)
19(gl_SecondaryPositionNV):     18(ptr) Variable Output
              20:             TypeArray 16(float) 8
21(gl_PerVertex):             TypeStruct 17(fvec4) 16(float) 20 20
              22:             TypePointer Output 21(gl_PerVertex)
              23:     22(ptr) Variable Output
    26(gl_Layer):     14(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              15:     14(ptr) AccessChain 11(gl_SecondaryViewportMaskNV) 12
                              Store 15 13
              24:     18(ptr) AccessChain 23 12
              25:   17(fvec4) Load 24
                              Store 19(gl_SecondaryPositionNV) 25
                              Return
                              FunctionEnd
