mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
33c7e30860
It is invalid if the same decoration is applied to the same id multiple times. This adds a check before adding a decoration that the decoration is not already in the list. If it is, then the duplicate is not added. Fixes #3627
607 lines
32 KiB
Plaintext
607 lines
32 KiB
Plaintext
hlsl.emptystructreturn.tesc
|
|
Shader version: 500
|
|
vertices = 3
|
|
vertex spacing = equal_spacing
|
|
triangle order = cw
|
|
0:? Sequence
|
|
0:16 Function Definition: blob(struct-HullInputType-vf41[3]; ( temp void)
|
|
0:16 Function Parameters:
|
|
0:16 'patch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:20 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:20 Function Parameters:
|
|
0:20 'inputPatch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:20 'patchId' ( in uint)
|
|
0:? Sequence
|
|
0:24 move second child to first child ( temp float)
|
|
0:24 direct index ( temp float)
|
|
0:24 edges: direct index for structure ( temp 3-element array of float)
|
|
0:24 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:24 Constant:
|
|
0:24 0 (const int)
|
|
0:24 Constant:
|
|
0:24 0 (const int)
|
|
0:24 Constant:
|
|
0:24 2.000000
|
|
0:25 move second child to first child ( temp float)
|
|
0:25 direct index ( temp float)
|
|
0:25 edges: direct index for structure ( temp 3-element array of float)
|
|
0:25 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:25 Constant:
|
|
0:25 0 (const int)
|
|
0:25 Constant:
|
|
0:25 1 (const int)
|
|
0:25 Constant:
|
|
0:25 2.000000
|
|
0:26 move second child to first child ( temp float)
|
|
0:26 direct index ( temp float)
|
|
0:26 edges: direct index for structure ( temp 3-element array of float)
|
|
0:26 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:26 Constant:
|
|
0:26 0 (const int)
|
|
0:26 Constant:
|
|
0:26 2 (const int)
|
|
0:26 Constant:
|
|
0:26 2.000000
|
|
0:29 move second child to first child ( temp float)
|
|
0:29 inside: direct index for structure ( temp float)
|
|
0:29 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:29 Constant:
|
|
0:29 1 (const int)
|
|
0:29 Constant:
|
|
0:29 2.000000
|
|
0:31 Branch: Return with expression
|
|
0:31 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:42 Function Definition: @main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1; ( temp structure{})
|
|
0:42 Function Parameters:
|
|
0:42 'stage_input' ( in structure{})
|
|
0:42 'patch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 'pointId' ( in uint)
|
|
0:42 'patchId' ( in uint)
|
|
0:? Sequence
|
|
0:44 Function Call: blob(struct-HullInputType-vf41[3]; ( temp void)
|
|
0:44 'patch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:46 Branch: Return with expression
|
|
0:46 'output' ( temp structure{})
|
|
0:42 Function Definition: main( ( temp void)
|
|
0:42 Function Parameters:
|
|
0:? Sequence
|
|
0:42 Sequence
|
|
0:42 move second child to first child ( temp structure{})
|
|
0:? 'stage_input' ( temp structure{})
|
|
0:? 'stage_input' ( in structure{})
|
|
0:42 Sequence
|
|
0:42 move second child to first child ( temp 4-component vector of float)
|
|
0:42 position: direct index for structure ( temp 4-component vector of float)
|
|
0:42 direct index ( temp structure{ temp 4-component vector of float position})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 direct index ( in 4-component vector of float Position)
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 move second child to first child ( temp 4-component vector of float)
|
|
0:42 position: direct index for structure ( temp 4-component vector of float)
|
|
0:42 direct index ( temp structure{ temp 4-component vector of float position})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 Constant:
|
|
0:42 1 (const int)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 direct index ( in 4-component vector of float Position)
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:42 Constant:
|
|
0:42 1 (const int)
|
|
0:42 move second child to first child ( temp 4-component vector of float)
|
|
0:42 position: direct index for structure ( temp 4-component vector of float)
|
|
0:42 direct index ( temp structure{ temp 4-component vector of float position})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 Constant:
|
|
0:42 2 (const int)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 direct index ( in 4-component vector of float Position)
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:42 Constant:
|
|
0:42 2 (const int)
|
|
0:42 move second child to first child ( temp uint)
|
|
0:? 'pointId' ( temp uint)
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:42 move second child to first child ( temp uint)
|
|
0:? 'patchId' ( temp uint)
|
|
0:? 'patchId' ( in uint PrimitiveID)
|
|
0:42 Sequence
|
|
0:42 move second child to first child ( temp structure{})
|
|
0:42 indirect index ( out structure{})
|
|
0:? '@entryPointOutput' ( out 3-element array of structure{})
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:42 Function Call: @main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1; ( temp structure{})
|
|
0:? 'stage_input' ( temp structure{})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:? 'pointId' ( temp uint)
|
|
0:? 'patchId' ( temp uint)
|
|
0:? Barrier ( temp void)
|
|
0:? Test condition and select ( temp void)
|
|
0:? Condition
|
|
0:? Compare Equal ( temp bool)
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? true case
|
|
0:? Sequence
|
|
0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:? 'patchId' ( in uint PrimitiveID)
|
|
0:? Sequence
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? edges: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? edges: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? edges: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelInner)
|
|
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? inside: direct index for structure ( temp float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? Linker Objects
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:? 'patchId' ( in uint PrimitiveID)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
|
|
|
|
|
|
Linked tessellation control stage:
|
|
|
|
|
|
Shader version: 500
|
|
vertices = 3
|
|
vertex spacing = equal_spacing
|
|
triangle order = cw
|
|
0:? Sequence
|
|
0:16 Function Definition: blob(struct-HullInputType-vf41[3]; ( temp void)
|
|
0:16 Function Parameters:
|
|
0:16 'patch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:20 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:20 Function Parameters:
|
|
0:20 'inputPatch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:20 'patchId' ( in uint)
|
|
0:? Sequence
|
|
0:24 move second child to first child ( temp float)
|
|
0:24 direct index ( temp float)
|
|
0:24 edges: direct index for structure ( temp 3-element array of float)
|
|
0:24 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:24 Constant:
|
|
0:24 0 (const int)
|
|
0:24 Constant:
|
|
0:24 0 (const int)
|
|
0:24 Constant:
|
|
0:24 2.000000
|
|
0:25 move second child to first child ( temp float)
|
|
0:25 direct index ( temp float)
|
|
0:25 edges: direct index for structure ( temp 3-element array of float)
|
|
0:25 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:25 Constant:
|
|
0:25 0 (const int)
|
|
0:25 Constant:
|
|
0:25 1 (const int)
|
|
0:25 Constant:
|
|
0:25 2.000000
|
|
0:26 move second child to first child ( temp float)
|
|
0:26 direct index ( temp float)
|
|
0:26 edges: direct index for structure ( temp 3-element array of float)
|
|
0:26 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:26 Constant:
|
|
0:26 0 (const int)
|
|
0:26 Constant:
|
|
0:26 2 (const int)
|
|
0:26 Constant:
|
|
0:26 2.000000
|
|
0:29 move second child to first child ( temp float)
|
|
0:29 inside: direct index for structure ( temp float)
|
|
0:29 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:29 Constant:
|
|
0:29 1 (const int)
|
|
0:29 Constant:
|
|
0:29 2.000000
|
|
0:31 Branch: Return with expression
|
|
0:31 'output' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:42 Function Definition: @main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1; ( temp structure{})
|
|
0:42 Function Parameters:
|
|
0:42 'stage_input' ( in structure{})
|
|
0:42 'patch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 'pointId' ( in uint)
|
|
0:42 'patchId' ( in uint)
|
|
0:? Sequence
|
|
0:44 Function Call: blob(struct-HullInputType-vf41[3]; ( temp void)
|
|
0:44 'patch' ( in 3-element array of structure{ temp 4-component vector of float position})
|
|
0:46 Branch: Return with expression
|
|
0:46 'output' ( temp structure{})
|
|
0:42 Function Definition: main( ( temp void)
|
|
0:42 Function Parameters:
|
|
0:? Sequence
|
|
0:42 Sequence
|
|
0:42 move second child to first child ( temp structure{})
|
|
0:? 'stage_input' ( temp structure{})
|
|
0:? 'stage_input' ( in structure{})
|
|
0:42 Sequence
|
|
0:42 move second child to first child ( temp 4-component vector of float)
|
|
0:42 position: direct index for structure ( temp 4-component vector of float)
|
|
0:42 direct index ( temp structure{ temp 4-component vector of float position})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 direct index ( in 4-component vector of float Position)
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 move second child to first child ( temp 4-component vector of float)
|
|
0:42 position: direct index for structure ( temp 4-component vector of float)
|
|
0:42 direct index ( temp structure{ temp 4-component vector of float position})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 Constant:
|
|
0:42 1 (const int)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 direct index ( in 4-component vector of float Position)
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:42 Constant:
|
|
0:42 1 (const int)
|
|
0:42 move second child to first child ( temp 4-component vector of float)
|
|
0:42 position: direct index for structure ( temp 4-component vector of float)
|
|
0:42 direct index ( temp structure{ temp 4-component vector of float position})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:42 Constant:
|
|
0:42 2 (const int)
|
|
0:42 Constant:
|
|
0:42 0 (const int)
|
|
0:42 direct index ( in 4-component vector of float Position)
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:42 Constant:
|
|
0:42 2 (const int)
|
|
0:42 move second child to first child ( temp uint)
|
|
0:? 'pointId' ( temp uint)
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:42 move second child to first child ( temp uint)
|
|
0:? 'patchId' ( temp uint)
|
|
0:? 'patchId' ( in uint PrimitiveID)
|
|
0:42 Sequence
|
|
0:42 move second child to first child ( temp structure{})
|
|
0:42 indirect index ( out structure{})
|
|
0:? '@entryPointOutput' ( out 3-element array of structure{})
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:42 Function Call: @main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1; ( temp structure{})
|
|
0:? 'stage_input' ( temp structure{})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:? 'pointId' ( temp uint)
|
|
0:? 'patchId' ( temp uint)
|
|
0:? Barrier ( temp void)
|
|
0:? Test condition and select ( temp void)
|
|
0:? Condition
|
|
0:? Compare Equal ( temp bool)
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? true case
|
|
0:? Sequence
|
|
0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? 'patch' ( temp 3-element array of structure{ temp 4-component vector of float position})
|
|
0:? 'patchId' ( in uint PrimitiveID)
|
|
0:? Sequence
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? edges: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? edges: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? edges: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelInner)
|
|
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? inside: direct index for structure ( temp float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside})
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? Linker Objects
|
|
0:? 'patch.position' ( in 3-element array of 4-component vector of float Position)
|
|
0:? 'pointId' ( in uint InvocationID)
|
|
0:? 'patchId' ( in uint PrimitiveID)
|
|
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
|
|
|
|
Validation failed
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 132
|
|
|
|
Capability Tessellation
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint TessellationControl 4 "main" 65 79 82 115 128
|
|
ExecutionMode 4 OutputVertices 3
|
|
ExecutionMode 4 Triangles
|
|
ExecutionMode 4 SpacingEqual
|
|
ExecutionMode 4 VertexOrderCw
|
|
Source HLSL 500
|
|
Name 4 "main"
|
|
Name 8 "HullInputType"
|
|
MemberName 8(HullInputType) 0 "position"
|
|
Name 15 "blob(struct-HullInputType-vf41[3];"
|
|
Name 14 "patch"
|
|
Name 19 "ConstantOutputType"
|
|
MemberName 19(ConstantOutputType) 0 "edges"
|
|
MemberName 19(ConstantOutputType) 1 "inside"
|
|
Name 23 "ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1;"
|
|
Name 21 "inputPatch"
|
|
Name 22 "patchId"
|
|
Name 25 "EmptyStruct"
|
|
Name 27 "HullOutputType"
|
|
Name 33 "@main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1;"
|
|
Name 29 "stage_input"
|
|
Name 30 "patch"
|
|
Name 31 "pointId"
|
|
Name 32 "patchId"
|
|
Name 36 "output"
|
|
Name 50 "param"
|
|
Name 54 "output"
|
|
Name 58 "stage_input"
|
|
Name 60 "stage_input"
|
|
Name 62 "patch"
|
|
Name 65 "patch.position"
|
|
Name 77 "pointId"
|
|
Name 79 "pointId"
|
|
Name 81 "patchId"
|
|
Name 82 "patchId"
|
|
Name 86 "@entryPointOutput"
|
|
Name 88 "param"
|
|
Name 90 "param"
|
|
Name 92 "param"
|
|
Name 94 "param"
|
|
Name 107 "@patchConstantResult"
|
|
Name 108 "param"
|
|
Name 110 "param"
|
|
Name 115 "@patchConstantOutput.edges"
|
|
Name 128 "@patchConstantOutput.inside"
|
|
Decorate 65(patch.position) BuiltIn Position
|
|
Decorate 79(pointId) BuiltIn InvocationId
|
|
Decorate 82(patchId) BuiltIn PrimitiveId
|
|
Decorate 115(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
|
Decorate 115(@patchConstantOutput.edges) Patch
|
|
Decorate 128(@patchConstantOutput.inside) BuiltIn TessLevelInner
|
|
Decorate 128(@patchConstantOutput.inside) Patch
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8(HullInputType): TypeStruct 7(fvec4)
|
|
9: TypeInt 32 0
|
|
10: 9(int) Constant 3
|
|
11: TypeArray 8(HullInputType) 10
|
|
12: TypePointer Function 11
|
|
13: TypeFunction 2 12(ptr)
|
|
17: TypePointer Function 9(int)
|
|
18: TypeArray 6(float) 10
|
|
19(ConstantOutputType): TypeStruct 18 6(float)
|
|
20: TypeFunction 19(ConstantOutputType) 12(ptr) 17(ptr)
|
|
25(EmptyStruct): TypeStruct
|
|
26: TypePointer Function 25(EmptyStruct)
|
|
27(HullOutputType): TypeStruct
|
|
28: TypeFunction 27(HullOutputType) 26(ptr) 12(ptr) 17(ptr) 17(ptr)
|
|
35: TypePointer Function 19(ConstantOutputType)
|
|
37: TypeInt 32 1
|
|
38: 37(int) Constant 0
|
|
39: 6(float) Constant 1073741824
|
|
40: TypePointer Function 6(float)
|
|
42: 37(int) Constant 1
|
|
44: 37(int) Constant 2
|
|
53: TypePointer Function 27(HullOutputType)
|
|
59: TypePointer Input 25(EmptyStruct)
|
|
60(stage_input): 59(ptr) Variable Input
|
|
63: TypeArray 7(fvec4) 10
|
|
64: TypePointer Input 63
|
|
65(patch.position): 64(ptr) Variable Input
|
|
66: TypePointer Input 7(fvec4)
|
|
69: TypePointer Function 7(fvec4)
|
|
78: TypePointer Input 9(int)
|
|
79(pointId): 78(ptr) Variable Input
|
|
82(patchId): 78(ptr) Variable Input
|
|
84: TypeArray 27(HullOutputType) 10
|
|
85: TypePointer Output 84
|
|
86(@entryPointOutput): 85(ptr) Variable Output
|
|
97: TypePointer Output 27(HullOutputType)
|
|
99: 9(int) Constant 2
|
|
100: 9(int) Constant 4
|
|
101: 9(int) Constant 0
|
|
103: TypeBool
|
|
113: TypeArray 6(float) 100
|
|
114: TypePointer Output 113
|
|
115(@patchConstantOutput.edges): 114(ptr) Variable Output
|
|
118: TypePointer Output 6(float)
|
|
126: TypeArray 6(float) 99
|
|
127: TypePointer Output 126
|
|
128(@patchConstantOutput.inside): 127(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
58(stage_input): 26(ptr) Variable Function
|
|
62(patch): 12(ptr) Variable Function
|
|
77(pointId): 17(ptr) Variable Function
|
|
81(patchId): 17(ptr) Variable Function
|
|
88(param): 26(ptr) Variable Function
|
|
90(param): 12(ptr) Variable Function
|
|
92(param): 17(ptr) Variable Function
|
|
94(param): 17(ptr) Variable Function
|
|
107(@patchConstantResult): 35(ptr) Variable Function
|
|
108(param): 12(ptr) Variable Function
|
|
110(param): 17(ptr) Variable Function
|
|
61:25(EmptyStruct) Load 60(stage_input)
|
|
Store 58(stage_input) 61
|
|
67: 66(ptr) AccessChain 65(patch.position) 38
|
|
68: 7(fvec4) Load 67
|
|
70: 69(ptr) AccessChain 62(patch) 38 38
|
|
Store 70 68
|
|
71: 66(ptr) AccessChain 65(patch.position) 42
|
|
72: 7(fvec4) Load 71
|
|
73: 69(ptr) AccessChain 62(patch) 42 38
|
|
Store 73 72
|
|
74: 66(ptr) AccessChain 65(patch.position) 44
|
|
75: 7(fvec4) Load 74
|
|
76: 69(ptr) AccessChain 62(patch) 44 38
|
|
Store 76 75
|
|
80: 9(int) Load 79(pointId)
|
|
Store 77(pointId) 80
|
|
83: 9(int) Load 82(patchId)
|
|
Store 81(patchId) 83
|
|
87: 9(int) Load 79(pointId)
|
|
89:25(EmptyStruct) Load 58(stage_input)
|
|
Store 88(param) 89
|
|
91: 11 Load 62(patch)
|
|
Store 90(param) 91
|
|
93: 9(int) Load 77(pointId)
|
|
Store 92(param) 93
|
|
95: 9(int) Load 81(patchId)
|
|
Store 94(param) 95
|
|
96:27(HullOutputType) FunctionCall 33(@main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1;) 88(param) 90(param) 92(param) 94(param)
|
|
98: 97(ptr) AccessChain 86(@entryPointOutput) 87
|
|
Store 98 96
|
|
ControlBarrier 99 100 101
|
|
102: 9(int) Load 79(pointId)
|
|
104: 103(bool) IEqual 102 38
|
|
SelectionMerge 106 None
|
|
BranchConditional 104 105 106
|
|
105: Label
|
|
109: 11 Load 62(patch)
|
|
Store 108(param) 109
|
|
111: 9(int) Load 82(patchId)
|
|
Store 110(param) 111
|
|
112:19(ConstantOutputType) FunctionCall 23(ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1;) 108(param) 110(param)
|
|
Store 107(@patchConstantResult) 112
|
|
116: 40(ptr) AccessChain 107(@patchConstantResult) 38 38
|
|
117: 6(float) Load 116
|
|
119: 118(ptr) AccessChain 115(@patchConstantOutput.edges) 38
|
|
Store 119 117
|
|
120: 40(ptr) AccessChain 107(@patchConstantResult) 38 42
|
|
121: 6(float) Load 120
|
|
122: 118(ptr) AccessChain 115(@patchConstantOutput.edges) 42
|
|
Store 122 121
|
|
123: 40(ptr) AccessChain 107(@patchConstantResult) 38 44
|
|
124: 6(float) Load 123
|
|
125: 118(ptr) AccessChain 115(@patchConstantOutput.edges) 44
|
|
Store 125 124
|
|
129: 40(ptr) AccessChain 107(@patchConstantResult) 42
|
|
130: 6(float) Load 129
|
|
131: 118(ptr) AccessChain 128(@patchConstantOutput.inside) 38
|
|
Store 131 130
|
|
Branch 106
|
|
106: Label
|
|
Return
|
|
FunctionEnd
|
|
15(blob(struct-HullInputType-vf41[3];): 2 Function None 13
|
|
14(patch): 12(ptr) FunctionParameter
|
|
16: Label
|
|
Return
|
|
FunctionEnd
|
|
23(ColorPatchConstantFunction(struct-HullInputType-vf41[3];u1;):19(ConstantOutputType) Function None 20
|
|
21(inputPatch): 12(ptr) FunctionParameter
|
|
22(patchId): 17(ptr) FunctionParameter
|
|
24: Label
|
|
36(output): 35(ptr) Variable Function
|
|
41: 40(ptr) AccessChain 36(output) 38 38
|
|
Store 41 39
|
|
43: 40(ptr) AccessChain 36(output) 38 42
|
|
Store 43 39
|
|
45: 40(ptr) AccessChain 36(output) 38 44
|
|
Store 45 39
|
|
46: 40(ptr) AccessChain 36(output) 42
|
|
Store 46 39
|
|
47:19(ConstantOutputType) Load 36(output)
|
|
ReturnValue 47
|
|
FunctionEnd
|
|
33(@main(struct-EmptyStruct1;struct-HullInputType-vf41[3];u1;u1;):27(HullOutputType) Function None 28
|
|
29(stage_input): 26(ptr) FunctionParameter
|
|
30(patch): 12(ptr) FunctionParameter
|
|
31(pointId): 17(ptr) FunctionParameter
|
|
32(patchId): 17(ptr) FunctionParameter
|
|
34: Label
|
|
50(param): 12(ptr) Variable Function
|
|
54(output): 53(ptr) Variable Function
|
|
51: 11 Load 30(patch)
|
|
Store 50(param) 51
|
|
52: 2 FunctionCall 15(blob(struct-HullInputType-vf41[3];) 50(param)
|
|
55:27(HullOutputType) Load 54(output)
|
|
ReturnValue 55
|
|
FunctionEnd
|