HLSL: inter-stage structure splitting.
This adds structure splitting, which among other things will enable GS support where input structs are passed, and thus become input arrays of structs in the GS inputs. That is a common GS case. The salient points of this PR are: * Structure splitting has been changed from "always between stages" to "only into the VS and out of the PS". It had previously happened between stages because it's not legal to pass a struct containing a builtin IO variable. * Structs passed between stages are now split into a struct containing ONLY user types, and a collection of loose builtin IO variables, if any. The user-part is passed as a normal struct between stages, which is valid SPIR-V now that the builtin IO is removed. * Internal to the shader, a sanitized struct (with IO qualifiers removed) is used, so that e.g, functions can work unmodified. * If a builtin IO such as Position occurs in an arrayed struct, for example as an input to a GS, the array reference is moved to the split-off loose variable, which is given the array dimension itself. When passing things around inside the shader, such as over a function call, the the original type is used in a sanitized form that removes the builtIn qualifications and makes them temporaries. This means internal function calls do not have to change. However, the type when returned from the shader will be member-wise copied from the internal sanitized one to the external type. The sanitized type is used in variable declarations. When copying split types and unsplit, if a sub-struct contains only user variables, it is copied as a single entity to avoid more AST verbosity. Above strategy arrived at with talks with @johnkslang. This is a big complex change. I'm inclined to leave it as a WIP until it can get some exposure to real world cases.
This commit is contained in:
@@ -9,7 +9,7 @@ output primitive = line_strip
|
||||
0:16 Function Parameters:
|
||||
0:16 'VertexID' (layout(location=0 ) in 3-element array of uint)
|
||||
0:16 'test' (layout(location=3 ) in 3-element array of uint)
|
||||
0:16 'OutputStream' (out structure{temp float myfloat, temp int something})
|
||||
0:16 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
0:? Sequence
|
||||
0:19 move second child to first child (temp float)
|
||||
0:19 myfloat: direct index for structure (temp float)
|
||||
@@ -43,20 +43,19 @@ output primitive = line_strip
|
||||
0:20 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child (temp structure{temp float myfloat, temp int something})
|
||||
0:22 'OutputStream' (out structure{temp float myfloat, temp int something})
|
||||
0:22 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
0:22 'Vert' (temp structure{temp float myfloat, temp int something})
|
||||
0:22 EmitVertex (temp void)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child (temp structure{temp float myfloat, temp int something})
|
||||
0:23 'OutputStream' (out structure{temp float myfloat, temp int something})
|
||||
0:23 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
0:23 'Vert' (temp structure{temp float myfloat, temp int something})
|
||||
0:23 EmitVertex (temp void)
|
||||
0:24 EndPrimitive (temp void)
|
||||
0:? Linker Objects
|
||||
0:? 'VertexID' (layout(location=0 ) in 3-element array of uint)
|
||||
0:? 'test' (layout(location=3 ) in 3-element array of uint)
|
||||
0:? 'myfloat' (layout(location=0 ) out float)
|
||||
0:? 'something' (layout(location=1 ) out int)
|
||||
0:? 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
@@ -72,7 +71,7 @@ output primitive = line_strip
|
||||
0:16 Function Parameters:
|
||||
0:16 'VertexID' (layout(location=0 ) in 3-element array of uint)
|
||||
0:16 'test' (layout(location=3 ) in 3-element array of uint)
|
||||
0:16 'OutputStream' (out structure{temp float myfloat, temp int something})
|
||||
0:16 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
0:? Sequence
|
||||
0:19 move second child to first child (temp float)
|
||||
0:19 myfloat: direct index for structure (temp float)
|
||||
@@ -106,29 +105,28 @@ output primitive = line_strip
|
||||
0:20 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child (temp structure{temp float myfloat, temp int something})
|
||||
0:22 'OutputStream' (out structure{temp float myfloat, temp int something})
|
||||
0:22 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
0:22 'Vert' (temp structure{temp float myfloat, temp int something})
|
||||
0:22 EmitVertex (temp void)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child (temp structure{temp float myfloat, temp int something})
|
||||
0:23 'OutputStream' (out structure{temp float myfloat, temp int something})
|
||||
0:23 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
0:23 'Vert' (temp structure{temp float myfloat, temp int something})
|
||||
0:23 EmitVertex (temp void)
|
||||
0:24 EndPrimitive (temp void)
|
||||
0:? Linker Objects
|
||||
0:? 'VertexID' (layout(location=0 ) in 3-element array of uint)
|
||||
0:? 'test' (layout(location=3 ) in 3-element array of uint)
|
||||
0:? 'myfloat' (layout(location=0 ) out float)
|
||||
0:? 'something' (layout(location=1 ) out int)
|
||||
0:? 'OutputStream' (layout(location=0 ) out structure{temp float myfloat, temp int something})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 45
|
||||
// Id's are bound by 41
|
||||
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 16 31 38 42 44
|
||||
EntryPoint Geometry 4 "main" 16 31 38
|
||||
ExecutionMode 4 Triangles
|
||||
ExecutionMode 4 Invocations 1
|
||||
ExecutionMode 4 OutputLineStrip
|
||||
@@ -141,12 +139,9 @@ output primitive = line_strip
|
||||
Name 16 "test"
|
||||
Name 31 "VertexID"
|
||||
Name 38 "OutputStream"
|
||||
Name 42 "myfloat"
|
||||
Name 44 "something"
|
||||
Decorate 16(test) Location 3
|
||||
Decorate 31(VertexID) Location 0
|
||||
Decorate 42(myfloat) Location 0
|
||||
Decorate 44(something) Location 1
|
||||
Decorate 38(OutputStream) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -167,10 +162,6 @@ output primitive = line_strip
|
||||
35: TypePointer Function 7(int)
|
||||
37: TypePointer Output 8(PSInput)
|
||||
38(OutputStream): 37(ptr) Variable Output
|
||||
41: TypePointer Output 6(float)
|
||||
42(myfloat): 41(ptr) Variable Output
|
||||
43: TypePointer Output 7(int)
|
||||
44(something): 43(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(Vert): 9(ptr) Variable Function
|
||||
|
||||
@@ -4,84 +4,48 @@ gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:? Sequence
|
||||
0:9 Branch: Return with expression
|
||||
0:9 add (temp float)
|
||||
0:9 direct index (temp float)
|
||||
0:9 v: direct index for structure (temp 2-component vector of float)
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:9 Constant:
|
||||
0:9 0 (const int)
|
||||
0:9 Constant:
|
||||
0:9 1 (const int)
|
||||
0:9 direct index (temp float)
|
||||
0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:9 Constant:
|
||||
0:9 1 (const int)
|
||||
0:9 Constant:
|
||||
0:9 0 (const int)
|
||||
0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float)
|
||||
0:13 Function Parameters:
|
||||
0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:13 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:? Sequence
|
||||
0:15 Sequence
|
||||
0:15 move second child to first child (temp 2-component vector of float)
|
||||
0:15 v: direct index for structure (temp 2-component vector of float)
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:? 'v' (layout(location=0 ) in 2-component vector of float)
|
||||
0:15 move second child to first child (temp 4-component vector of float)
|
||||
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:? 'fragCoord' (in 4-component vector of float FragCoord)
|
||||
0:15 move second child to first child (temp 2-component vector of int)
|
||||
0:15 i2: direct index for structure (temp 2-component vector of int)
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:15 Constant:
|
||||
0:15 2 (const int)
|
||||
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
|
||||
0:15 move second child to first child (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child (temp float)
|
||||
0:16 'ret1' (temp float)
|
||||
0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
|
||||
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child (temp float)
|
||||
0:17 'ret2' (temp float)
|
||||
0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
|
||||
0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child (temp 2-component vector of float)
|
||||
0:17 v: direct index for structure (temp 2-component vector of float)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:? 'v' (layout(location=0 ) in 2-component vector of float)
|
||||
0:17 move second child to first child (temp 4-component vector of float)
|
||||
0:17 fragCoord: direct index for structure (temp 4-component vector of float)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:? 'fragCoord' (in 4-component vector of float FragCoord)
|
||||
0:17 move second child to first child (temp 2-component vector of int)
|
||||
0:17 i2: direct index for structure (temp 2-component vector of int)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:19 vector-scale (temp 4-component vector of float)
|
||||
0:19 vector-scale (temp 4-component vector of float)
|
||||
0:19 fragCoord: direct index for structure (temp 4-component vector of float)
|
||||
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:19 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:19 'ret1' (temp float)
|
||||
@@ -89,9 +53,7 @@ gl_FragCoord origin is upper left
|
||||
0:19 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'v' (layout(location=0 ) in 2-component vector of float)
|
||||
0:? 'fragCoord' (in 4-component vector of float FragCoord)
|
||||
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
|
||||
0:? 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@@ -102,84 +64,48 @@ gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:? Sequence
|
||||
0:9 Branch: Return with expression
|
||||
0:9 add (temp float)
|
||||
0:9 direct index (temp float)
|
||||
0:9 v: direct index for structure (temp 2-component vector of float)
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:9 Constant:
|
||||
0:9 0 (const int)
|
||||
0:9 Constant:
|
||||
0:9 1 (const int)
|
||||
0:9 direct index (temp float)
|
||||
0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:9 Constant:
|
||||
0:9 1 (const int)
|
||||
0:9 Constant:
|
||||
0:9 0 (const int)
|
||||
0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float)
|
||||
0:13 Function Parameters:
|
||||
0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:13 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:? Sequence
|
||||
0:15 Sequence
|
||||
0:15 move second child to first child (temp 2-component vector of float)
|
||||
0:15 v: direct index for structure (temp 2-component vector of float)
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:? 'v' (layout(location=0 ) in 2-component vector of float)
|
||||
0:15 move second child to first child (temp 4-component vector of float)
|
||||
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:? 'fragCoord' (in 4-component vector of float FragCoord)
|
||||
0:15 move second child to first child (temp 2-component vector of int)
|
||||
0:15 i2: direct index for structure (temp 2-component vector of int)
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:15 Constant:
|
||||
0:15 2 (const int)
|
||||
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
|
||||
0:15 move second child to first child (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child (temp float)
|
||||
0:16 'ret1' (temp float)
|
||||
0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
|
||||
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child (temp float)
|
||||
0:17 'ret2' (temp float)
|
||||
0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
|
||||
0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child (temp 2-component vector of float)
|
||||
0:17 v: direct index for structure (temp 2-component vector of float)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:? 'v' (layout(location=0 ) in 2-component vector of float)
|
||||
0:17 move second child to first child (temp 4-component vector of float)
|
||||
0:17 fragCoord: direct index for structure (temp 4-component vector of float)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:? 'fragCoord' (in 4-component vector of float FragCoord)
|
||||
0:17 move second child to first child (temp 2-component vector of int)
|
||||
0:17 i2: direct index for structure (temp 2-component vector of int)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
|
||||
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:19 vector-scale (temp 4-component vector of float)
|
||||
0:19 vector-scale (temp 4-component vector of float)
|
||||
0:19 fragCoord: direct index for structure (temp 4-component vector of float)
|
||||
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
|
||||
0:19 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:19 'ret1' (temp float)
|
||||
@@ -187,18 +113,16 @@ gl_FragCoord origin is upper left
|
||||
0:19 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'v' (layout(location=0 ) in 2-component vector of float)
|
||||
0:? 'fragCoord' (in 4-component vector of float FragCoord)
|
||||
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
|
||||
0:? 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 71
|
||||
// Id's are bound by 52
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 32 37 43 63
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 32 43
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "InParam"
|
||||
@@ -208,19 +132,15 @@ gl_FragCoord origin is upper left
|
||||
Name 15 "fun(struct-InParam-vf2-vf4-vi21;"
|
||||
Name 14 "p"
|
||||
Name 30 "local"
|
||||
Name 32 "v"
|
||||
Name 37 "fragCoord"
|
||||
Name 43 "i2"
|
||||
Name 47 "ret1"
|
||||
Name 48 "param"
|
||||
Name 51 "ret2"
|
||||
Name 52 "aggShadow"
|
||||
Name 59 "param"
|
||||
Name 63 "@entryPointOutput"
|
||||
Decorate 32(v) Location 0
|
||||
Decorate 37(fragCoord) BuiltIn FragCoord
|
||||
Decorate 43(i2) Location 1
|
||||
Decorate 63(@entryPointOutput) Location 0
|
||||
Name 32 "i"
|
||||
Name 34 "ret1"
|
||||
Name 35 "param"
|
||||
Name 38 "ret2"
|
||||
Name 39 "param"
|
||||
Name 43 "@entryPointOutput"
|
||||
MemberDecorate 11(InParam) 1 BuiltIn FragCoord
|
||||
Decorate 32(i) Location 0
|
||||
Decorate 43(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -237,59 +157,35 @@ gl_FragCoord origin is upper left
|
||||
20: TypePointer Function 6(float)
|
||||
23: 9(int) Constant 1
|
||||
24: 18(int) Constant 0
|
||||
31: TypePointer Input 7(fvec2)
|
||||
32(v): 31(ptr) Variable Input
|
||||
34: TypePointer Function 7(fvec2)
|
||||
36: TypePointer Input 8(fvec4)
|
||||
37(fragCoord): 36(ptr) Variable Input
|
||||
39: TypePointer Function 8(fvec4)
|
||||
41: 9(int) Constant 2
|
||||
42: TypePointer Input 10(ivec2)
|
||||
43(i2): 42(ptr) Variable Input
|
||||
45: TypePointer Function 10(ivec2)
|
||||
62: TypePointer Output 8(fvec4)
|
||||
63(@entryPointOutput): 62(ptr) Variable Output
|
||||
31: TypePointer Input 11(InParam)
|
||||
32(i): 31(ptr) Variable Input
|
||||
42: TypePointer Output 8(fvec4)
|
||||
43(@entryPointOutput): 42(ptr) Variable Output
|
||||
44: TypePointer Function 8(fvec4)
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
30(local): 12(ptr) Variable Function
|
||||
47(ret1): 20(ptr) Variable Function
|
||||
48(param): 12(ptr) Variable Function
|
||||
51(ret2): 20(ptr) Variable Function
|
||||
52(aggShadow): 12(ptr) Variable Function
|
||||
59(param): 12(ptr) Variable Function
|
||||
33: 7(fvec2) Load 32(v)
|
||||
35: 34(ptr) AccessChain 30(local) 17
|
||||
Store 35 33
|
||||
38: 8(fvec4) Load 37(fragCoord)
|
||||
40: 39(ptr) AccessChain 30(local) 23
|
||||
Store 40 38
|
||||
44: 10(ivec2) Load 43(i2)
|
||||
46: 45(ptr) AccessChain 30(local) 41
|
||||
Store 46 44
|
||||
49: 11(InParam) Load 30(local)
|
||||
Store 48(param) 49
|
||||
50: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 48(param)
|
||||
Store 47(ret1) 50
|
||||
53: 7(fvec2) Load 32(v)
|
||||
54: 34(ptr) AccessChain 52(aggShadow) 17
|
||||
Store 54 53
|
||||
55: 8(fvec4) Load 37(fragCoord)
|
||||
56: 39(ptr) AccessChain 52(aggShadow) 23
|
||||
Store 56 55
|
||||
57: 10(ivec2) Load 43(i2)
|
||||
58: 45(ptr) AccessChain 52(aggShadow) 41
|
||||
Store 58 57
|
||||
60: 11(InParam) Load 52(aggShadow)
|
||||
Store 59(param) 60
|
||||
61: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 59(param)
|
||||
Store 51(ret2) 61
|
||||
64: 39(ptr) AccessChain 30(local) 23
|
||||
65: 8(fvec4) Load 64
|
||||
66: 6(float) Load 47(ret1)
|
||||
67: 8(fvec4) VectorTimesScalar 65 66
|
||||
68: 6(float) Load 51(ret2)
|
||||
69: 8(fvec4) VectorTimesScalar 67 68
|
||||
Store 63(@entryPointOutput) 69
|
||||
34(ret1): 20(ptr) Variable Function
|
||||
35(param): 12(ptr) Variable Function
|
||||
38(ret2): 20(ptr) Variable Function
|
||||
39(param): 12(ptr) Variable Function
|
||||
33: 11(InParam) Load 32(i)
|
||||
Store 30(local) 33
|
||||
36: 11(InParam) Load 30(local)
|
||||
Store 35(param) 36
|
||||
37: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 35(param)
|
||||
Store 34(ret1) 37
|
||||
40: 11(InParam) Load 32(i)
|
||||
Store 39(param) 40
|
||||
41: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 39(param)
|
||||
Store 38(ret2) 41
|
||||
45: 44(ptr) AccessChain 30(local) 23
|
||||
46: 8(fvec4) Load 45
|
||||
47: 6(float) Load 34(ret1)
|
||||
48: 8(fvec4) VectorTimesScalar 46 47
|
||||
49: 6(float) Load 38(ret2)
|
||||
50: 8(fvec4) VectorTimesScalar 48 49
|
||||
Store 43(@entryPointOutput) 50
|
||||
Return
|
||||
FunctionEnd
|
||||
15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13
|
||||
|
||||
@@ -9,7 +9,7 @@ gl_FragCoord origin is upper left
|
||||
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Parameters:
|
||||
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? Sequence
|
||||
0:39 Compare Equal (temp bool)
|
||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
@@ -19,7 +19,10 @@ gl_FragCoord origin is upper left
|
||||
0:40 's2' (global structure{temp 4-component vector of float i})
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 7 (const int)
|
||||
0:42 Sequence
|
||||
0:42 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
@@ -28,14 +31,7 @@ gl_FragCoord origin is upper left
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'a' (layout(location=1 ) smooth in 4-component vector of float)
|
||||
0:? 'b' (layout(location=2 ) flat in bool)
|
||||
0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float)
|
||||
0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float)
|
||||
0:? 'ff1' (in bool Face)
|
||||
0:? 'ff2' (layout(location=5 offset=4 ) in bool)
|
||||
0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
|
||||
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||
0:? 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
||||
|
||||
@@ -49,7 +45,7 @@ gl_FragCoord origin is upper left
|
||||
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Parameters:
|
||||
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? Sequence
|
||||
0:39 Compare Equal (temp bool)
|
||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
@@ -59,7 +55,10 @@ gl_FragCoord origin is upper left
|
||||
0:40 's2' (global structure{temp 4-component vector of float i})
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 7 (const int)
|
||||
0:42 Sequence
|
||||
0:42 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
@@ -68,25 +67,18 @@ gl_FragCoord origin is upper left
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'a' (layout(location=1 ) smooth in 4-component vector of float)
|
||||
0:? 'b' (layout(location=2 ) flat in bool)
|
||||
0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float)
|
||||
0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float)
|
||||
0:? 'ff1' (in bool Face)
|
||||
0:? 'ff2' (layout(location=5 offset=4 ) in bool)
|
||||
0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
|
||||
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
|
||||
0:? 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 50
|
||||
// Id's are bound by 44
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 34 36 38 41 42 43 44
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 27 35 36
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 8 "FS"
|
||||
@@ -95,54 +87,41 @@ gl_FragCoord origin is upper left
|
||||
Name 19 ""
|
||||
MemberName 19 0 "i"
|
||||
Name 21 "s2"
|
||||
Name 25 "ff4"
|
||||
Name 30 "@entryPointOutput"
|
||||
Name 31 "input"
|
||||
Name 34 "a"
|
||||
Name 36 "b"
|
||||
Name 38 "c"
|
||||
Name 41 "d"
|
||||
Name 42 "ff1"
|
||||
Name 43 "ff2"
|
||||
Name 44 "ff3"
|
||||
Name 46 "myS"
|
||||
MemberName 46(myS) 0 "b"
|
||||
MemberName 46(myS) 1 "c"
|
||||
MemberName 46(myS) 2 "a"
|
||||
MemberName 46(myS) 3 "d"
|
||||
Name 47 "$Global"
|
||||
MemberName 47($Global) 0 "s1"
|
||||
MemberName 47($Global) 1 "ff5"
|
||||
MemberName 47($Global) 2 "ff6"
|
||||
Name 49 ""
|
||||
Decorate 25(ff4) Offset 4
|
||||
Decorate 25(ff4) Location 7
|
||||
Decorate 25(ff4) Binding 0
|
||||
Decorate 30(@entryPointOutput) Location 0
|
||||
Decorate 31(input) Location 0
|
||||
Decorate 34(a) Location 1
|
||||
Decorate 36(b) Flat
|
||||
Decorate 36(b) Location 2
|
||||
Decorate 38(c) NoPerspective
|
||||
Decorate 38(c) Centroid
|
||||
Decorate 38(c) Location 3
|
||||
Decorate 41(d) Centroid
|
||||
Decorate 41(d) Location 4
|
||||
Decorate 42(ff1) BuiltIn FrontFacing
|
||||
Decorate 43(ff2) Offset 4
|
||||
Decorate 43(ff2) Location 5
|
||||
Decorate 44(ff3) Offset 4
|
||||
Decorate 44(ff3) Location 6
|
||||
Decorate 44(ff3) Binding 0
|
||||
MemberDecorate 46(myS) 0 Offset 0
|
||||
MemberDecorate 46(myS) 1 Offset 4
|
||||
MemberDecorate 46(myS) 2 Offset 16
|
||||
MemberDecorate 46(myS) 3 Offset 32
|
||||
MemberDecorate 47($Global) 0 Offset 0
|
||||
MemberDecorate 47($Global) 1 Offset 1620
|
||||
MemberDecorate 47($Global) 2 Offset 1636
|
||||
Decorate 47($Global) Block
|
||||
Decorate 49 DescriptorSet 0
|
||||
Name 25 "IN_S"
|
||||
MemberName 25(IN_S) 0 "a"
|
||||
MemberName 25(IN_S) 1 "b"
|
||||
MemberName 25(IN_S) 2 "c"
|
||||
MemberName 25(IN_S) 3 "d"
|
||||
MemberName 25(IN_S) 4 "ff1"
|
||||
MemberName 25(IN_S) 5 "ff2"
|
||||
MemberName 25(IN_S) 6 "ff3"
|
||||
MemberName 25(IN_S) 7 "ff4"
|
||||
Name 27 "s"
|
||||
Name 35 "@entryPointOutput"
|
||||
Name 36 "input"
|
||||
Name 40 "myS"
|
||||
MemberName 40(myS) 0 "b"
|
||||
MemberName 40(myS) 1 "c"
|
||||
MemberName 40(myS) 2 "a"
|
||||
MemberName 40(myS) 3 "d"
|
||||
Name 41 "$Global"
|
||||
MemberName 41($Global) 0 "s1"
|
||||
MemberName 41($Global) 1 "ff5"
|
||||
MemberName 41($Global) 2 "ff6"
|
||||
Name 43 ""
|
||||
MemberDecorate 25(IN_S) 4 BuiltIn FrontFacing
|
||||
Decorate 27(s) Location 1
|
||||
Decorate 35(@entryPointOutput) Location 0
|
||||
Decorate 36(input) Location 0
|
||||
MemberDecorate 40(myS) 0 Offset 0
|
||||
MemberDecorate 40(myS) 1 Offset 4
|
||||
MemberDecorate 40(myS) 2 Offset 16
|
||||
MemberDecorate 40(myS) 3 Offset 32
|
||||
MemberDecorate 41($Global) 0 Offset 0
|
||||
MemberDecorate 41($Global) 1 Offset 1620
|
||||
MemberDecorate 41($Global) 2 Offset 1636
|
||||
Decorate 41($Global) Block
|
||||
Decorate 43 DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeBool
|
||||
@@ -156,28 +135,21 @@ gl_FragCoord origin is upper left
|
||||
21(s2): 20(ptr) Variable Private
|
||||
22: TypeInt 32 1
|
||||
23: 22(int) Constant 0
|
||||
24: TypePointer Input 18(fvec4)
|
||||
25(ff4): 24(ptr) Variable Input
|
||||
27: TypePointer Private 18(fvec4)
|
||||
29: TypePointer Output 18(fvec4)
|
||||
30(@entryPointOutput): 29(ptr) Variable Output
|
||||
31(input): 24(ptr) Variable Input
|
||||
34(a): 24(ptr) Variable Input
|
||||
35: TypePointer Input 6(bool)
|
||||
36(b): 35(ptr) Variable Input
|
||||
37: TypePointer Input 17(float)
|
||||
38(c): 37(ptr) Variable Input
|
||||
39: TypeVector 17(float) 2
|
||||
40: TypePointer Input 39(fvec2)
|
||||
41(d): 40(ptr) Variable Input
|
||||
42(ff1): 35(ptr) Variable Input
|
||||
43(ff2): 35(ptr) Variable Input
|
||||
44(ff3): 35(ptr) Variable Input
|
||||
45: TypeInt 32 0
|
||||
46(myS): TypeStruct 45(int) 45(int) 18(fvec4) 18(fvec4)
|
||||
47($Global): TypeStruct 46(myS) 17(float) 17(float)
|
||||
48: TypePointer Uniform 47($Global)
|
||||
49: 48(ptr) Variable Uniform
|
||||
24: TypeVector 17(float) 2
|
||||
25(IN_S): TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
||||
26: TypePointer Input 25(IN_S)
|
||||
27(s): 26(ptr) Variable Input
|
||||
28: 22(int) Constant 7
|
||||
29: TypePointer Input 18(fvec4)
|
||||
32: TypePointer Private 18(fvec4)
|
||||
34: TypePointer Output 18(fvec4)
|
||||
35(@entryPointOutput): 34(ptr) Variable Output
|
||||
36(input): 29(ptr) Variable Input
|
||||
39: TypeInt 32 0
|
||||
40(myS): TypeStruct 39(int) 39(int) 18(fvec4) 18(fvec4)
|
||||
41($Global): TypeStruct 40(myS) 17(float) 17(float)
|
||||
42: TypePointer Uniform 41($Global)
|
||||
43: 42(ptr) Variable Uniform
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10(s3): 9(ptr) Variable Function
|
||||
@@ -187,10 +159,11 @@ gl_FragCoord origin is upper left
|
||||
14: 7(bvec3) CompositeExtract 12 0
|
||||
15: 7(bvec3) LogicalEqual 13 14
|
||||
16: 6(bool) All 15
|
||||
26: 18(fvec4) Load 25(ff4)
|
||||
28: 27(ptr) AccessChain 21(s2) 23
|
||||
Store 28 26
|
||||
32: 18(fvec4) Load 31(input)
|
||||
Store 30(@entryPointOutput) 32
|
||||
30: 29(ptr) AccessChain 27(s) 28
|
||||
31: 18(fvec4) Load 30
|
||||
33: 32(ptr) AccessChain 21(s2) 23
|
||||
Store 33 31
|
||||
37: 18(fvec4) Load 36(input)
|
||||
Store 35(@entryPointOutput) 37
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
209
Test/baseResults/hlsl.struct.split-1.vert.out
Normal file
209
Test/baseResults/hlsl.struct.split-1.vert.out
Normal file
@@ -0,0 +1,209 @@
|
||||
hlsl.struct.split-1.vert
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:17 Function Definition: main(struct-VS_INPUT-i1-vf4-i11;vf4; (temp structure{temp int x0_out, temp 4-component vector of float Position Pos_out, temp int x1_out})
|
||||
0:17 Function Parameters:
|
||||
0:17 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:17 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:? Sequence
|
||||
0:20 move second child to first child (temp int)
|
||||
0:20 x0_out: direct index for structure (temp int)
|
||||
0:20 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:21 move second child to first child (temp 4-component vector of float)
|
||||
0:21 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:21 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 add (temp 4-component vector of float)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:21 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:22 move second child to first child (temp int)
|
||||
0:22 x1_out: direct index for structure (temp int)
|
||||
0:22 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:22 Constant:
|
||||
0:22 2 (const int)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:24 Sequence
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child (temp int)
|
||||
0:24 x0_out: direct index for structure (temp int)
|
||||
0:24 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 x0_out: direct index for structure (temp int)
|
||||
0:24 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
0:24 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:24 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 move second child to first child (temp int)
|
||||
0:24 x1_out: direct index for structure (temp int)
|
||||
0:24 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 x1_out: direct index for structure (temp int)
|
||||
0:24 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 2 (const int)
|
||||
0:24 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:? 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:17 Function Definition: main(struct-VS_INPUT-i1-vf4-i11;vf4; (temp structure{temp int x0_out, temp 4-component vector of float Position Pos_out, temp int x1_out})
|
||||
0:17 Function Parameters:
|
||||
0:17 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:17 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:? Sequence
|
||||
0:20 move second child to first child (temp int)
|
||||
0:20 x0_out: direct index for structure (temp int)
|
||||
0:20 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:21 move second child to first child (temp 4-component vector of float)
|
||||
0:21 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:21 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 add (temp 4-component vector of float)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:21 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:22 move second child to first child (temp int)
|
||||
0:22 x1_out: direct index for structure (temp int)
|
||||
0:22 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:22 Constant:
|
||||
0:22 2 (const int)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:24 Sequence
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child (temp int)
|
||||
0:24 x0_out: direct index for structure (temp int)
|
||||
0:24 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 x0_out: direct index for structure (temp int)
|
||||
0:24 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
0:24 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:24 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 move second child to first child (temp int)
|
||||
0:24 x1_out: direct index for structure (temp int)
|
||||
0:24 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 x1_out: direct index for structure (temp int)
|
||||
0:24 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:24 Constant:
|
||||
0:24 2 (const int)
|
||||
0:24 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:? 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 46
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 14 20 22 28 33 39
|
||||
Name 4 "main"
|
||||
Name 9 "VS_OUTPUT"
|
||||
MemberName 9(VS_OUTPUT) 0 "x0_out"
|
||||
MemberName 9(VS_OUTPUT) 1 "Pos_out"
|
||||
MemberName 9(VS_OUTPUT) 2 "x1_out"
|
||||
Name 11 "vsout"
|
||||
Name 14 "x0_in"
|
||||
Name 20 "Pos_in"
|
||||
Name 22 "Pos_loose"
|
||||
Name 28 "x1_in"
|
||||
Name 31 "VS_OUTPUT"
|
||||
MemberName 31(VS_OUTPUT) 0 "x0_out"
|
||||
MemberName 31(VS_OUTPUT) 1 "x1_out"
|
||||
Name 33 "@entryPointOutput"
|
||||
Name 39 "Pos_out"
|
||||
Decorate 14(x0_in) Location 0
|
||||
Decorate 20(Pos_in) BuiltIn Position
|
||||
Decorate 22(Pos_loose) BuiltIn Position
|
||||
Decorate 28(x1_in) Location 1
|
||||
Decorate 33(@entryPointOutput) Location 0
|
||||
Decorate 39(Pos_out) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int)
|
||||
10: TypePointer Function 9(VS_OUTPUT)
|
||||
12: 6(int) Constant 0
|
||||
13: TypePointer Input 6(int)
|
||||
14(x0_in): 13(ptr) Variable Input
|
||||
16: TypePointer Function 6(int)
|
||||
18: 6(int) Constant 1
|
||||
19: TypePointer Input 8(fvec4)
|
||||
20(Pos_in): 19(ptr) Variable Input
|
||||
22(Pos_loose): 19(ptr) Variable Input
|
||||
25: TypePointer Function 8(fvec4)
|
||||
27: 6(int) Constant 2
|
||||
28(x1_in): 13(ptr) Variable Input
|
||||
31(VS_OUTPUT): TypeStruct 6(int) 6(int)
|
||||
32: TypePointer Output 31(VS_OUTPUT)
|
||||
33(@entryPointOutput): 32(ptr) Variable Output
|
||||
36: TypePointer Output 6(int)
|
||||
38: TypePointer Output 8(fvec4)
|
||||
39(Pos_out): 38(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
11(vsout): 10(ptr) Variable Function
|
||||
15: 6(int) Load 14(x0_in)
|
||||
17: 16(ptr) AccessChain 11(vsout) 12
|
||||
Store 17 15
|
||||
21: 8(fvec4) Load 20(Pos_in)
|
||||
23: 8(fvec4) Load 22(Pos_loose)
|
||||
24: 8(fvec4) FAdd 21 23
|
||||
26: 25(ptr) AccessChain 11(vsout) 18
|
||||
Store 26 24
|
||||
29: 6(int) Load 28(x1_in)
|
||||
30: 16(ptr) AccessChain 11(vsout) 27
|
||||
Store 30 29
|
||||
34: 16(ptr) AccessChain 11(vsout) 12
|
||||
35: 6(int) Load 34
|
||||
37: 36(ptr) AccessChain 33(@entryPointOutput) 12
|
||||
Store 37 35
|
||||
40: 25(ptr) AccessChain 11(vsout) 18
|
||||
41: 8(fvec4) Load 40
|
||||
Store 39(Pos_out) 41
|
||||
42: 16(ptr) AccessChain 11(vsout) 27
|
||||
43: 6(int) Load 42
|
||||
44: 36(ptr) AccessChain 33(@entryPointOutput) 18
|
||||
Store 44 43
|
||||
Return
|
||||
FunctionEnd
|
||||
317
Test/baseResults/hlsl.struct.split.call.vert.out
Normal file
317
Test/baseResults/hlsl.struct.split.call.vert.out
Normal file
@@ -0,0 +1,317 @@
|
||||
hlsl.struct.split.call.vert
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
||||
0:17 Function Parameters:
|
||||
0:17 'fn1_in' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:17 'fn1_out' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:? Sequence
|
||||
0:18 add (temp 4-component vector of float)
|
||||
0:18 Pos_in: direct index for structure (temp 4-component vector of float)
|
||||
0:18 'fn1_in' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:18 'fn1_out' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:22 Function Definition: main(struct-VS_INPUT-i1-vf4-i11; (temp structure{temp int x0_out, temp 4-component vector of float Position Pos_out, temp int x1_out})
|
||||
0:22 Function Parameters:
|
||||
0:22 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:? Sequence
|
||||
0:25 move second child to first child (temp int)
|
||||
0:25 x0_out: direct index for structure (temp int)
|
||||
0:25 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:26 move second child to first child (temp 4-component vector of float)
|
||||
0:26 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:26 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:27 move second child to first child (temp int)
|
||||
0:27 x1_out: direct index for structure (temp int)
|
||||
0:27 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
||||
0:29 Comma (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child (temp int)
|
||||
0:29 x0_in: direct index for structure (temp int)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:29 move second child to first child (temp 4-component vector of float)
|
||||
0:29 Pos_in: direct index for structure (temp 4-component vector of float)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:29 move second child to first child (temp int)
|
||||
0:29 x1_in: direct index for structure (temp int)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Sequence
|
||||
0:31 Sequence
|
||||
0:31 move second child to first child (temp int)
|
||||
0:31 x0_out: direct index for structure (temp int)
|
||||
0:31 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 x0_out: direct index for structure (temp int)
|
||||
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
0:31 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 move second child to first child (temp int)
|
||||
0:31 x1_out: direct index for structure (temp int)
|
||||
0:31 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 x1_out: direct index for structure (temp int)
|
||||
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 2 (const int)
|
||||
0:31 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
||||
0:17 Function Parameters:
|
||||
0:17 'fn1_in' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:17 'fn1_out' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:? Sequence
|
||||
0:18 add (temp 4-component vector of float)
|
||||
0:18 Pos_in: direct index for structure (temp 4-component vector of float)
|
||||
0:18 'fn1_in' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:18 'fn1_out' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:22 Function Definition: main(struct-VS_INPUT-i1-vf4-i11; (temp structure{temp int x0_out, temp 4-component vector of float Position Pos_out, temp int x1_out})
|
||||
0:22 Function Parameters:
|
||||
0:22 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:? Sequence
|
||||
0:25 move second child to first child (temp int)
|
||||
0:25 x0_out: direct index for structure (temp int)
|
||||
0:25 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:26 move second child to first child (temp 4-component vector of float)
|
||||
0:26 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:26 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:27 move second child to first child (temp int)
|
||||
0:27 x1_out: direct index for structure (temp int)
|
||||
0:27 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
||||
0:29 Comma (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child (temp int)
|
||||
0:29 x0_in: direct index for structure (temp int)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:29 move second child to first child (temp 4-component vector of float)
|
||||
0:29 Pos_in: direct index for structure (temp 4-component vector of float)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:29 move second child to first child (temp int)
|
||||
0:29 x1_in: direct index for structure (temp int)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:29 'aggShadow' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
||||
0:29 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Sequence
|
||||
0:31 Sequence
|
||||
0:31 move second child to first child (temp int)
|
||||
0:31 x0_out: direct index for structure (temp int)
|
||||
0:31 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 x0_out: direct index for structure (temp int)
|
||||
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
0:31 Pos_out: direct index for structure (temp 4-component vector of float)
|
||||
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 move second child to first child (temp int)
|
||||
0:31 x1_out: direct index for structure (temp int)
|
||||
0:31 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 x1_out: direct index for structure (temp int)
|
||||
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
||||
0:31 Constant:
|
||||
0:31 2 (const int)
|
||||
0:31 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
||||
0:? 'x0_in' (layout(location=0 ) in int)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:? 'x1_in' (layout(location=1 ) in int)
|
||||
0:? 'Pos_out' (out 4-component vector of float Position)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 69
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 28 33 37 56 62
|
||||
Name 4 "main"
|
||||
Name 9 "VS_INPUT"
|
||||
MemberName 9(VS_INPUT) 0 "x0_in"
|
||||
MemberName 9(VS_INPUT) 1 "Pos_in"
|
||||
MemberName 9(VS_INPUT) 2 "x1_in"
|
||||
Name 11 "VS_OUTPUT"
|
||||
MemberName 11(VS_OUTPUT) 0 "x0_out"
|
||||
MemberName 11(VS_OUTPUT) 1 "Pos_out"
|
||||
MemberName 11(VS_OUTPUT) 2 "x1_out"
|
||||
Name 16 "Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;"
|
||||
Name 14 "fn1_in"
|
||||
Name 15 "fn1_out"
|
||||
Name 25 "vsout"
|
||||
Name 28 "x0_in"
|
||||
Name 33 "Pos_in"
|
||||
Name 37 "x1_in"
|
||||
Name 40 "VS_INPUT"
|
||||
MemberName 40(VS_INPUT) 0 "x0_in"
|
||||
MemberName 40(VS_INPUT) 1 "Pos_in"
|
||||
MemberName 40(VS_INPUT) 2 "x1_in"
|
||||
Name 42 "aggShadow"
|
||||
Name 49 "param"
|
||||
Name 51 "param"
|
||||
Name 54 "VS_OUTPUT"
|
||||
MemberName 54(VS_OUTPUT) 0 "x0_out"
|
||||
MemberName 54(VS_OUTPUT) 1 "x1_out"
|
||||
Name 56 "@entryPointOutput"
|
||||
Name 62 "Pos_out"
|
||||
Decorate 28(x0_in) Location 0
|
||||
Decorate 33(Pos_in) BuiltIn Position
|
||||
Decorate 37(x1_in) Location 1
|
||||
Decorate 56(@entryPointOutput) Location 0
|
||||
Decorate 62(Pos_out) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int)
|
||||
10: TypePointer Function 9(VS_INPUT)
|
||||
11(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int)
|
||||
12: TypePointer Function 11(VS_OUTPUT)
|
||||
13: TypeFunction 2 10(ptr) 12(ptr)
|
||||
18: 6(int) Constant 1
|
||||
19: TypePointer Function 8(fvec4)
|
||||
26: 6(int) Constant 0
|
||||
27: TypePointer Input 6(int)
|
||||
28(x0_in): 27(ptr) Variable Input
|
||||
30: TypePointer Function 6(int)
|
||||
32: TypePointer Input 8(fvec4)
|
||||
33(Pos_in): 32(ptr) Variable Input
|
||||
36: 6(int) Constant 2
|
||||
37(x1_in): 27(ptr) Variable Input
|
||||
40(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int)
|
||||
41: TypePointer Function 40(VS_INPUT)
|
||||
54(VS_OUTPUT): TypeStruct 6(int) 6(int)
|
||||
55: TypePointer Output 54(VS_OUTPUT)
|
||||
56(@entryPointOutput): 55(ptr) Variable Output
|
||||
59: TypePointer Output 6(int)
|
||||
61: TypePointer Output 8(fvec4)
|
||||
62(Pos_out): 61(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
25(vsout): 12(ptr) Variable Function
|
||||
42(aggShadow): 41(ptr) Variable Function
|
||||
49(param): 41(ptr) Variable Function
|
||||
51(param): 12(ptr) Variable Function
|
||||
29: 6(int) Load 28(x0_in)
|
||||
31: 30(ptr) AccessChain 25(vsout) 26
|
||||
Store 31 29
|
||||
34: 8(fvec4) Load 33(Pos_in)
|
||||
35: 19(ptr) AccessChain 25(vsout) 18
|
||||
Store 35 34
|
||||
38: 6(int) Load 37(x1_in)
|
||||
39: 30(ptr) AccessChain 25(vsout) 36
|
||||
Store 39 38
|
||||
43: 6(int) Load 28(x0_in)
|
||||
44: 30(ptr) AccessChain 42(aggShadow) 26
|
||||
Store 44 43
|
||||
45: 8(fvec4) Load 33(Pos_in)
|
||||
46: 19(ptr) AccessChain 42(aggShadow) 18
|
||||
Store 46 45
|
||||
47: 6(int) Load 37(x1_in)
|
||||
48: 30(ptr) AccessChain 42(aggShadow) 36
|
||||
Store 48 47
|
||||
50:40(VS_INPUT) Load 42(aggShadow)
|
||||
Store 49(param) 50
|
||||
52:11(VS_OUTPUT) Load 25(vsout)
|
||||
Store 51(param) 52
|
||||
53: 2 FunctionCall 16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;) 49(param) 51(param)
|
||||
57: 30(ptr) AccessChain 25(vsout) 26
|
||||
58: 6(int) Load 57
|
||||
60: 59(ptr) AccessChain 56(@entryPointOutput) 26
|
||||
Store 60 58
|
||||
63: 19(ptr) AccessChain 25(vsout) 18
|
||||
64: 8(fvec4) Load 63
|
||||
Store 62(Pos_out) 64
|
||||
65: 30(ptr) AccessChain 25(vsout) 36
|
||||
66: 6(int) Load 65
|
||||
67: 59(ptr) AccessChain 56(@entryPointOutput) 18
|
||||
Store 67 66
|
||||
Return
|
||||
FunctionEnd
|
||||
16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;): 2 Function None 13
|
||||
14(fn1_in): 10(ptr) FunctionParameter
|
||||
15(fn1_out): 12(ptr) FunctionParameter
|
||||
17: Label
|
||||
20: 19(ptr) AccessChain 14(fn1_in) 18
|
||||
21: 8(fvec4) Load 20
|
||||
22: 19(ptr) AccessChain 15(fn1_out) 18
|
||||
23: 8(fvec4) Load 22
|
||||
24: 8(fvec4) FAdd 21 23
|
||||
Return
|
||||
FunctionEnd
|
||||
108
Test/baseResults/hlsl.struct.split.trivial.vert.out
Normal file
108
Test/baseResults/hlsl.struct.split.trivial.vert.out
Normal file
@@ -0,0 +1,108 @@
|
||||
hlsl.struct.split.trivial.vert
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:16 Function Definition: main(struct-VS_INPUT-vf41;vf4; (temp structure{temp 4-component vector of float Pos})
|
||||
0:16 Function Parameters:
|
||||
0:16 'vsin' (in structure{temp 4-component vector of float Pos_in})
|
||||
0:16 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:? Sequence
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:19 Pos: direct index for structure (temp 4-component vector of float)
|
||||
0:19 'vsout' (temp structure{temp 4-component vector of float Pos})
|
||||
0:19 Constant:
|
||||
0:19 0 (const int)
|
||||
0:19 add (temp 4-component vector of float)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:19 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:21 Sequence
|
||||
0:21 Sequence
|
||||
0:21 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'Pos' (out 4-component vector of float Position)
|
||||
0:21 Pos: direct index for structure (temp 4-component vector of float)
|
||||
0:21 'vsout' (temp structure{temp 4-component vector of float Pos})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? 'Pos' (out 4-component vector of float Position)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:? 'Pos_loose' (in 4-component vector of float Position)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:16 Function Definition: main(struct-VS_INPUT-vf41;vf4; (temp structure{temp 4-component vector of float Pos})
|
||||
0:16 Function Parameters:
|
||||
0:16 'vsin' (in structure{temp 4-component vector of float Pos_in})
|
||||
0:16 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:? Sequence
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:19 Pos: direct index for structure (temp 4-component vector of float)
|
||||
0:19 'vsout' (temp structure{temp 4-component vector of float Pos})
|
||||
0:19 Constant:
|
||||
0:19 0 (const int)
|
||||
0:19 add (temp 4-component vector of float)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:19 'Pos_loose' (in 4-component vector of float Position)
|
||||
0:21 Sequence
|
||||
0:21 Sequence
|
||||
0:21 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'Pos' (out 4-component vector of float Position)
|
||||
0:21 Pos: direct index for structure (temp 4-component vector of float)
|
||||
0:21 'vsout' (temp structure{temp 4-component vector of float Pos})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? 'Pos' (out 4-component vector of float Position)
|
||||
0:? 'Pos_in' (in 4-component vector of float Position)
|
||||
0:? 'Pos_loose' (in 4-component vector of float Position)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 26
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 14 16 22
|
||||
Name 4 "main"
|
||||
Name 8 "VS_OUTPUT"
|
||||
MemberName 8(VS_OUTPUT) 0 "Pos"
|
||||
Name 10 "vsout"
|
||||
Name 14 "Pos_in"
|
||||
Name 16 "Pos_loose"
|
||||
Name 22 "Pos"
|
||||
Decorate 14(Pos_in) BuiltIn Position
|
||||
Decorate 16(Pos_loose) BuiltIn Position
|
||||
Decorate 22(Pos) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(VS_OUTPUT): TypeStruct 7(fvec4)
|
||||
9: TypePointer Function 8(VS_OUTPUT)
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: TypePointer Input 7(fvec4)
|
||||
14(Pos_in): 13(ptr) Variable Input
|
||||
16(Pos_loose): 13(ptr) Variable Input
|
||||
19: TypePointer Function 7(fvec4)
|
||||
21: TypePointer Output 7(fvec4)
|
||||
22(Pos): 21(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(vsout): 9(ptr) Variable Function
|
||||
15: 7(fvec4) Load 14(Pos_in)
|
||||
17: 7(fvec4) Load 16(Pos_loose)
|
||||
18: 7(fvec4) FAdd 15 17
|
||||
20: 19(ptr) AccessChain 10(vsout) 12
|
||||
Store 20 18
|
||||
23: 19(ptr) AccessChain 10(vsout) 12
|
||||
24: 7(fvec4) Load 23
|
||||
Store 22(Pos) 24
|
||||
Return
|
||||
FunctionEnd
|
||||
@@ -1,52 +1,82 @@
|
||||
hlsl.structarray.flatten.geom
|
||||
ERROR: 0:10: 'vin' : recursive type not yet supported in GS input
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
invocations = -1
|
||||
max_vertices = 4
|
||||
input primitive = lines
|
||||
output primitive = triangle_strip
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void)
|
||||
0:10 Function Parameters:
|
||||
0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? Sequence
|
||||
0:16 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; (temp void)
|
||||
0:16 Function Parameters:
|
||||
0:16 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 'outStream' (out structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? Sequence
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:13 color: direct index for structure (temp 4-component vector of float)
|
||||
0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
|
||||
0:14 move second child to first child (temp 2-component vector of float)
|
||||
0:14 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
|
||||
0:15 move second child to first child (temp 4-component vector of float)
|
||||
0:15 position: direct index for structure (temp 4-component vector of float)
|
||||
0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 EmitVertex (temp void)
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:19 color: direct index for structure (temp 4-component vector of float)
|
||||
0:19 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:19 color: direct index for structure (temp 4-component vector of float)
|
||||
0:19 direct index (layout(location=0 ) temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:19 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:20 move second child to first child (temp 2-component vector of float)
|
||||
0:20 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:20 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:20 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:20 direct index (layout(location=0 ) temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:20 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:20 Constant:
|
||||
0:20 1 (const int)
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:21 move second child to first child (temp 4-component vector of float)
|
||||
0:21 position: direct index for structure (temp 4-component vector of float)
|
||||
0:21 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 position: direct index for structure (temp 4-component vector of float)
|
||||
0:21 direct index (layout(location=0 ) temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:21 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'position' (out 4-component vector of float Position)
|
||||
0:22 position: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 move second child to first child (temp 4-component vector of float)
|
||||
0:22 color: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'outStream' (layout(location=0 ) out structure{temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 color: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 move second child to first child (temp 2-component vector of float)
|
||||
0:22 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:22 'outStream' (layout(location=0 ) out structure{temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 2 (const int)
|
||||
0:22 EmitVertex (temp void)
|
||||
0:? Linker Objects
|
||||
0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
|
||||
0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float)
|
||||
0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float)
|
||||
0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float)
|
||||
0:? 'position' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'color' (layout(location=1 ) out 4-component vector of float)
|
||||
0:? 'uv' (layout(location=2 ) out 2-component vector of float)
|
||||
0:? 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? 'outStream' (layout(location=0 ) out structure{temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? 'position' (out 4-component vector of float Position)
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
@@ -57,44 +87,164 @@ invocations = 1
|
||||
max_vertices = 4
|
||||
input primitive = lines
|
||||
output primitive = triangle_strip
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void)
|
||||
0:10 Function Parameters:
|
||||
0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? Sequence
|
||||
0:16 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; (temp void)
|
||||
0:16 Function Parameters:
|
||||
0:16 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 'outStream' (out structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? Sequence
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:13 color: direct index for structure (temp 4-component vector of float)
|
||||
0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
|
||||
0:14 move second child to first child (temp 2-component vector of float)
|
||||
0:14 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
|
||||
0:15 move second child to first child (temp 4-component vector of float)
|
||||
0:15 position: direct index for structure (temp 4-component vector of float)
|
||||
0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:16 EmitVertex (temp void)
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:19 color: direct index for structure (temp 4-component vector of float)
|
||||
0:19 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:19 color: direct index for structure (temp 4-component vector of float)
|
||||
0:19 direct index (layout(location=0 ) temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:19 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:19 Constant:
|
||||
0:19 1 (const int)
|
||||
0:20 move second child to first child (temp 2-component vector of float)
|
||||
0:20 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:20 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:20 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:20 direct index (layout(location=0 ) temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:20 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:20 Constant:
|
||||
0:20 1 (const int)
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:21 move second child to first child (temp 4-component vector of float)
|
||||
0:21 position: direct index for structure (temp 4-component vector of float)
|
||||
0:21 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 position: direct index for structure (temp 4-component vector of float)
|
||||
0:21 direct index (layout(location=0 ) temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:21 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'position' (out 4-component vector of float Position)
|
||||
0:22 position: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 move second child to first child (temp 4-component vector of float)
|
||||
0:22 color: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'outStream' (layout(location=0 ) out structure{temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 color: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 move second child to first child (temp 2-component vector of float)
|
||||
0:22 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:22 'outStream' (layout(location=0 ) out structure{temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 uv: direct index for structure (temp 2-component vector of float)
|
||||
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:22 Constant:
|
||||
0:22 2 (const int)
|
||||
0:22 EmitVertex (temp void)
|
||||
0:? Linker Objects
|
||||
0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
|
||||
0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float)
|
||||
0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float)
|
||||
0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float)
|
||||
0:? 'position' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'color' (layout(location=1 ) out 4-component vector of float)
|
||||
0:? 'uv' (layout(location=2 ) out 2-component vector of float)
|
||||
0:? 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? 'outStream' (layout(location=0 ) out structure{temp 4-component vector of float color, temp 2-component vector of float uv})
|
||||
0:? 'position' (out 4-component vector of float Position)
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 49
|
||||
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 19 36 41
|
||||
ExecutionMode 4 InputLines
|
||||
ExecutionMode 4 Invocations 1
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputVertices 4
|
||||
Name 4 "main"
|
||||
Name 9 "PS_IN"
|
||||
MemberName 9(PS_IN) 0 "position"
|
||||
MemberName 9(PS_IN) 1 "color"
|
||||
MemberName 9(PS_IN) 2 "uv"
|
||||
Name 11 "vout"
|
||||
Name 14 "VertexData"
|
||||
MemberName 14(VertexData) 0 "position"
|
||||
MemberName 14(VertexData) 1 "color"
|
||||
MemberName 14(VertexData) 2 "uv"
|
||||
Name 19 "vin"
|
||||
Name 36 "position"
|
||||
Name 39 "PS_IN"
|
||||
MemberName 39(PS_IN) 0 "color"
|
||||
MemberName 39(PS_IN) 1 "uv"
|
||||
Name 41 "outStream"
|
||||
Decorate 19(vin) Location 0
|
||||
Decorate 36(position) BuiltIn Position
|
||||
Decorate 41(outStream) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeVector 6(float) 2
|
||||
9(PS_IN): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2)
|
||||
10: TypePointer Function 9(PS_IN)
|
||||
12: TypeInt 32 1
|
||||
13: 12(int) Constant 1
|
||||
14(VertexData): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2)
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 2
|
||||
17: TypeArray 14(VertexData) 16
|
||||
18: TypePointer Input 17
|
||||
19(vin): 18(ptr) Variable Input
|
||||
20: TypePointer Input 7(fvec4)
|
||||
23: TypePointer Function 7(fvec4)
|
||||
25: 12(int) Constant 2
|
||||
26: TypePointer Input 8(fvec2)
|
||||
29: TypePointer Function 8(fvec2)
|
||||
31: 12(int) Constant 0
|
||||
35: TypePointer Output 7(fvec4)
|
||||
36(position): 35(ptr) Variable Output
|
||||
39(PS_IN): TypeStruct 7(fvec4) 8(fvec2)
|
||||
40: TypePointer Output 39(PS_IN)
|
||||
41(outStream): 40(ptr) Variable Output
|
||||
47: TypePointer Output 8(fvec2)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
11(vout): 10(ptr) Variable Function
|
||||
21: 20(ptr) AccessChain 19(vin) 13 13
|
||||
22: 7(fvec4) Load 21
|
||||
24: 23(ptr) AccessChain 11(vout) 13
|
||||
Store 24 22
|
||||
27: 26(ptr) AccessChain 19(vin) 13 25
|
||||
28: 8(fvec2) Load 27
|
||||
30: 29(ptr) AccessChain 11(vout) 25
|
||||
Store 30 28
|
||||
32: 20(ptr) AccessChain 19(vin) 13 31
|
||||
33: 7(fvec4) Load 32
|
||||
34: 23(ptr) AccessChain 11(vout) 31
|
||||
Store 34 33
|
||||
37: 23(ptr) AccessChain 11(vout) 31
|
||||
38: 7(fvec4) Load 37
|
||||
Store 36(position) 38
|
||||
42: 23(ptr) AccessChain 11(vout) 13
|
||||
43: 7(fvec4) Load 42
|
||||
44: 35(ptr) AccessChain 41(outStream) 31
|
||||
Store 44 43
|
||||
45: 29(ptr) AccessChain 11(vout) 25
|
||||
46: 8(fvec2) Load 45
|
||||
48: 47(ptr) AccessChain 41(outStream) 13
|
||||
Store 48 46
|
||||
EmitVertex
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -29,7 +29,13 @@ Shader version: 450
|
||||
0:13 Sequence
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
@@ -38,7 +44,13 @@ Shader version: 450
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
@@ -47,31 +59,32 @@ Shader version: 450
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 move second child to first child (temp 2-component vector of uint)
|
||||
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||
0:13 coord: direct index for structure (temp 2-component vector of uint)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 coord: direct index for structure (temp 2-component vector of uint)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||
0:13 b: direct index for structure (temp 4-component vector of float)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 b: direct index for structure (temp 4-component vector of float)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
|
||||
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||
0:? '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:? 'd' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||
0:? 'b' (layout(location=4 ) in 4-component vector of float)
|
||||
0:? 'b' (layout(location=4 ) smooth in 4-component vector of float)
|
||||
0:? 'e' (layout(location=5 ) in 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
|
||||
|
||||
@@ -109,7 +122,13 @@ Shader version: 450
|
||||
0:13 Sequence
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
@@ -118,7 +137,13 @@ Shader version: 450
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 direct index (temp 4-component vector of float)
|
||||
0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
@@ -127,42 +152,43 @@ Shader version: 450
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 move second child to first child (temp 2-component vector of uint)
|
||||
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||
0:13 coord: direct index for structure (temp 2-component vector of uint)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 coord: direct index for structure (temp 2-component vector of uint)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||
0:13 b: direct index for structure (temp 4-component vector of float)
|
||||
0:13 '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 b: direct index for structure (temp 4-component vector of float)
|
||||
0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 Branch: Return
|
||||
0:? Linker Objects
|
||||
0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
|
||||
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
|
||||
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
|
||||
0:? '@entryPointOutput' (out structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b})
|
||||
0:? 'd' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||
0:? 'b' (layout(location=4 ) in 4-component vector of float)
|
||||
0:? 'b' (layout(location=4 ) smooth in 4-component vector of float)
|
||||
0:? 'e' (layout(location=5 ) in 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
|
||||
0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 59
|
||||
// Id's are bound by 62
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 18 20 24 32 35 41 45 50 54 58
|
||||
EntryPoint Vertex 4 "main" 18 20 24 32 35 42 61
|
||||
Name 4 "main"
|
||||
Name 12 "VI"
|
||||
MemberName 12(VI) 0 "m"
|
||||
@@ -174,21 +200,19 @@ Shader version: 450
|
||||
Name 24 "coord"
|
||||
Name 32 "d"
|
||||
Name 35 "e"
|
||||
Name 41 "m[0]"
|
||||
Name 45 "m[1]"
|
||||
Name 50 "coord"
|
||||
Name 54 "b"
|
||||
Name 58 "b"
|
||||
Name 40 "VI"
|
||||
MemberName 40(VI) 0 "m"
|
||||
MemberName 40(VI) 1 "coord"
|
||||
MemberName 40(VI) 2 "b"
|
||||
Name 42 "@entryPointOutput"
|
||||
Name 61 "b"
|
||||
Decorate 18(m[1]) Location 2
|
||||
Decorate 20(m[0]) Location 1
|
||||
Decorate 24(coord) Location 3
|
||||
Decorate 32(d) Location 0
|
||||
Decorate 35(e) Location 5
|
||||
Decorate 41(m[0]) Location 0
|
||||
Decorate 45(m[1]) Location 1
|
||||
Decorate 50(coord) Location 2
|
||||
Decorate 54(b) Location 3
|
||||
Decorate 58(b) Location 4
|
||||
Decorate 42(@entryPointOutput) BuiltIn Position
|
||||
Decorate 61(b) Location 4
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -211,16 +235,15 @@ Shader version: 450
|
||||
32(d): 17(ptr) Variable Input
|
||||
35(e): 17(ptr) Variable Input
|
||||
38: TypePointer Function 7(fvec4)
|
||||
40: TypePointer Output 7(fvec4)
|
||||
41(m[0]): 40(ptr) Variable Output
|
||||
42: 15(int) Constant 0
|
||||
45(m[1]): 40(ptr) Variable Output
|
||||
46: 15(int) Constant 1
|
||||
49: TypePointer Output 11(ivec2)
|
||||
50(coord): 49(ptr) Variable Output
|
||||
51: TypePointer Function 11(ivec2)
|
||||
54(b): 40(ptr) Variable Output
|
||||
58(b): 17(ptr) Variable Input
|
||||
40(VI): TypeStruct 10 11(ivec2) 7(fvec4)
|
||||
41: TypePointer Output 40(VI)
|
||||
42(@entryPointOutput): 41(ptr) Variable Output
|
||||
43: 15(int) Constant 0
|
||||
46: TypePointer Output 7(fvec4)
|
||||
48: 15(int) Constant 1
|
||||
52: TypePointer Function 11(ivec2)
|
||||
55: TypePointer Output 11(ivec2)
|
||||
61(b): 17(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
14(local): 13(ptr) Variable Function
|
||||
@@ -238,17 +261,21 @@ Shader version: 450
|
||||
37: 7(fvec4) FAdd 34 36
|
||||
39: 38(ptr) AccessChain 14(local) 16
|
||||
Store 39 37
|
||||
43: 38(ptr) AccessChain 14(local) 42 42
|
||||
44: 7(fvec4) Load 43
|
||||
Store 41(m[0]) 44
|
||||
47: 38(ptr) AccessChain 14(local) 42 46
|
||||
48: 7(fvec4) Load 47
|
||||
Store 45(m[1]) 48
|
||||
52: 51(ptr) AccessChain 14(local) 46
|
||||
53: 11(ivec2) Load 52
|
||||
Store 50(coord) 53
|
||||
55: 38(ptr) AccessChain 14(local) 16
|
||||
56: 7(fvec4) Load 55
|
||||
Store 54(b) 56
|
||||
44: 38(ptr) AccessChain 14(local) 43 43
|
||||
45: 7(fvec4) Load 44
|
||||
47: 46(ptr) AccessChain 42(@entryPointOutput) 43 43
|
||||
Store 47 45
|
||||
49: 38(ptr) AccessChain 14(local) 43 48
|
||||
50: 7(fvec4) Load 49
|
||||
51: 46(ptr) AccessChain 42(@entryPointOutput) 43 48
|
||||
Store 51 50
|
||||
53: 52(ptr) AccessChain 14(local) 48
|
||||
54: 11(ivec2) Load 53
|
||||
56: 55(ptr) AccessChain 42(@entryPointOutput) 48
|
||||
Store 56 54
|
||||
57: 38(ptr) AccessChain 14(local) 16
|
||||
58: 7(fvec4) Load 57
|
||||
59: 46(ptr) AccessChain 42(@entryPointOutput) 16
|
||||
Store 59 58
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user