HLSL: add subpass input types and methods
Add support for Subpass Input proposal of issue #1069. Subpass input types are given as: layout(input_attachment_index = 1) SubpassInput<float4> subpass_f; layout(input_attachment_index = 2) SubpassInput<int4> subpass_i; layout(input_attachment_index = 3) SubpassInput<uint4> subpass_u; layout(input_attachment_index = 1) SubpassInputMS<float4> subpass_ms_f; layout(input_attachment_index = 2) SubpassInputMS<int4> subpass_ms_i; layout(input_attachment_index = 3) SubpassInputMS<uint4> subpass_ms_u; The input attachment may also be specified using attribute syntax: [[vk::input_attachment_index(7)]] SubpassInput subpass_2; The template type may be a shorter-than-vec4 vector, but currently user structs are not supported. (An unimplemented error will be issued). The load operations are methods on objects of the above type: float4 result = subpass_f.SubpassLoad(); int4 result = subpass_i.SubpassLoad(); uint4 result = subpass_u.SubpassLoad(); float4 result = subpass_ms_f.SubpassLoad(samp); int4 result = subpass_ms_i.SubpassLoad(samp); uint4 result = subpass_ms_u.SubpassLoad(samp); Additionally, the AST printer could not print EOpSubpass* nodes. Now it can. Fixes #1069
This commit is contained in:
778
Test/baseResults/hlsl.subpass.frag.out
Normal file
778
Test/baseResults/hlsl.subpass.frag.out
Normal file
@@ -0,0 +1,778 @@
|
||||
hlsl.subpass.frag
|
||||
Shader version: 500
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:68 Function Definition: @main( ( temp 4-component vector of float)
|
||||
0:68 Function Parameters:
|
||||
0:? Sequence
|
||||
0:69 Sequence
|
||||
0:69 move second child to first child ( temp 4-component vector of float)
|
||||
0:69 'result00' ( temp 4-component vector of float)
|
||||
0:69 subpassLoad ( temp 4-component vector of float)
|
||||
0:69 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput)
|
||||
0:70 Sequence
|
||||
0:70 move second child to first child ( temp 4-component vector of int)
|
||||
0:70 'result01' ( temp 4-component vector of int)
|
||||
0:70 subpassLoad ( temp 4-component vector of int)
|
||||
0:70 'subpass_i4' ( uniform isubpassInput)
|
||||
0:71 Sequence
|
||||
0:71 move second child to first child ( temp 4-component vector of uint)
|
||||
0:71 'result02' ( temp 4-component vector of uint)
|
||||
0:71 subpassLoad ( temp 4-component vector of uint)
|
||||
0:71 'subpass_u4' ( uniform usubpassInput)
|
||||
0:73 Sequence
|
||||
0:73 move second child to first child ( temp 4-component vector of float)
|
||||
0:73 'result10' ( temp 4-component vector of float)
|
||||
0:73 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:73 'subpass_ms_f4' ( uniform subpassInputMS)
|
||||
0:73 Constant:
|
||||
0:73 3 (const int)
|
||||
0:74 Sequence
|
||||
0:74 move second child to first child ( temp 4-component vector of int)
|
||||
0:74 'result11' ( temp 4-component vector of int)
|
||||
0:74 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:74 'subpass_ms_i4' ( uniform isubpassInputMS)
|
||||
0:74 Constant:
|
||||
0:74 3 (const int)
|
||||
0:75 Sequence
|
||||
0:75 move second child to first child ( temp 4-component vector of uint)
|
||||
0:75 'result12' ( temp 4-component vector of uint)
|
||||
0:75 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:75 'subpass_ms_u4' ( uniform usubpassInputMS)
|
||||
0:75 Constant:
|
||||
0:75 3 (const int)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 3-component vector of float)
|
||||
0:77 'result20' ( temp 3-component vector of float)
|
||||
0:77 Construct vec3 ( temp 3-component vector of float)
|
||||
0:77 subpassLoad ( temp 4-component vector of float)
|
||||
0:77 'subpass_f3' ( uniform subpassInput)
|
||||
0:78 Sequence
|
||||
0:78 move second child to first child ( temp 3-component vector of int)
|
||||
0:78 'result21' ( temp 3-component vector of int)
|
||||
0:78 Construct ivec3 ( temp 3-component vector of int)
|
||||
0:78 subpassLoad ( temp 4-component vector of int)
|
||||
0:78 'subpass_i3' ( uniform isubpassInput)
|
||||
0:79 Sequence
|
||||
0:79 move second child to first child ( temp 3-component vector of uint)
|
||||
0:79 'result22' ( temp 3-component vector of uint)
|
||||
0:79 Construct uvec3 ( temp 3-component vector of uint)
|
||||
0:79 subpassLoad ( temp 4-component vector of uint)
|
||||
0:79 'subpass_u3' ( uniform usubpassInput)
|
||||
0:81 Sequence
|
||||
0:81 move second child to first child ( temp 3-component vector of float)
|
||||
0:81 'result30' ( temp 3-component vector of float)
|
||||
0:81 Construct vec3 ( temp 3-component vector of float)
|
||||
0:81 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:81 'subpass_ms_f3' ( uniform subpassInputMS)
|
||||
0:81 Constant:
|
||||
0:81 3 (const int)
|
||||
0:82 Sequence
|
||||
0:82 move second child to first child ( temp 3-component vector of int)
|
||||
0:82 'result31' ( temp 3-component vector of int)
|
||||
0:82 Construct ivec3 ( temp 3-component vector of int)
|
||||
0:82 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:82 'subpass_ms_i3' ( uniform isubpassInputMS)
|
||||
0:82 Constant:
|
||||
0:82 3 (const int)
|
||||
0:83 Sequence
|
||||
0:83 move second child to first child ( temp 3-component vector of uint)
|
||||
0:83 'result32' ( temp 3-component vector of uint)
|
||||
0:83 Construct uvec3 ( temp 3-component vector of uint)
|
||||
0:83 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:83 'subpass_ms_u3' ( uniform usubpassInputMS)
|
||||
0:83 Constant:
|
||||
0:83 3 (const int)
|
||||
0:85 Sequence
|
||||
0:85 move second child to first child ( temp 2-component vector of float)
|
||||
0:85 'result40' ( temp 2-component vector of float)
|
||||
0:85 Construct vec2 ( temp 2-component vector of float)
|
||||
0:85 subpassLoad ( temp 4-component vector of float)
|
||||
0:85 'subpass_f2' ( uniform subpassInput)
|
||||
0:86 Sequence
|
||||
0:86 move second child to first child ( temp 2-component vector of int)
|
||||
0:86 'result41' ( temp 2-component vector of int)
|
||||
0:86 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:86 subpassLoad ( temp 4-component vector of int)
|
||||
0:86 'subpass_i2' ( uniform isubpassInput)
|
||||
0:87 Sequence
|
||||
0:87 move second child to first child ( temp 2-component vector of uint)
|
||||
0:87 'result42' ( temp 2-component vector of uint)
|
||||
0:87 Construct uvec2 ( temp 2-component vector of uint)
|
||||
0:87 subpassLoad ( temp 4-component vector of uint)
|
||||
0:87 'subpass_u2' ( uniform usubpassInput)
|
||||
0:89 Sequence
|
||||
0:89 move second child to first child ( temp 2-component vector of float)
|
||||
0:89 'result50' ( temp 2-component vector of float)
|
||||
0:89 Construct vec2 ( temp 2-component vector of float)
|
||||
0:89 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:89 'subpass_ms_f2' ( uniform subpassInputMS)
|
||||
0:89 Constant:
|
||||
0:89 2 (const int)
|
||||
0:90 Sequence
|
||||
0:90 move second child to first child ( temp 2-component vector of int)
|
||||
0:90 'result51' ( temp 2-component vector of int)
|
||||
0:90 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:90 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:90 'subpass_ms_i2' ( uniform isubpassInputMS)
|
||||
0:90 Constant:
|
||||
0:90 2 (const int)
|
||||
0:91 Sequence
|
||||
0:91 move second child to first child ( temp 2-component vector of uint)
|
||||
0:91 'result52' ( temp 2-component vector of uint)
|
||||
0:91 Construct uvec2 ( temp 2-component vector of uint)
|
||||
0:91 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:91 'subpass_ms_u2' ( uniform usubpassInputMS)
|
||||
0:91 Constant:
|
||||
0:91 2 (const int)
|
||||
0:93 Sequence
|
||||
0:93 move second child to first child ( temp float)
|
||||
0:93 'result60' ( temp float)
|
||||
0:93 Construct float ( temp float)
|
||||
0:93 subpassLoad ( temp 4-component vector of float)
|
||||
0:93 'subpass_f' ( uniform subpassInput)
|
||||
0:94 Sequence
|
||||
0:94 move second child to first child ( temp int)
|
||||
0:94 'result61' ( temp int)
|
||||
0:94 Construct int ( temp int)
|
||||
0:94 subpassLoad ( temp 4-component vector of int)
|
||||
0:94 'subpass_i' ( uniform isubpassInput)
|
||||
0:95 Sequence
|
||||
0:95 move second child to first child ( temp uint)
|
||||
0:95 'result62' ( temp uint)
|
||||
0:95 Construct uint ( temp uint)
|
||||
0:95 subpassLoad ( temp 4-component vector of uint)
|
||||
0:95 'subpass_u' ( uniform usubpassInput)
|
||||
0:97 Sequence
|
||||
0:97 move second child to first child ( temp float)
|
||||
0:97 'result70' ( temp float)
|
||||
0:97 Construct float ( temp float)
|
||||
0:97 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:97 'subpass_ms_f' ( uniform subpassInputMS)
|
||||
0:97 Constant:
|
||||
0:97 2 (const int)
|
||||
0:98 Sequence
|
||||
0:98 move second child to first child ( temp int)
|
||||
0:98 'result71' ( temp int)
|
||||
0:98 Construct int ( temp int)
|
||||
0:98 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:98 'subpass_ms_i' ( uniform isubpassInputMS)
|
||||
0:98 Constant:
|
||||
0:98 2 (const int)
|
||||
0:99 Sequence
|
||||
0:99 move second child to first child ( temp uint)
|
||||
0:99 'result72' ( temp uint)
|
||||
0:99 Construct uint ( temp uint)
|
||||
0:99 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:99 'subpass_ms_u' ( uniform usubpassInputMS)
|
||||
0:99 Constant:
|
||||
0:99 2 (const int)
|
||||
0:101 Sequence
|
||||
0:101 move second child to first child ( temp 4-component vector of float)
|
||||
0:101 'result73' ( temp 4-component vector of float)
|
||||
0:101 subpassLoad ( temp 4-component vector of float)
|
||||
0:101 'subpass_2' ( uniform subpassInput)
|
||||
0:112 Branch: Return with expression
|
||||
0:112 Constant:
|
||||
0:112 0.000000
|
||||
0:112 0.000000
|
||||
0:112 0.000000
|
||||
0:112 0.000000
|
||||
0:68 Function Definition: main( ( temp void)
|
||||
0:68 Function Parameters:
|
||||
0:? Sequence
|
||||
0:68 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:68 Function Call: @main( ( temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput)
|
||||
0:? 'subpass_i4' ( uniform isubpassInput)
|
||||
0:? 'subpass_u4' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f4' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i4' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u4' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_f3' ( uniform subpassInput)
|
||||
0:? 'subpass_i3' ( uniform isubpassInput)
|
||||
0:? 'subpass_u3' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f3' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i3' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u3' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_f2' ( uniform subpassInput)
|
||||
0:? 'subpass_i2' ( uniform isubpassInput)
|
||||
0:? 'subpass_u2' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f2' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i2' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u2' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_f' ( uniform subpassInput)
|
||||
0:? 'subpass_i' ( uniform isubpassInput)
|
||||
0:? 'subpass_u' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_2' ( uniform subpassInput)
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 500
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:68 Function Definition: @main( ( temp 4-component vector of float)
|
||||
0:68 Function Parameters:
|
||||
0:? Sequence
|
||||
0:69 Sequence
|
||||
0:69 move second child to first child ( temp 4-component vector of float)
|
||||
0:69 'result00' ( temp 4-component vector of float)
|
||||
0:69 subpassLoad ( temp 4-component vector of float)
|
||||
0:69 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput)
|
||||
0:70 Sequence
|
||||
0:70 move second child to first child ( temp 4-component vector of int)
|
||||
0:70 'result01' ( temp 4-component vector of int)
|
||||
0:70 subpassLoad ( temp 4-component vector of int)
|
||||
0:70 'subpass_i4' ( uniform isubpassInput)
|
||||
0:71 Sequence
|
||||
0:71 move second child to first child ( temp 4-component vector of uint)
|
||||
0:71 'result02' ( temp 4-component vector of uint)
|
||||
0:71 subpassLoad ( temp 4-component vector of uint)
|
||||
0:71 'subpass_u4' ( uniform usubpassInput)
|
||||
0:73 Sequence
|
||||
0:73 move second child to first child ( temp 4-component vector of float)
|
||||
0:73 'result10' ( temp 4-component vector of float)
|
||||
0:73 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:73 'subpass_ms_f4' ( uniform subpassInputMS)
|
||||
0:73 Constant:
|
||||
0:73 3 (const int)
|
||||
0:74 Sequence
|
||||
0:74 move second child to first child ( temp 4-component vector of int)
|
||||
0:74 'result11' ( temp 4-component vector of int)
|
||||
0:74 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:74 'subpass_ms_i4' ( uniform isubpassInputMS)
|
||||
0:74 Constant:
|
||||
0:74 3 (const int)
|
||||
0:75 Sequence
|
||||
0:75 move second child to first child ( temp 4-component vector of uint)
|
||||
0:75 'result12' ( temp 4-component vector of uint)
|
||||
0:75 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:75 'subpass_ms_u4' ( uniform usubpassInputMS)
|
||||
0:75 Constant:
|
||||
0:75 3 (const int)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 3-component vector of float)
|
||||
0:77 'result20' ( temp 3-component vector of float)
|
||||
0:77 Construct vec3 ( temp 3-component vector of float)
|
||||
0:77 subpassLoad ( temp 4-component vector of float)
|
||||
0:77 'subpass_f3' ( uniform subpassInput)
|
||||
0:78 Sequence
|
||||
0:78 move second child to first child ( temp 3-component vector of int)
|
||||
0:78 'result21' ( temp 3-component vector of int)
|
||||
0:78 Construct ivec3 ( temp 3-component vector of int)
|
||||
0:78 subpassLoad ( temp 4-component vector of int)
|
||||
0:78 'subpass_i3' ( uniform isubpassInput)
|
||||
0:79 Sequence
|
||||
0:79 move second child to first child ( temp 3-component vector of uint)
|
||||
0:79 'result22' ( temp 3-component vector of uint)
|
||||
0:79 Construct uvec3 ( temp 3-component vector of uint)
|
||||
0:79 subpassLoad ( temp 4-component vector of uint)
|
||||
0:79 'subpass_u3' ( uniform usubpassInput)
|
||||
0:81 Sequence
|
||||
0:81 move second child to first child ( temp 3-component vector of float)
|
||||
0:81 'result30' ( temp 3-component vector of float)
|
||||
0:81 Construct vec3 ( temp 3-component vector of float)
|
||||
0:81 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:81 'subpass_ms_f3' ( uniform subpassInputMS)
|
||||
0:81 Constant:
|
||||
0:81 3 (const int)
|
||||
0:82 Sequence
|
||||
0:82 move second child to first child ( temp 3-component vector of int)
|
||||
0:82 'result31' ( temp 3-component vector of int)
|
||||
0:82 Construct ivec3 ( temp 3-component vector of int)
|
||||
0:82 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:82 'subpass_ms_i3' ( uniform isubpassInputMS)
|
||||
0:82 Constant:
|
||||
0:82 3 (const int)
|
||||
0:83 Sequence
|
||||
0:83 move second child to first child ( temp 3-component vector of uint)
|
||||
0:83 'result32' ( temp 3-component vector of uint)
|
||||
0:83 Construct uvec3 ( temp 3-component vector of uint)
|
||||
0:83 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:83 'subpass_ms_u3' ( uniform usubpassInputMS)
|
||||
0:83 Constant:
|
||||
0:83 3 (const int)
|
||||
0:85 Sequence
|
||||
0:85 move second child to first child ( temp 2-component vector of float)
|
||||
0:85 'result40' ( temp 2-component vector of float)
|
||||
0:85 Construct vec2 ( temp 2-component vector of float)
|
||||
0:85 subpassLoad ( temp 4-component vector of float)
|
||||
0:85 'subpass_f2' ( uniform subpassInput)
|
||||
0:86 Sequence
|
||||
0:86 move second child to first child ( temp 2-component vector of int)
|
||||
0:86 'result41' ( temp 2-component vector of int)
|
||||
0:86 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:86 subpassLoad ( temp 4-component vector of int)
|
||||
0:86 'subpass_i2' ( uniform isubpassInput)
|
||||
0:87 Sequence
|
||||
0:87 move second child to first child ( temp 2-component vector of uint)
|
||||
0:87 'result42' ( temp 2-component vector of uint)
|
||||
0:87 Construct uvec2 ( temp 2-component vector of uint)
|
||||
0:87 subpassLoad ( temp 4-component vector of uint)
|
||||
0:87 'subpass_u2' ( uniform usubpassInput)
|
||||
0:89 Sequence
|
||||
0:89 move second child to first child ( temp 2-component vector of float)
|
||||
0:89 'result50' ( temp 2-component vector of float)
|
||||
0:89 Construct vec2 ( temp 2-component vector of float)
|
||||
0:89 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:89 'subpass_ms_f2' ( uniform subpassInputMS)
|
||||
0:89 Constant:
|
||||
0:89 2 (const int)
|
||||
0:90 Sequence
|
||||
0:90 move second child to first child ( temp 2-component vector of int)
|
||||
0:90 'result51' ( temp 2-component vector of int)
|
||||
0:90 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:90 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:90 'subpass_ms_i2' ( uniform isubpassInputMS)
|
||||
0:90 Constant:
|
||||
0:90 2 (const int)
|
||||
0:91 Sequence
|
||||
0:91 move second child to first child ( temp 2-component vector of uint)
|
||||
0:91 'result52' ( temp 2-component vector of uint)
|
||||
0:91 Construct uvec2 ( temp 2-component vector of uint)
|
||||
0:91 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:91 'subpass_ms_u2' ( uniform usubpassInputMS)
|
||||
0:91 Constant:
|
||||
0:91 2 (const int)
|
||||
0:93 Sequence
|
||||
0:93 move second child to first child ( temp float)
|
||||
0:93 'result60' ( temp float)
|
||||
0:93 Construct float ( temp float)
|
||||
0:93 subpassLoad ( temp 4-component vector of float)
|
||||
0:93 'subpass_f' ( uniform subpassInput)
|
||||
0:94 Sequence
|
||||
0:94 move second child to first child ( temp int)
|
||||
0:94 'result61' ( temp int)
|
||||
0:94 Construct int ( temp int)
|
||||
0:94 subpassLoad ( temp 4-component vector of int)
|
||||
0:94 'subpass_i' ( uniform isubpassInput)
|
||||
0:95 Sequence
|
||||
0:95 move second child to first child ( temp uint)
|
||||
0:95 'result62' ( temp uint)
|
||||
0:95 Construct uint ( temp uint)
|
||||
0:95 subpassLoad ( temp 4-component vector of uint)
|
||||
0:95 'subpass_u' ( uniform usubpassInput)
|
||||
0:97 Sequence
|
||||
0:97 move second child to first child ( temp float)
|
||||
0:97 'result70' ( temp float)
|
||||
0:97 Construct float ( temp float)
|
||||
0:97 subpassLoadMS ( temp 4-component vector of float)
|
||||
0:97 'subpass_ms_f' ( uniform subpassInputMS)
|
||||
0:97 Constant:
|
||||
0:97 2 (const int)
|
||||
0:98 Sequence
|
||||
0:98 move second child to first child ( temp int)
|
||||
0:98 'result71' ( temp int)
|
||||
0:98 Construct int ( temp int)
|
||||
0:98 subpassLoadMS ( temp 4-component vector of int)
|
||||
0:98 'subpass_ms_i' ( uniform isubpassInputMS)
|
||||
0:98 Constant:
|
||||
0:98 2 (const int)
|
||||
0:99 Sequence
|
||||
0:99 move second child to first child ( temp uint)
|
||||
0:99 'result72' ( temp uint)
|
||||
0:99 Construct uint ( temp uint)
|
||||
0:99 subpassLoadMS ( temp 4-component vector of uint)
|
||||
0:99 'subpass_ms_u' ( uniform usubpassInputMS)
|
||||
0:99 Constant:
|
||||
0:99 2 (const int)
|
||||
0:101 Sequence
|
||||
0:101 move second child to first child ( temp 4-component vector of float)
|
||||
0:101 'result73' ( temp 4-component vector of float)
|
||||
0:101 subpassLoad ( temp 4-component vector of float)
|
||||
0:101 'subpass_2' ( uniform subpassInput)
|
||||
0:112 Branch: Return with expression
|
||||
0:112 Constant:
|
||||
0:112 0.000000
|
||||
0:112 0.000000
|
||||
0:112 0.000000
|
||||
0:112 0.000000
|
||||
0:68 Function Definition: main( ( temp void)
|
||||
0:68 Function Parameters:
|
||||
0:? Sequence
|
||||
0:68 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:68 Function Call: @main( ( temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput)
|
||||
0:? 'subpass_i4' ( uniform isubpassInput)
|
||||
0:? 'subpass_u4' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f4' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i4' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u4' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_f3' ( uniform subpassInput)
|
||||
0:? 'subpass_i3' ( uniform isubpassInput)
|
||||
0:? 'subpass_u3' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f3' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i3' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u3' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_f2' ( uniform subpassInput)
|
||||
0:? 'subpass_i2' ( uniform isubpassInput)
|
||||
0:? 'subpass_u2' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f2' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i2' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u2' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_f' ( uniform subpassInput)
|
||||
0:? 'subpass_i' ( uniform isubpassInput)
|
||||
0:? 'subpass_u' ( uniform usubpassInput)
|
||||
0:? 'subpass_ms_f' ( uniform subpassInputMS)
|
||||
0:? 'subpass_ms_i' ( uniform isubpassInputMS)
|
||||
0:? 'subpass_ms_u' ( uniform usubpassInputMS)
|
||||
0:? 'subpass_2' ( uniform subpassInput)
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 204
|
||||
|
||||
Capability Shader
|
||||
Capability StorageImageMultisample
|
||||
Capability InputAttachment
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 202
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 9 "@main("
|
||||
Name 12 "result00"
|
||||
Name 15 "subpass_f4"
|
||||
Name 24 "result01"
|
||||
Name 27 "subpass_i4"
|
||||
Name 33 "result02"
|
||||
Name 36 "subpass_u4"
|
||||
Name 39 "result10"
|
||||
Name 42 "subpass_ms_f4"
|
||||
Name 46 "result11"
|
||||
Name 49 "subpass_ms_i4"
|
||||
Name 52 "result12"
|
||||
Name 55 "subpass_ms_u4"
|
||||
Name 60 "result20"
|
||||
Name 61 "subpass_f3"
|
||||
Name 70 "result21"
|
||||
Name 71 "subpass_i3"
|
||||
Name 80 "result22"
|
||||
Name 81 "subpass_u3"
|
||||
Name 88 "result30"
|
||||
Name 89 "subpass_ms_f3"
|
||||
Name 96 "result31"
|
||||
Name 97 "subpass_ms_i3"
|
||||
Name 104 "result32"
|
||||
Name 105 "subpass_ms_u3"
|
||||
Name 114 "result40"
|
||||
Name 115 "subpass_f2"
|
||||
Name 122 "result41"
|
||||
Name 123 "subpass_i2"
|
||||
Name 131 "result42"
|
||||
Name 132 "subpass_u2"
|
||||
Name 138 "result50"
|
||||
Name 139 "subpass_ms_f2"
|
||||
Name 146 "result51"
|
||||
Name 147 "subpass_ms_i2"
|
||||
Name 153 "result52"
|
||||
Name 154 "subpass_ms_u2"
|
||||
Name 161 "result60"
|
||||
Name 162 "subpass_f"
|
||||
Name 167 "result61"
|
||||
Name 168 "subpass_i"
|
||||
Name 173 "result62"
|
||||
Name 174 "subpass_u"
|
||||
Name 178 "result70"
|
||||
Name 179 "subpass_ms_f"
|
||||
Name 183 "result71"
|
||||
Name 184 "subpass_ms_i"
|
||||
Name 188 "result72"
|
||||
Name 189 "subpass_ms_u"
|
||||
Name 193 "result73"
|
||||
Name 194 "subpass_2"
|
||||
Name 202 "@entryPointOutput"
|
||||
Decorate 15(subpass_f4) DescriptorSet 0
|
||||
Decorate 15(subpass_f4) Binding 1
|
||||
Decorate 15(subpass_f4) InputAttachmentIndex 1
|
||||
Decorate 27(subpass_i4) DescriptorSet 0
|
||||
Decorate 27(subpass_i4) InputAttachmentIndex 2
|
||||
Decorate 36(subpass_u4) DescriptorSet 0
|
||||
Decorate 36(subpass_u4) InputAttachmentIndex 3
|
||||
Decorate 42(subpass_ms_f4) DescriptorSet 0
|
||||
Decorate 42(subpass_ms_f4) InputAttachmentIndex 4
|
||||
Decorate 49(subpass_ms_i4) DescriptorSet 0
|
||||
Decorate 49(subpass_ms_i4) InputAttachmentIndex 5
|
||||
Decorate 55(subpass_ms_u4) DescriptorSet 0
|
||||
Decorate 55(subpass_ms_u4) InputAttachmentIndex 6
|
||||
Decorate 61(subpass_f3) DescriptorSet 0
|
||||
Decorate 61(subpass_f3) InputAttachmentIndex 1
|
||||
Decorate 71(subpass_i3) DescriptorSet 0
|
||||
Decorate 71(subpass_i3) InputAttachmentIndex 2
|
||||
Decorate 81(subpass_u3) DescriptorSet 0
|
||||
Decorate 81(subpass_u3) InputAttachmentIndex 3
|
||||
Decorate 89(subpass_ms_f3) DescriptorSet 0
|
||||
Decorate 89(subpass_ms_f3) InputAttachmentIndex 4
|
||||
Decorate 97(subpass_ms_i3) DescriptorSet 0
|
||||
Decorate 97(subpass_ms_i3) InputAttachmentIndex 5
|
||||
Decorate 105(subpass_ms_u3) DescriptorSet 0
|
||||
Decorate 105(subpass_ms_u3) InputAttachmentIndex 6
|
||||
Decorate 115(subpass_f2) DescriptorSet 0
|
||||
Decorate 115(subpass_f2) InputAttachmentIndex 1
|
||||
Decorate 123(subpass_i2) DescriptorSet 0
|
||||
Decorate 123(subpass_i2) InputAttachmentIndex 2
|
||||
Decorate 132(subpass_u2) DescriptorSet 0
|
||||
Decorate 132(subpass_u2) InputAttachmentIndex 3
|
||||
Decorate 139(subpass_ms_f2) DescriptorSet 0
|
||||
Decorate 139(subpass_ms_f2) InputAttachmentIndex 4
|
||||
Decorate 147(subpass_ms_i2) DescriptorSet 0
|
||||
Decorate 147(subpass_ms_i2) InputAttachmentIndex 5
|
||||
Decorate 154(subpass_ms_u2) DescriptorSet 0
|
||||
Decorate 154(subpass_ms_u2) InputAttachmentIndex 6
|
||||
Decorate 162(subpass_f) DescriptorSet 0
|
||||
Decorate 162(subpass_f) InputAttachmentIndex 1
|
||||
Decorate 168(subpass_i) DescriptorSet 0
|
||||
Decorate 168(subpass_i) InputAttachmentIndex 2
|
||||
Decorate 174(subpass_u) DescriptorSet 0
|
||||
Decorate 174(subpass_u) InputAttachmentIndex 3
|
||||
Decorate 179(subpass_ms_f) DescriptorSet 0
|
||||
Decorate 179(subpass_ms_f) InputAttachmentIndex 4
|
||||
Decorate 184(subpass_ms_i) DescriptorSet 0
|
||||
Decorate 184(subpass_ms_i) InputAttachmentIndex 5
|
||||
Decorate 189(subpass_ms_u) DescriptorSet 0
|
||||
Decorate 189(subpass_ms_u) InputAttachmentIndex 6
|
||||
Decorate 194(subpass_2) DescriptorSet 0
|
||||
Decorate 194(subpass_2) InputAttachmentIndex 7
|
||||
Decorate 202(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeFunction 7(fvec4)
|
||||
11: TypePointer Function 7(fvec4)
|
||||
13: TypeImage 6(float) SubpassData nonsampled format:Unknown
|
||||
14: TypePointer UniformConstant 13
|
||||
15(subpass_f4): 14(ptr) Variable UniformConstant
|
||||
17: TypeInt 32 1
|
||||
18: 17(int) Constant 0
|
||||
19: TypeVector 17(int) 2
|
||||
20: 19(ivec2) ConstantComposite 18 18
|
||||
22: TypeVector 17(int) 4
|
||||
23: TypePointer Function 22(ivec4)
|
||||
25: TypeImage 17(int) SubpassData nonsampled format:Unknown
|
||||
26: TypePointer UniformConstant 25
|
||||
27(subpass_i4): 26(ptr) Variable UniformConstant
|
||||
30: TypeInt 32 0
|
||||
31: TypeVector 30(int) 4
|
||||
32: TypePointer Function 31(ivec4)
|
||||
34: TypeImage 30(int) SubpassData nonsampled format:Unknown
|
||||
35: TypePointer UniformConstant 34
|
||||
36(subpass_u4): 35(ptr) Variable UniformConstant
|
||||
40: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown
|
||||
41: TypePointer UniformConstant 40
|
||||
42(subpass_ms_f4): 41(ptr) Variable UniformConstant
|
||||
44: 17(int) Constant 3
|
||||
47: TypeImage 17(int) SubpassData multi-sampled nonsampled format:Unknown
|
||||
48: TypePointer UniformConstant 47
|
||||
49(subpass_ms_i4): 48(ptr) Variable UniformConstant
|
||||
53: TypeImage 30(int) SubpassData multi-sampled nonsampled format:Unknown
|
||||
54: TypePointer UniformConstant 53
|
||||
55(subpass_ms_u4): 54(ptr) Variable UniformConstant
|
||||
58: TypeVector 6(float) 3
|
||||
59: TypePointer Function 58(fvec3)
|
||||
61(subpass_f3): 14(ptr) Variable UniformConstant
|
||||
68: TypeVector 17(int) 3
|
||||
69: TypePointer Function 68(ivec3)
|
||||
71(subpass_i3): 26(ptr) Variable UniformConstant
|
||||
78: TypeVector 30(int) 3
|
||||
79: TypePointer Function 78(ivec3)
|
||||
81(subpass_u3): 35(ptr) Variable UniformConstant
|
||||
89(subpass_ms_f3): 41(ptr) Variable UniformConstant
|
||||
97(subpass_ms_i3): 48(ptr) Variable UniformConstant
|
||||
105(subpass_ms_u3): 54(ptr) Variable UniformConstant
|
||||
112: TypeVector 6(float) 2
|
||||
113: TypePointer Function 112(fvec2)
|
||||
115(subpass_f2): 14(ptr) Variable UniformConstant
|
||||
121: TypePointer Function 19(ivec2)
|
||||
123(subpass_i2): 26(ptr) Variable UniformConstant
|
||||
129: TypeVector 30(int) 2
|
||||
130: TypePointer Function 129(ivec2)
|
||||
132(subpass_u2): 35(ptr) Variable UniformConstant
|
||||
139(subpass_ms_f2): 41(ptr) Variable UniformConstant
|
||||
141: 17(int) Constant 2
|
||||
147(subpass_ms_i2): 48(ptr) Variable UniformConstant
|
||||
154(subpass_ms_u2): 54(ptr) Variable UniformConstant
|
||||
160: TypePointer Function 6(float)
|
||||
162(subpass_f): 14(ptr) Variable UniformConstant
|
||||
166: TypePointer Function 17(int)
|
||||
168(subpass_i): 26(ptr) Variable UniformConstant
|
||||
172: TypePointer Function 30(int)
|
||||
174(subpass_u): 35(ptr) Variable UniformConstant
|
||||
179(subpass_ms_f): 41(ptr) Variable UniformConstant
|
||||
184(subpass_ms_i): 48(ptr) Variable UniformConstant
|
||||
189(subpass_ms_u): 54(ptr) Variable UniformConstant
|
||||
194(subpass_2): 14(ptr) Variable UniformConstant
|
||||
197: 6(float) Constant 0
|
||||
198: 7(fvec4) ConstantComposite 197 197 197 197
|
||||
201: TypePointer Output 7(fvec4)
|
||||
202(@entryPointOutput): 201(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
203: 7(fvec4) FunctionCall 9(@main()
|
||||
Store 202(@entryPointOutput) 203
|
||||
Return
|
||||
FunctionEnd
|
||||
9(@main(): 7(fvec4) Function None 8
|
||||
10: Label
|
||||
12(result00): 11(ptr) Variable Function
|
||||
24(result01): 23(ptr) Variable Function
|
||||
33(result02): 32(ptr) Variable Function
|
||||
39(result10): 11(ptr) Variable Function
|
||||
46(result11): 23(ptr) Variable Function
|
||||
52(result12): 32(ptr) Variable Function
|
||||
60(result20): 59(ptr) Variable Function
|
||||
70(result21): 69(ptr) Variable Function
|
||||
80(result22): 79(ptr) Variable Function
|
||||
88(result30): 59(ptr) Variable Function
|
||||
96(result31): 69(ptr) Variable Function
|
||||
104(result32): 79(ptr) Variable Function
|
||||
114(result40): 113(ptr) Variable Function
|
||||
122(result41): 121(ptr) Variable Function
|
||||
131(result42): 130(ptr) Variable Function
|
||||
138(result50): 113(ptr) Variable Function
|
||||
146(result51): 121(ptr) Variable Function
|
||||
153(result52): 130(ptr) Variable Function
|
||||
161(result60): 160(ptr) Variable Function
|
||||
167(result61): 166(ptr) Variable Function
|
||||
173(result62): 172(ptr) Variable Function
|
||||
178(result70): 160(ptr) Variable Function
|
||||
183(result71): 166(ptr) Variable Function
|
||||
188(result72): 172(ptr) Variable Function
|
||||
193(result73): 11(ptr) Variable Function
|
||||
16: 13 Load 15(subpass_f4)
|
||||
21: 7(fvec4) ImageRead 16 20
|
||||
Store 12(result00) 21
|
||||
28: 25 Load 27(subpass_i4)
|
||||
29: 22(ivec4) ImageRead 28 20
|
||||
Store 24(result01) 29
|
||||
37: 34 Load 36(subpass_u4)
|
||||
38: 31(ivec4) ImageRead 37 20
|
||||
Store 33(result02) 38
|
||||
43: 40 Load 42(subpass_ms_f4)
|
||||
45: 7(fvec4) ImageRead 43 20 Sample 44
|
||||
Store 39(result10) 45
|
||||
50: 47 Load 49(subpass_ms_i4)
|
||||
51: 22(ivec4) ImageRead 50 20 Sample 44
|
||||
Store 46(result11) 51
|
||||
56: 53 Load 55(subpass_ms_u4)
|
||||
57: 31(ivec4) ImageRead 56 20 Sample 44
|
||||
Store 52(result12) 57
|
||||
62: 13 Load 61(subpass_f3)
|
||||
63: 7(fvec4) ImageRead 62 20
|
||||
64: 6(float) CompositeExtract 63 0
|
||||
65: 6(float) CompositeExtract 63 1
|
||||
66: 6(float) CompositeExtract 63 2
|
||||
67: 58(fvec3) CompositeConstruct 64 65 66
|
||||
Store 60(result20) 67
|
||||
72: 25 Load 71(subpass_i3)
|
||||
73: 22(ivec4) ImageRead 72 20
|
||||
74: 17(int) CompositeExtract 73 0
|
||||
75: 17(int) CompositeExtract 73 1
|
||||
76: 17(int) CompositeExtract 73 2
|
||||
77: 68(ivec3) CompositeConstruct 74 75 76
|
||||
Store 70(result21) 77
|
||||
82: 34 Load 81(subpass_u3)
|
||||
83: 31(ivec4) ImageRead 82 20
|
||||
84: 30(int) CompositeExtract 83 0
|
||||
85: 30(int) CompositeExtract 83 1
|
||||
86: 30(int) CompositeExtract 83 2
|
||||
87: 78(ivec3) CompositeConstruct 84 85 86
|
||||
Store 80(result22) 87
|
||||
90: 40 Load 89(subpass_ms_f3)
|
||||
91: 7(fvec4) ImageRead 90 20 Sample 44
|
||||
92: 6(float) CompositeExtract 91 0
|
||||
93: 6(float) CompositeExtract 91 1
|
||||
94: 6(float) CompositeExtract 91 2
|
||||
95: 58(fvec3) CompositeConstruct 92 93 94
|
||||
Store 88(result30) 95
|
||||
98: 47 Load 97(subpass_ms_i3)
|
||||
99: 22(ivec4) ImageRead 98 20 Sample 44
|
||||
100: 17(int) CompositeExtract 99 0
|
||||
101: 17(int) CompositeExtract 99 1
|
||||
102: 17(int) CompositeExtract 99 2
|
||||
103: 68(ivec3) CompositeConstruct 100 101 102
|
||||
Store 96(result31) 103
|
||||
106: 53 Load 105(subpass_ms_u3)
|
||||
107: 31(ivec4) ImageRead 106 20 Sample 44
|
||||
108: 30(int) CompositeExtract 107 0
|
||||
109: 30(int) CompositeExtract 107 1
|
||||
110: 30(int) CompositeExtract 107 2
|
||||
111: 78(ivec3) CompositeConstruct 108 109 110
|
||||
Store 104(result32) 111
|
||||
116: 13 Load 115(subpass_f2)
|
||||
117: 7(fvec4) ImageRead 116 20
|
||||
118: 6(float) CompositeExtract 117 0
|
||||
119: 6(float) CompositeExtract 117 1
|
||||
120: 112(fvec2) CompositeConstruct 118 119
|
||||
Store 114(result40) 120
|
||||
124: 25 Load 123(subpass_i2)
|
||||
125: 22(ivec4) ImageRead 124 20
|
||||
126: 17(int) CompositeExtract 125 0
|
||||
127: 17(int) CompositeExtract 125 1
|
||||
128: 19(ivec2) CompositeConstruct 126 127
|
||||
Store 122(result41) 128
|
||||
133: 34 Load 132(subpass_u2)
|
||||
134: 31(ivec4) ImageRead 133 20
|
||||
135: 30(int) CompositeExtract 134 0
|
||||
136: 30(int) CompositeExtract 134 1
|
||||
137: 129(ivec2) CompositeConstruct 135 136
|
||||
Store 131(result42) 137
|
||||
140: 40 Load 139(subpass_ms_f2)
|
||||
142: 7(fvec4) ImageRead 140 20 Sample 141
|
||||
143: 6(float) CompositeExtract 142 0
|
||||
144: 6(float) CompositeExtract 142 1
|
||||
145: 112(fvec2) CompositeConstruct 143 144
|
||||
Store 138(result50) 145
|
||||
148: 47 Load 147(subpass_ms_i2)
|
||||
149: 22(ivec4) ImageRead 148 20 Sample 141
|
||||
150: 17(int) CompositeExtract 149 0
|
||||
151: 17(int) CompositeExtract 149 1
|
||||
152: 19(ivec2) CompositeConstruct 150 151
|
||||
Store 146(result51) 152
|
||||
155: 53 Load 154(subpass_ms_u2)
|
||||
156: 31(ivec4) ImageRead 155 20 Sample 141
|
||||
157: 30(int) CompositeExtract 156 0
|
||||
158: 30(int) CompositeExtract 156 1
|
||||
159: 129(ivec2) CompositeConstruct 157 158
|
||||
Store 153(result52) 159
|
||||
163: 13 Load 162(subpass_f)
|
||||
164: 7(fvec4) ImageRead 163 20
|
||||
165: 6(float) CompositeExtract 164 0
|
||||
Store 161(result60) 165
|
||||
169: 25 Load 168(subpass_i)
|
||||
170: 22(ivec4) ImageRead 169 20
|
||||
171: 17(int) CompositeExtract 170 0
|
||||
Store 167(result61) 171
|
||||
175: 34 Load 174(subpass_u)
|
||||
176: 31(ivec4) ImageRead 175 20
|
||||
177: 30(int) CompositeExtract 176 0
|
||||
Store 173(result62) 177
|
||||
180: 40 Load 179(subpass_ms_f)
|
||||
181: 7(fvec4) ImageRead 180 20 Sample 141
|
||||
182: 6(float) CompositeExtract 181 0
|
||||
Store 178(result70) 182
|
||||
185: 47 Load 184(subpass_ms_i)
|
||||
186: 22(ivec4) ImageRead 185 20 Sample 141
|
||||
187: 17(int) CompositeExtract 186 0
|
||||
Store 183(result71) 187
|
||||
190: 53 Load 189(subpass_ms_u)
|
||||
191: 31(ivec4) ImageRead 190 20 Sample 141
|
||||
192: 30(int) CompositeExtract 191 0
|
||||
Store 188(result72) 192
|
||||
195: 13 Load 194(subpass_2)
|
||||
196: 7(fvec4) ImageRead 195 20
|
||||
Store 193(result73) 196
|
||||
ReturnValue 198
|
||||
FunctionEnd
|
||||
Reference in New Issue
Block a user