
SPIR-V requires that tessellation factor arrays be size 4 (outer) or 2 (inner). HLSL allows other sizes such as 3, or even scalars. This commit converts between them by forcing the IO types to be the SPIR-V size, and allowing copies between the internal and IO types to handle these cases.
599 lines
33 KiB
Plaintext
599 lines
33 KiB
Plaintext
hlsl.hull.ctrlpt-1.tesc
|
|
Shader version: 450
|
|
vertices = 3
|
|
0:? Sequence
|
|
0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:27 Function Parameters:
|
|
0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val})
|
|
0:27 'cpid' ( in uint)
|
|
0:? Sequence
|
|
0:29 move second child to first child ( temp 3-component vector of float)
|
|
0:29 val: direct index for structure ( temp 3-component vector of float)
|
|
0:29 'o' ( temp structure{ temp 3-component vector of float val})
|
|
0:29 Constant:
|
|
0:29 0 (const int)
|
|
0:29 Construct vec3 ( temp 3-component vector of float)
|
|
0:29 Convert uint to float ( temp float)
|
|
0:29 'cpid' ( in uint)
|
|
0:30 Branch: Return with expression
|
|
0:30 'o' ( temp structure{ temp 3-component vector of float val})
|
|
0:27 Function Definition: main( ( temp void)
|
|
0:27 Function Parameters:
|
|
0:? Sequence
|
|
0:27 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
|
|
0:27 move second child to first child ( temp uint)
|
|
0:? 'cpid' ( temp uint)
|
|
0:? 'cpid' ( in uint InvocationID)
|
|
0:27 move second child to first child ( temp structure{ temp 3-component vector of float val})
|
|
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float val})
|
|
0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'cpid' ( temp uint)
|
|
0:? Barrier ( temp void)
|
|
0:? Test condition and select ( temp void)
|
|
0:? Condition
|
|
0:? Compare Equal ( temp bool)
|
|
0:? 'cpid' ( 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-component vector of float val})
|
|
0:? direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 0 (const uint)
|
|
0:? move second child to first child ( temp structure{ temp 3-component vector of float val})
|
|
0:? direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 1 (const uint)
|
|
0:? move second child to first child ( temp structure{ temp 3-component vector of float val})
|
|
0:? direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 2 (const uint)
|
|
0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Sequence
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
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_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
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_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
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_flInFactor' ( patch out 2-element array of float TessLevelInner)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? flInFactor: direct index for structure ( temp float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:34 Function Parameters:
|
|
0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Sequence
|
|
0:37 move second child to first child ( temp float)
|
|
0:37 direct index ( temp float)
|
|
0:37 tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 direct index ( temp float)
|
|
0:37 val: direct index for structure ( temp 3-component vector of float)
|
|
0:37 direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:38 move second child to first child ( temp float)
|
|
0:38 direct index ( temp float)
|
|
0:38 tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:38 Constant:
|
|
0:38 0 (const int)
|
|
0:38 Constant:
|
|
0:38 1 (const int)
|
|
0:38 direct index ( temp float)
|
|
0:38 val: direct index for structure ( temp 3-component vector of float)
|
|
0:38 direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:38 Constant:
|
|
0:38 1 (const int)
|
|
0:38 Constant:
|
|
0:38 0 (const int)
|
|
0:38 Constant:
|
|
0:38 0 (const int)
|
|
0:39 move second child to first child ( temp float)
|
|
0:39 direct index ( temp float)
|
|
0:39 tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:39 Constant:
|
|
0:39 0 (const int)
|
|
0:39 Constant:
|
|
0:39 2 (const int)
|
|
0:39 direct index ( temp float)
|
|
0:39 val: direct index for structure ( temp 3-component vector of float)
|
|
0:39 direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:39 Constant:
|
|
0:39 2 (const int)
|
|
0:39 Constant:
|
|
0:39 0 (const int)
|
|
0:39 Constant:
|
|
0:39 0 (const int)
|
|
0:40 move second child to first child ( temp float)
|
|
0:40 flInFactor: direct index for structure ( temp float)
|
|
0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:40 Constant:
|
|
0:40 1 (const int)
|
|
0:40 Constant:
|
|
0:40 4.000000
|
|
0:42 Branch: Return with expression
|
|
0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float val})
|
|
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'cpid' ( in uint InvocationID)
|
|
0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
|
|
0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner)
|
|
|
|
|
|
Linked tessellation control stage:
|
|
|
|
|
|
Shader version: 450
|
|
vertices = 3
|
|
0:? Sequence
|
|
0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:27 Function Parameters:
|
|
0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val})
|
|
0:27 'cpid' ( in uint)
|
|
0:? Sequence
|
|
0:29 move second child to first child ( temp 3-component vector of float)
|
|
0:29 val: direct index for structure ( temp 3-component vector of float)
|
|
0:29 'o' ( temp structure{ temp 3-component vector of float val})
|
|
0:29 Constant:
|
|
0:29 0 (const int)
|
|
0:29 Construct vec3 ( temp 3-component vector of float)
|
|
0:29 Convert uint to float ( temp float)
|
|
0:29 'cpid' ( in uint)
|
|
0:30 Branch: Return with expression
|
|
0:30 'o' ( temp structure{ temp 3-component vector of float val})
|
|
0:27 Function Definition: main( ( temp void)
|
|
0:27 Function Parameters:
|
|
0:? Sequence
|
|
0:27 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
|
|
0:27 move second child to first child ( temp uint)
|
|
0:? 'cpid' ( temp uint)
|
|
0:? 'cpid' ( in uint InvocationID)
|
|
0:27 move second child to first child ( temp structure{ temp 3-component vector of float val})
|
|
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float val})
|
|
0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'cpid' ( temp uint)
|
|
0:? Barrier ( temp void)
|
|
0:? Test condition and select ( temp void)
|
|
0:? Condition
|
|
0:? Compare Equal ( temp bool)
|
|
0:? 'cpid' ( 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-component vector of float val})
|
|
0:? direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 0 (const uint)
|
|
0:? move second child to first child ( temp structure{ temp 3-component vector of float val})
|
|
0:? direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 1 (const uint)
|
|
0:? move second child to first child ( temp structure{ temp 3-component vector of float val})
|
|
0:? direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
|
0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Constant:
|
|
0:? 2 (const uint)
|
|
0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Sequence
|
|
0:? move second child to first child ( temp float)
|
|
0:? direct index ( patch out float TessLevelOuter)
|
|
0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
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_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
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_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? Constant:
|
|
0:? 2 (const int)
|
|
0:? direct index ( temp float)
|
|
0:? tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
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_flInFactor' ( patch out 2-element array of float TessLevelInner)
|
|
0:? Constant:
|
|
0:? 0 (const int)
|
|
0:? flInFactor: direct index for structure ( temp float)
|
|
0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? Constant:
|
|
0:? 1 (const int)
|
|
0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:34 Function Parameters:
|
|
0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? Sequence
|
|
0:37 move second child to first child ( temp float)
|
|
0:37 direct index ( temp float)
|
|
0:37 tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 direct index ( temp float)
|
|
0:37 val: direct index for structure ( temp 3-component vector of float)
|
|
0:37 direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:37 Constant:
|
|
0:37 0 (const int)
|
|
0:38 move second child to first child ( temp float)
|
|
0:38 direct index ( temp float)
|
|
0:38 tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:38 Constant:
|
|
0:38 0 (const int)
|
|
0:38 Constant:
|
|
0:38 1 (const int)
|
|
0:38 direct index ( temp float)
|
|
0:38 val: direct index for structure ( temp 3-component vector of float)
|
|
0:38 direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:38 Constant:
|
|
0:38 1 (const int)
|
|
0:38 Constant:
|
|
0:38 0 (const int)
|
|
0:38 Constant:
|
|
0:38 0 (const int)
|
|
0:39 move second child to first child ( temp float)
|
|
0:39 direct index ( temp float)
|
|
0:39 tfactor: direct index for structure ( temp 3-element array of float)
|
|
0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:39 Constant:
|
|
0:39 0 (const int)
|
|
0:39 Constant:
|
|
0:39 2 (const int)
|
|
0:39 direct index ( temp float)
|
|
0:39 val: direct index for structure ( temp 3-component vector of float)
|
|
0:39 direct index ( temp structure{ temp 3-component vector of float val})
|
|
0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
|
|
0:39 Constant:
|
|
0:39 2 (const int)
|
|
0:39 Constant:
|
|
0:39 0 (const int)
|
|
0:39 Constant:
|
|
0:39 0 (const int)
|
|
0:40 move second child to first child ( temp float)
|
|
0:40 flInFactor: direct index for structure ( temp float)
|
|
0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:40 Constant:
|
|
0:40 1 (const int)
|
|
0:40 Constant:
|
|
0:40 4.000000
|
|
0:42 Branch: Return with expression
|
|
0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor})
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float val})
|
|
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
|
|
0:? 'cpid' ( in uint InvocationID)
|
|
0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
|
|
0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
|
|
0:? '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 124
|
|
|
|
Capability Tessellation
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint TessellationControl 4 "main" 41 45 48 91 105 123
|
|
ExecutionMode 4 OutputVertices 3
|
|
Name 4 "main"
|
|
Name 8 "hs_in_t"
|
|
MemberName 8(hs_in_t) 0 "val"
|
|
Name 14 "hs_out_t"
|
|
MemberName 14(hs_out_t) 0 "val"
|
|
Name 18 "@main(struct-hs_in_t-vf31[3];u1;"
|
|
Name 16 "i"
|
|
Name 17 "cpid"
|
|
Name 22 "hs_pcf_t"
|
|
MemberName 22(hs_pcf_t) 0 "tfactor"
|
|
MemberName 22(hs_pcf_t) 1 "flInFactor"
|
|
Name 25 "PCF(struct-hs_out_t-vf31[3];"
|
|
Name 24 "pcf_out"
|
|
Name 28 "o"
|
|
Name 39 "i"
|
|
Name 41 "i"
|
|
Name 43 "cpid"
|
|
Name 45 "cpid"
|
|
Name 48 "@entryPointOutput"
|
|
Name 49 "param"
|
|
Name 51 "param"
|
|
Name 63 "pcf_out"
|
|
Name 64 "i"
|
|
Name 65 "param"
|
|
Name 67 "param"
|
|
Name 71 "i"
|
|
Name 72 "param"
|
|
Name 74 "param"
|
|
Name 78 "i"
|
|
Name 79 "param"
|
|
Name 81 "param"
|
|
Name 85 "@patchConstantResult"
|
|
Name 91 "@patchConstantOutput_tfactor"
|
|
Name 105 "@patchConstantOutput_flInFactor"
|
|
Name 109 "o"
|
|
Name 121 "hs_pcf_t"
|
|
Name 123 "@patchConstantOutput"
|
|
Decorate 41(i) Location 0
|
|
Decorate 45(cpid) BuiltIn InvocationId
|
|
Decorate 48(@entryPointOutput) Location 0
|
|
Decorate 91(@patchConstantOutput_tfactor) Patch
|
|
Decorate 91(@patchConstantOutput_tfactor) BuiltIn TessLevelOuter
|
|
Decorate 105(@patchConstantOutput_flInFactor) Patch
|
|
Decorate 105(@patchConstantOutput_flInFactor) BuiltIn TessLevelInner
|
|
Decorate 123(@patchConstantOutput) Patch
|
|
Decorate 123(@patchConstantOutput) Location 1
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 3
|
|
8(hs_in_t): TypeStruct 7(fvec3)
|
|
9: TypeInt 32 0
|
|
10: 9(int) Constant 3
|
|
11: TypeArray 8(hs_in_t) 10
|
|
12: TypePointer Function 11
|
|
13: TypePointer Function 9(int)
|
|
14(hs_out_t): TypeStruct 7(fvec3)
|
|
15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr)
|
|
20: TypeArray 14(hs_out_t) 10
|
|
21: TypeArray 6(float) 10
|
|
22(hs_pcf_t): TypeStruct 21 6(float)
|
|
23: TypeFunction 22(hs_pcf_t) 20
|
|
27: TypePointer Function 14(hs_out_t)
|
|
29: TypeInt 32 1
|
|
30: 29(int) Constant 0
|
|
34: TypePointer Function 7(fvec3)
|
|
40: TypePointer Input 11
|
|
41(i): 40(ptr) Variable Input
|
|
44: TypePointer Input 9(int)
|
|
45(cpid): 44(ptr) Variable Input
|
|
47: TypePointer Output 14(hs_out_t)
|
|
48(@entryPointOutput): 47(ptr) Variable Output
|
|
54: 9(int) Constant 2
|
|
55: 9(int) Constant 1
|
|
56: 9(int) Constant 0
|
|
58: TypeBool
|
|
62: TypePointer Function 20
|
|
70: 29(int) Constant 1
|
|
77: 29(int) Constant 2
|
|
84: TypePointer Function 22(hs_pcf_t)
|
|
88: 9(int) Constant 4
|
|
89: TypeArray 6(float) 88
|
|
90: TypePointer Output 89
|
|
91(@patchConstantOutput_tfactor): 90(ptr) Variable Output
|
|
92: TypePointer Function 6(float)
|
|
95: TypePointer Output 6(float)
|
|
103: TypeArray 6(float) 54
|
|
104: TypePointer Output 103
|
|
105(@patchConstantOutput_flInFactor): 104(ptr) Variable Output
|
|
116: 6(float) Constant 1082130432
|
|
121(hs_pcf_t): TypeStruct
|
|
122: TypePointer Output 121(hs_pcf_t)
|
|
123(@patchConstantOutput): 122(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
39(i): 12(ptr) Variable Function
|
|
43(cpid): 13(ptr) Variable Function
|
|
49(param): 12(ptr) Variable Function
|
|
51(param): 13(ptr) Variable Function
|
|
63(pcf_out): 62(ptr) Variable Function
|
|
64(i): 12(ptr) Variable Function
|
|
65(param): 12(ptr) Variable Function
|
|
67(param): 13(ptr) Variable Function
|
|
71(i): 12(ptr) Variable Function
|
|
72(param): 12(ptr) Variable Function
|
|
74(param): 13(ptr) Variable Function
|
|
78(i): 12(ptr) Variable Function
|
|
79(param): 12(ptr) Variable Function
|
|
81(param): 13(ptr) Variable Function
|
|
85(@patchConstantResult): 84(ptr) Variable Function
|
|
42: 11 Load 41(i)
|
|
Store 39(i) 42
|
|
46: 9(int) Load 45(cpid)
|
|
Store 43(cpid) 46
|
|
50: 11 Load 39(i)
|
|
Store 49(param) 50
|
|
52: 9(int) Load 43(cpid)
|
|
Store 51(param) 52
|
|
53:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 49(param) 51(param)
|
|
Store 48(@entryPointOutput) 53
|
|
ControlBarrier 54 55 56
|
|
57: 9(int) Load 45(cpid)
|
|
59: 58(bool) IEqual 57 30
|
|
SelectionMerge 61 None
|
|
BranchConditional 59 60 61
|
|
60: Label
|
|
66: 11 Load 64(i)
|
|
Store 65(param) 66
|
|
Store 67(param) 56
|
|
68:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 65(param) 67(param)
|
|
69: 27(ptr) AccessChain 63(pcf_out) 30
|
|
Store 69 68
|
|
73: 11 Load 71(i)
|
|
Store 72(param) 73
|
|
Store 74(param) 55
|
|
75:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 72(param) 74(param)
|
|
76: 27(ptr) AccessChain 63(pcf_out) 70
|
|
Store 76 75
|
|
80: 11 Load 78(i)
|
|
Store 79(param) 80
|
|
Store 81(param) 54
|
|
82:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 79(param) 81(param)
|
|
83: 27(ptr) AccessChain 63(pcf_out) 77
|
|
Store 83 82
|
|
86: 20 Load 63(pcf_out)
|
|
87:22(hs_pcf_t) FunctionCall 25(PCF(struct-hs_out_t-vf31[3];) 86
|
|
Store 85(@patchConstantResult) 87
|
|
93: 92(ptr) AccessChain 85(@patchConstantResult) 30 30
|
|
94: 6(float) Load 93
|
|
96: 95(ptr) AccessChain 91(@patchConstantOutput_tfactor) 30
|
|
Store 96 94
|
|
97: 92(ptr) AccessChain 85(@patchConstantResult) 30 70
|
|
98: 6(float) Load 97
|
|
99: 95(ptr) AccessChain 91(@patchConstantOutput_tfactor) 70
|
|
Store 99 98
|
|
100: 92(ptr) AccessChain 85(@patchConstantResult) 30 77
|
|
101: 6(float) Load 100
|
|
102: 95(ptr) AccessChain 91(@patchConstantOutput_tfactor) 77
|
|
Store 102 101
|
|
106: 92(ptr) AccessChain 85(@patchConstantResult) 70
|
|
107: 6(float) Load 106
|
|
108: 95(ptr) AccessChain 105(@patchConstantOutput_flInFactor) 30
|
|
Store 108 107
|
|
Branch 61
|
|
61: Label
|
|
Return
|
|
FunctionEnd
|
|
18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15
|
|
16(i): 12(ptr) FunctionParameter
|
|
17(cpid): 13(ptr) FunctionParameter
|
|
19: Label
|
|
28(o): 27(ptr) Variable Function
|
|
31: 9(int) Load 17(cpid)
|
|
32: 6(float) ConvertUToF 31
|
|
33: 7(fvec3) CompositeConstruct 32 32 32
|
|
35: 34(ptr) AccessChain 28(o) 30
|
|
Store 35 33
|
|
36:14(hs_out_t) Load 28(o)
|
|
ReturnValue 36
|
|
FunctionEnd
|
|
25(PCF(struct-hs_out_t-vf31[3];):22(hs_pcf_t) Function None 23
|
|
24(pcf_out): 20 FunctionParameter
|
|
26: Label
|
|
109(o): 84(ptr) Variable Function
|
|
110: 6(float) CompositeExtract 24(pcf_out) 0 0 0
|
|
111: 92(ptr) AccessChain 109(o) 30 30
|
|
Store 111 110
|
|
112: 6(float) CompositeExtract 24(pcf_out) 1 0 0
|
|
113: 92(ptr) AccessChain 109(o) 30 70
|
|
Store 113 112
|
|
114: 6(float) CompositeExtract 24(pcf_out) 2 0 0
|
|
115: 92(ptr) AccessChain 109(o) 30 77
|
|
Store 115 114
|
|
117: 92(ptr) AccessChain 109(o) 70
|
|
Store 117 116
|
|
118:22(hs_pcf_t) Load 109(o)
|
|
ReturnValue 118
|
|
FunctionEnd
|