From: Gabriele91 Date: Tue, 24 May 2022 18:09:20 +0000 (+0200) Subject: Add hlsl.instance.geom output X-Git-Tag: upstream/1.3.239~79^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e28ec404a7dd1f3901865e08b9db4157c1de1360;p=platform%2Fupstream%2Fglslang.git Add hlsl.instance.geom output --- diff --git a/Test/baseResults/hlsl.instance.geom.out b/Test/baseResults/hlsl.instance.geom.out new file mode 100644 index 0000000..5fbffd9 --- /dev/null +++ b/Test/baseResults/hlsl.instance.geom.out @@ -0,0 +1,433 @@ +hlsl.instance.geom +Shader version: 500 +invocations = 5 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) +0:10 Function Parameters: +0:10 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 'id' ( in uint) +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'i' ( temp int) +0:12 Constant: +0:12 0 (const int) +0:12 Loop with condition tested first: DontUnroll +0:12 Loop Condition +0:12 Compare Less Than ( temp bool) +0:12 'i' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Loop Body +0:? Sequence +0:14 Sequence +0:14 Sequence +0:14 move second child to first child ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 'i' ( temp int) +0:14 move second child to first child ( temp 4-component vector of float) +0:? 'output.m_position' ( out 4-component vector of float Position) +0:14 m_position: direct index for structure ( temp 4-component vector of float) +0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child ( temp 4-component vector of float) +0:? 'output.m_color' (layout( location=0) out 4-component vector of float) +0:14 m_color: direct index for structure ( temp 4-component vector of float) +0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 Constant: +0:14 1 (const int) +0:14 EmitVertex ( temp void) +0:12 Loop Terminal Expression +0:12 Pre-Increment ( temp int) +0:12 'i' ( temp int) +0:16 EndPrimitive ( temp void) +0:10 Function Definition: GeometryShader( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_position: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 direct index ( in 4-component vector of float Position) +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_color: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index (layout( location=0) in 4-component vector of float) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_position: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 direct index ( in 4-component vector of float Position) +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:10 Constant: +0:10 1 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_color: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index (layout( location=0) in 4-component vector of float) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_position: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 2 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 direct index ( in 4-component vector of float Position) +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:10 Constant: +0:10 2 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_color: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 2 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index (layout( location=0) in 4-component vector of float) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 move second child to first child ( temp uint) +0:? 'id' ( temp uint) +0:? 'id' ( in uint InvocationID) +0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'id' ( temp uint) +0:? Linker Objects +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:? 'id' ( in uint InvocationID) +0:? 'output.m_position' ( out 4-component vector of float Position) +0:? 'output.m_color' (layout( location=0) out 4-component vector of float) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 5 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) +0:10 Function Parameters: +0:10 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 'id' ( in uint) +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'i' ( temp int) +0:12 Constant: +0:12 0 (const int) +0:12 Loop with condition tested first: DontUnroll +0:12 Loop Condition +0:12 Compare Less Than ( temp bool) +0:12 'i' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Loop Body +0:? Sequence +0:14 Sequence +0:14 Sequence +0:14 move second child to first child ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 'i' ( temp int) +0:14 move second child to first child ( temp 4-component vector of float) +0:? 'output.m_position' ( out 4-component vector of float Position) +0:14 m_position: direct index for structure ( temp 4-component vector of float) +0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child ( temp 4-component vector of float) +0:? 'output.m_color' (layout( location=0) out 4-component vector of float) +0:14 m_color: direct index for structure ( temp 4-component vector of float) +0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:14 Constant: +0:14 1 (const int) +0:14 EmitVertex ( temp void) +0:12 Loop Terminal Expression +0:12 Pre-Increment ( temp int) +0:12 'i' ( temp int) +0:16 EndPrimitive ( temp void) +0:10 Function Definition: GeometryShader( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_position: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 direct index ( in 4-component vector of float Position) +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_color: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index (layout( location=0) in 4-component vector of float) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_position: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 direct index ( in 4-component vector of float Position) +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:10 Constant: +0:10 1 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_color: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index (layout( location=0) in 4-component vector of float) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_position: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 2 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 direct index ( in 4-component vector of float Position) +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:10 Constant: +0:10 2 (const int) +0:10 move second child to first child ( temp 4-component vector of float) +0:10 m_color: direct index for structure ( temp 4-component vector of float) +0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:10 Constant: +0:10 2 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index (layout( location=0) in 4-component vector of float) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 move second child to first child ( temp uint) +0:? 'id' ( temp uint) +0:? 'id' ( in uint InvocationID) +0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) +0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) +0:? 'id' ( temp uint) +0:? Linker Objects +0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) +0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) +0:? 'id' ( in uint InvocationID) +0:? 'output.m_position' ( out 4-component vector of float Position) +0:? 'output.m_color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 8000a +// Id's are bound by 86 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "GeometryShader" 39 43 52 57 76 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 5 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "GeometryShader" + Name 8 "VertexShaderOutput" + MemberName 8(VertexShaderOutput) 0 "m_position" + MemberName 8(VertexShaderOutput) 1 "m_color" + Name 19 "@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;" + Name 16 "input" + Name 17 "output" + Name 18 "id" + Name 23 "i" + Name 34 "flattenTemp" + Name 39 "output.m_position" + Name 43 "output.m_color" + Name 49 "input" + Name 52 "input.m_position" + Name 57 "input.m_color" + Name 74 "id" + Name 76 "id" + Name 78 "output" + Name 79 "param" + Name 81 "param" + Name 82 "param" + Decorate 39(output.m_position) BuiltIn Position + Decorate 43(output.m_color) Location 0 + Decorate 52(input.m_position) BuiltIn Position + Decorate 57(input.m_color) Location 0 + Decorate 76(id) BuiltIn InvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 +8(VertexShaderOutput): TypeStruct 7(fvec4) 7(fvec4) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(VertexShaderOutput) 10 + 12: TypePointer Function 11 + 13: TypePointer Function 8(VertexShaderOutput) + 14: TypePointer Function 9(int) + 15: TypeFunction 2 12(ptr) 13(ptr) 14(ptr) + 21: TypeInt 32 1 + 22: TypePointer Function 21(int) + 24: 21(int) Constant 0 + 31: 21(int) Constant 3 + 32: TypeBool + 38: TypePointer Output 7(fvec4) +39(output.m_position): 38(ptr) Variable Output + 40: TypePointer Function 7(fvec4) +43(output.m_color): 38(ptr) Variable Output + 44: 21(int) Constant 1 + 50: TypeArray 7(fvec4) 10 + 51: TypePointer Input 50 +52(input.m_position): 51(ptr) Variable Input + 53: TypePointer Input 7(fvec4) +57(input.m_color): 51(ptr) Variable Input + 67: 21(int) Constant 2 + 75: TypePointer Input 9(int) + 76(id): 75(ptr) Variable Input +4(GeometryShader): 2 Function None 3 + 5: Label + 49(input): 12(ptr) Variable Function + 74(id): 14(ptr) Variable Function + 78(output): 13(ptr) Variable Function + 79(param): 12(ptr) Variable Function + 81(param): 13(ptr) Variable Function + 82(param): 14(ptr) Variable Function + 54: 53(ptr) AccessChain 52(input.m_position) 24 + 55: 7(fvec4) Load 54 + 56: 40(ptr) AccessChain 49(input) 24 24 + Store 56 55 + 58: 53(ptr) AccessChain 57(input.m_color) 24 + 59: 7(fvec4) Load 58 + 60: 40(ptr) AccessChain 49(input) 24 44 + Store 60 59 + 61: 53(ptr) AccessChain 52(input.m_position) 44 + 62: 7(fvec4) Load 61 + 63: 40(ptr) AccessChain 49(input) 44 24 + Store 63 62 + 64: 53(ptr) AccessChain 57(input.m_color) 44 + 65: 7(fvec4) Load 64 + 66: 40(ptr) AccessChain 49(input) 44 44 + Store 66 65 + 68: 53(ptr) AccessChain 52(input.m_position) 67 + 69: 7(fvec4) Load 68 + 70: 40(ptr) AccessChain 49(input) 67 24 + Store 70 69 + 71: 53(ptr) AccessChain 57(input.m_color) 67 + 72: 7(fvec4) Load 71 + 73: 40(ptr) AccessChain 49(input) 67 44 + Store 73 72 + 77: 9(int) Load 76(id) + Store 74(id) 77 + 80: 11 Load 49(input) + Store 79(param) 80 + 83: 9(int) Load 74(id) + Store 82(param) 83 + 84: 2 FunctionCall 19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;) 79(param) 81(param) 82(param) + 85:8(VertexShaderOutput) Load 81(param) + Store 78(output) 85 + Return + FunctionEnd +19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;): 2 Function None 15 + 16(input): 12(ptr) FunctionParameter + 17(output): 13(ptr) FunctionParameter + 18(id): 14(ptr) FunctionParameter + 20: Label + 23(i): 22(ptr) Variable Function + 34(flattenTemp): 13(ptr) Variable Function + Store 23(i) 24 + Branch 25 + 25: Label + LoopMerge 27 28 DontUnroll + Branch 29 + 29: Label + 30: 21(int) Load 23(i) + 33: 32(bool) SLessThan 30 31 + BranchConditional 33 26 27 + 26: Label + 35: 21(int) Load 23(i) + 36: 13(ptr) AccessChain 16(input) 35 + 37:8(VertexShaderOutput) Load 36 + Store 34(flattenTemp) 37 + 41: 40(ptr) AccessChain 34(flattenTemp) 24 + 42: 7(fvec4) Load 41 + Store 39(output.m_position) 42 + 45: 40(ptr) AccessChain 34(flattenTemp) 44 + 46: 7(fvec4) Load 45 + Store 43(output.m_color) 46 + EmitVertex + Branch 28 + 28: Label + 47: 21(int) Load 23(i) + 48: 21(int) IAdd 47 44 + Store 23(i) 48 + Branch 25 + 27: Label + EndPrimitive + Return + FunctionEnd