--- /dev/null
+hlsl.fraggeom.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41; ( temp void)
+0:9 Function Parameters:
+0:9 'IN' ( in structure{ temp 4-component vector of float pos})
+0:9 'OutputStream' ( out structure{ temp 4-component vector of float pos})
+0:? Sequence
+0:10 Constant:
+0:10 0.000000
+0:11 Constant:
+0:11 0.000000
+0:15 Function Definition: @main( ( temp 4-component vector of float)
+0:15 Function Parameters:
+0:? Sequence
+0:16 Branch: Return with expression
+0:16 Constant:
+0:16 0.000000
+0:16 0.000000
+0:16 0.000000
+0:16 0.000000
+0:15 Function Definition: main( ( temp void)
+0:15 Function Parameters:
+0:? Sequence
+0:15 move second child to first child ( temp 4-component vector of float)
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:15 Function Call: @main( ( temp 4-component vector of float)
+0:? Linker Objects
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41; ( temp void)
+0:9 Function Parameters:
+0:9 'IN' ( in structure{ temp 4-component vector of float pos})
+0:9 'OutputStream' ( out structure{ temp 4-component vector of float pos})
+0:? Sequence
+0:10 Constant:
+0:10 0.000000
+0:11 Constant:
+0:11 0.000000
+0:15 Function Definition: @main( ( temp 4-component vector of float)
+0:15 Function Parameters:
+0:? Sequence
+0:16 Branch: Return with expression
+0:16 Constant:
+0:16 0.000000
+0:16 0.000000
+0:16 0.000000
+0:16 0.000000
+0:15 Function Definition: main( ( temp void)
+0:15 Function Parameters:
+0:? Sequence
+0:15 move second child to first child ( temp 4-component vector of float)
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:15 Function Call: @main( ( temp 4-component vector of float)
+0:? Linker Objects
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 23
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 500
+ Name 4 "main"
+ Name 8 "myVertex"
+ MemberName 8(myVertex) 0 "pos"
+ Name 13 "GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41;"
+ Name 11 "IN"
+ Name 12 "OutputStream"
+ Name 16 "@main("
+ Name 23 "@entryPointOutput"
+ Decorate 23(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8(myVertex): TypeStruct 7(fvec4)
+ 9: TypePointer Function 8(myVertex)
+ 10: TypeFunction 2 9(ptr) 9(ptr)
+ 15: TypeFunction 7(fvec4)
+ 18: 6(float) Constant 0
+ 19: 7(fvec4) ConstantComposite 18 18 18 18
+ 22: TypePointer Output 7(fvec4)
+23(@entryPointOutput): 22(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 24: 7(fvec4) FunctionCall 16(@main()
+ Store 23(@entryPointOutput) 24
+ Return
+ FunctionEnd
+13(GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41;): 2 Function None 10
+ 11(IN): 9(ptr) FunctionParameter
+12(OutputStream): 9(ptr) FunctionParameter
+ 14: Label
+ Return
+ FunctionEnd
+ 16(@main(): 7(fvec4) Function None 15
+ 17: Label
+ ReturnValue 19
+ FunctionEnd
{"hlsl.emptystruct.init.vert", "main"},
{"hlsl.entry-in.frag", "PixelShaderFunction"},
{"hlsl.entry-out.frag", "PixelShaderFunction"},
+ {"hlsl.fraggeom.frag", "main"},
{"hlsl.float1.frag", "PixelShaderFunction"},
{"hlsl.float4.frag", "PixelShaderFunction"},
{"hlsl.flatten.return.frag", "main"},
switch (op) {
case EOpMethodAppend:
if (argAggregate) {
+ // Don't emit these for non-GS stage, since we won't have the gsStreamOutput symbol.
+ if (language != EShLangGeometry) {
+ node = nullptr;
+ return;
+ }
+
TIntermAggregate* sequence = nullptr;
TIntermAggregate* emit = new TIntermAggregate(EOpEmitVertex);
case EOpMethodRestartStrip:
{
+ // Don't emit these for non-GS stage, since we won't have the gsStreamOutput symbol.
+ if (language != EShLangGeometry) {
+ node = nullptr;
+ return;
+ }
+
TIntermAggregate* cut = new TIntermAggregate(EOpEndPrimitive);
cut->setLoc(loc);
cut->setType(TType(EbtVoid));