hlsl.PointSize.geom
Shader version: 500
invocations = -1
max_vertices = 4
input primitive = triangles
output primitive = line_strip
0:? Sequence
0:8  Function Definition: @main(u1[3];struct-S-f11; ( temp void)
0:8    Function Parameters: 
0:8      'ps' ( in 3-element array of uint)
0:8      'OutputStream' ( out structure{ temp float ps})
0:?     Sequence
0:10      Sequence
0:10        Sequence
0:10          move second child to first child ( temp float)
0:?             'OutputStream.ps' ( out float PointSize)
0:10            ps: direct index for structure ( temp float)
0:10              's' ( temp structure{ temp float ps})
0:10              Constant:
0:10                0 (const int)
0:10        EmitVertex ( temp void)
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      move second child to first child ( temp 3-element array of uint)
0:?         'ps' ( temp 3-element array of uint)
0:?         'ps' ( in 3-element array of uint PointSize)
0:8      Function Call: @main(u1[3];struct-S-f11; ( temp void)
0:?         'ps' ( temp 3-element array of uint)
0:?         'OutputStream' ( temp structure{ temp float ps})
0:?   Linker Objects
0:?     'ps' ( in 3-element array of uint PointSize)
0:?     'OutputStream.ps' ( out float PointSize)


Linked geometry stage:


Shader version: 500
invocations = 1
max_vertices = 4
input primitive = triangles
output primitive = line_strip
0:? Sequence
0:8  Function Definition: @main(u1[3];struct-S-f11; ( temp void)
0:8    Function Parameters: 
0:8      'ps' ( in 3-element array of uint)
0:8      'OutputStream' ( out structure{ temp float ps})
0:?     Sequence
0:10      Sequence
0:10        Sequence
0:10          move second child to first child ( temp float)
0:?             'OutputStream.ps' ( out float PointSize)
0:10            ps: direct index for structure ( temp float)
0:10              's' ( temp structure{ temp float ps})
0:10              Constant:
0:10                0 (const int)
0:10        EmitVertex ( temp void)
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      move second child to first child ( temp 3-element array of uint)
0:?         'ps' ( temp 3-element array of uint)
0:?         'ps' ( in 3-element array of uint PointSize)
0:8      Function Call: @main(u1[3];struct-S-f11; ( temp void)
0:?         'ps' ( temp 3-element array of uint)
0:?         'OutputStream' ( temp structure{ temp float ps})
0:?   Linker Objects
0:?     'ps' ( in 3-element array of uint PointSize)
0:?     'OutputStream.ps' ( out float PointSize)

Validation failed
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 36

                              Capability Geometry
                              Capability GeometryPointSize
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 19 28
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputLineStrip
                              ExecutionMode 4 OutputVertices 4
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "S"
                              MemberName 11(S) 0  "ps"
                              Name 16  "@main(u1[3];struct-S-f11;"
                              Name 14  "ps"
                              Name 15  "OutputStream"
                              Name 19  "OutputStream.ps"
                              Name 20  "s"
                              Name 26  "ps"
                              Name 28  "ps"
                              Name 30  "OutputStream"
                              Name 31  "param"
                              Name 33  "param"
                              Decorate 19(OutputStream.ps) BuiltIn PointSize
                              Decorate 28(ps) BuiltIn PointSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:      6(int) Constant 3
               8:             TypeArray 6(int) 7
               9:             TypePointer Function 8
              10:             TypeFloat 32
           11(S):             TypeStruct 10(float)
              12:             TypePointer Function 11(S)
              13:             TypeFunction 2 9(ptr) 12(ptr)
              18:             TypePointer Output 10(float)
19(OutputStream.ps):     18(ptr) Variable Output
              21:             TypeInt 32 1
              22:     21(int) Constant 0
              23:             TypePointer Function 10(float)
              27:             TypePointer Input 8
          28(ps):     27(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
          26(ps):      9(ptr) Variable Function
30(OutputStream):     12(ptr) Variable Function
       31(param):      9(ptr) Variable Function
       33(param):     12(ptr) Variable Function
              29:           8 Load 28(ps)
                              Store 26(ps) 29
              32:           8 Load 26(ps)
                              Store 31(param) 32
              34:           2 FunctionCall 16(@main(u1[3];struct-S-f11;) 31(param) 33(param)
              35:       11(S) Load 33(param)
                              Store 30(OutputStream) 35
                              Return
                              FunctionEnd
16(@main(u1[3];struct-S-f11;):           2 Function None 13
          14(ps):      9(ptr) FunctionParameter
15(OutputStream):     12(ptr) FunctionParameter
              17:             Label
           20(s):     12(ptr) Variable Function
              24:     23(ptr) AccessChain 20(s) 22
              25:   10(float) Load 24
                              Store 19(OutputStream.ps) 25
                              EmitVertex
                              Return
                              FunctionEnd
