Merge pull request #1175 from KhronosGroup/no-flatten-local-opaque
HLSL: Stop flattening non-IO structs containing opaques.
This commit is contained in:
		
						commit
						1cfc0f9e8b
					
				| @ -2,49 +2,54 @@ hlsl.aliasOpaque.frag | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 81 | // Id's are bound by 87 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 57 |                               EntryPoint Fragment 4  "main" 62 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 37  "gss2" |                               Name 9  "OS" | ||||||
|                               Name 39  "gss" |                               MemberName 9(OS) 0  "ss" | ||||||
|                               Name 43  "gtex" |                               MemberName 9(OS) 1  "a" | ||||||
|                               Name 57  "@entryPointOutput" |                               MemberName 9(OS) 2  "tex" | ||||||
|                               Decorate 37(gss2) DescriptorSet 0 |                               Name 44  "gss2" | ||||||
|                               Decorate 39(gss) DescriptorSet 0 |                               Name 47  "gss" | ||||||
|                               Decorate 43(gtex) DescriptorSet 0 |                               Name 51  "gtex" | ||||||
|                               Decorate 57(@entryPointOutput) Location 0 |                               Name 62  "@entryPointOutput" | ||||||
|  |                               Decorate 44(gss2) DescriptorSet 0 | ||||||
|  |                               Decorate 47(gss) DescriptorSet 0 | ||||||
|  |                               Decorate 51(gtex) DescriptorSet 0 | ||||||
|  |                               Decorate 62(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                8:             TypeFloat 32 |                7:             TypeFloat 32 | ||||||
|               10:             TypeImage 8(float) 2D sampled format:Unknown |                8:             TypeImage 7(float) 2D sampled format:Unknown | ||||||
|               12:             TypeVector 8(float) 4 |            9(OS):             TypeStruct 6 7(float) 8 | ||||||
|               25:             TypeSampledImage 10 |               11:             TypeVector 7(float) 4 | ||||||
|               27:             TypeVector 8(float) 2 |               32:             TypeSampledImage 8 | ||||||
|               28:    8(float) Constant 1045220557 |               34:             TypeVector 7(float) 2 | ||||||
|               29:    8(float) Constant 1050253722 |               35:    7(float) Constant 1045220557 | ||||||
|               30:   27(fvec2) ConstantComposite 28 29 |               36:    7(float) Constant 1050253722 | ||||||
|               36:             TypePointer UniformConstant 6 |               37:   34(fvec2) ConstantComposite 35 36 | ||||||
|         37(gss2):     36(ptr) Variable UniformConstant |               43:             TypePointer UniformConstant 6 | ||||||
|          39(gss):     36(ptr) Variable UniformConstant |         44(gss2):     43(ptr) Variable UniformConstant | ||||||
|               42:             TypePointer UniformConstant 10 |          47(gss):     43(ptr) Variable UniformConstant | ||||||
|         43(gtex):     42(ptr) Variable UniformConstant |               50:             TypePointer UniformConstant 8 | ||||||
|               46:    8(float) Constant 1077936128 |         51(gtex):     50(ptr) Variable UniformConstant | ||||||
|               56:             TypePointer Output 12(fvec4) |               54:    7(float) Constant 1077936128 | ||||||
| 57(@entryPointOutput):     56(ptr) Variable Output |               61:             TypePointer Output 11(fvec4) | ||||||
|  | 62(@entryPointOutput):     61(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               68:           6 Load 39(gss) |               70:           6 Load 47(gss) | ||||||
|               69:          10 Load 43(gtex) |               72:           8 Load 51(gtex) | ||||||
|               78:          25 SampledImage 69 68 |               84:          32 SampledImage 72 70 | ||||||
|               79:   12(fvec4) ImageSampleImplicitLod 78 30 |               85:   11(fvec4) ImageSampleImplicitLod 84 37 | ||||||
|               80:   12(fvec4) VectorTimesScalar 79 46 |               86:   11(fvec4) VectorTimesScalar 85 54 | ||||||
|                               Store 57(@entryPointOutput) 80 |                               Store 62(@entryPointOutput) 86 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -1,65 +1,73 @@ | |||||||
| hlsl.flattenOpaque.frag | hlsl.flattenOpaque.frag | ||||||
|  | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 144 | // Id's are bound by 185 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 97 |                               EntryPoint Fragment 4  "main" 120 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|  |                               Name 7  "os" | ||||||
|  |                               MemberName 7(os) 0  "s2D" | ||||||
|  |                               Name 23  "os2" | ||||||
|  |                               MemberName 23(os2) 0  "s2D" | ||||||
|  |                               MemberName 23(os2) 1  "tex" | ||||||
|                               Name 38  "tex" |                               Name 38  "tex" | ||||||
|                               Name 70  "s.s2D" |                               Name 82  "s.s2D" | ||||||
|                               Name 79  "s2.s2D" |                               Name 97  "s2.s2D" | ||||||
|                               Name 80  "s2.tex" |                               Name 100  "s2.tex" | ||||||
|                               Name 97  "@entryPointOutput" |                               Name 120  "@entryPointOutput" | ||||||
|                               Decorate 38(tex) DescriptorSet 0 |                               Decorate 38(tex) DescriptorSet 0 | ||||||
|                               Decorate 70(s.s2D) DescriptorSet 0 |                               Decorate 82(s.s2D) DescriptorSet 0 | ||||||
|                               Decorate 79(s2.s2D) DescriptorSet 0 |                               Decorate 97(s2.s2D) DescriptorSet 0 | ||||||
|                               Decorate 80(s2.tex) DescriptorSet 0 |                               Decorate 100(s2.tex) DescriptorSet 0 | ||||||
|                               Decorate 97(@entryPointOutput) Location 0 |                               Decorate 120(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                8:             TypeFloat 32 |            7(os):             TypeStruct 6 | ||||||
|                9:             TypeVector 8(float) 4 |                9:             TypeFloat 32 | ||||||
|               14:             TypeVector 8(float) 2 |               10:             TypeVector 9(float) 4 | ||||||
|               21:             TypeImage 8(float) 2D sampled format:Unknown |               15:             TypeVector 9(float) 2 | ||||||
|               37:             TypePointer UniformConstant 21 |               22:             TypeImage 9(float) 2D sampled format:Unknown | ||||||
|  |          23(os2):             TypeStruct 6 22 | ||||||
|  |               37:             TypePointer UniformConstant 22 | ||||||
|          38(tex):     37(ptr) Variable UniformConstant |          38(tex):     37(ptr) Variable UniformConstant | ||||||
|               41:             TypeSampledImage 21 |               45:             TypeSampledImage 22 | ||||||
|               43:    8(float) Constant 1045220557 |               47:    9(float) Constant 1045220557 | ||||||
|               44:    8(float) Constant 1050253722 |               48:    9(float) Constant 1050253722 | ||||||
|               45:   14(fvec2) ConstantComposite 43 44 |               49:   15(fvec2) ConstantComposite 47 48 | ||||||
|               69:             TypePointer UniformConstant 6 |               81:             TypePointer UniformConstant 6 | ||||||
|        70(s.s2D):     69(ptr) Variable UniformConstant |        82(s.s2D):     81(ptr) Variable UniformConstant | ||||||
|       79(s2.s2D):     69(ptr) Variable UniformConstant |       97(s2.s2D):     81(ptr) Variable UniformConstant | ||||||
|       80(s2.tex):     37(ptr) Variable UniformConstant |      100(s2.tex):     37(ptr) Variable UniformConstant | ||||||
|               96:             TypePointer Output 9(fvec4) |              119:             TypePointer Output 10(fvec4) | ||||||
| 97(@entryPointOutput):     96(ptr) Variable Output | 120(@entryPointOutput):    119(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|              109:           6 Load 70(s.s2D) |              134:           6 Load 82(s.s2D) | ||||||
|              123:          21 Load 38(tex) |              158:          22 Load 38(tex) | ||||||
|              125:          41 SampledImage 123 109 |              161:          45 SampledImage 158 134 | ||||||
|              126:    9(fvec4) ImageSampleImplicitLod 125 45 |              162:   10(fvec4) ImageSampleImplicitLod 161 49 | ||||||
|              111:           6 Load 70(s.s2D) |              138:           6 Load 82(s.s2D) | ||||||
|              128:          21 Load 38(tex) |              164:          22 Load 38(tex) | ||||||
|              130:          41 SampledImage 128 111 |              167:          45 SampledImage 164 138 | ||||||
|              132:    9(fvec4) ImageSampleImplicitLod 130 45 |              169:   10(fvec4) ImageSampleImplicitLod 167 49 | ||||||
|              113:    9(fvec4) FAdd 126 132 |              142:   10(fvec4) FAdd 162 169 | ||||||
|              114:           6 Load 79(s2.s2D) |              143:           6 Load 97(s2.s2D) | ||||||
|              115:          21 Load 80(s2.tex) |              145:          22 Load 100(s2.tex) | ||||||
|              136:          41 SampledImage 115 114 |              175:          45 SampledImage 145 143 | ||||||
|              137:    9(fvec4) ImageSampleImplicitLod 136 45 |              176:   10(fvec4) ImageSampleImplicitLod 175 49 | ||||||
|              117:    9(fvec4) FAdd 113 137 |              149:   10(fvec4) FAdd 142 176 | ||||||
|              118:           6 Load 79(s2.s2D) |              150:           6 Load 97(s2.s2D) | ||||||
|              119:          21 Load 80(s2.tex) |              152:          22 Load 100(s2.tex) | ||||||
|              141:          41 SampledImage 119 118 |              182:          45 SampledImage 152 150 | ||||||
|              143:    9(fvec4) ImageSampleImplicitLod 141 45 |              184:   10(fvec4) ImageSampleImplicitLod 182 49 | ||||||
|              121:    9(fvec4) FAdd 117 143 |              156:   10(fvec4) FAdd 149 184 | ||||||
|                               Store 97(@entryPointOutput) 121 |                               Store 120(@entryPointOutput) 156 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -2,57 +2,56 @@ hlsl.flattenOpaqueInit.vert | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 176 | // Id's are bound by 134 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 99 |                               EntryPoint Vertex 4  "main" 80 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 17  "FxaaTex" |                               Name 9  "FxaaTex" | ||||||
|                               MemberName 17(FxaaTex) 0  "smpl" |                               MemberName 9(FxaaTex) 0  "smpl" | ||||||
|                               MemberName 17(FxaaTex) 1  "tex" |                               MemberName 9(FxaaTex) 1  "tex" | ||||||
|                               Name 38  "g_tInputTexture_sampler" |                               Name 43  "g_tInputTexture_sampler" | ||||||
|                               Name 42  "g_tInputTexture" |                               Name 47  "g_tInputTexture" | ||||||
|                               Name 99  "@entryPointOutput" |                               Name 80  "@entryPointOutput" | ||||||
|                               Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 |                               Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 | ||||||
|                               Decorate 42(g_tInputTexture) DescriptorSet 0 |                               Decorate 47(g_tInputTexture) DescriptorSet 0 | ||||||
|                               Decorate 99(@entryPointOutput) Location 0 |                               Decorate 80(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                8:             TypeFloat 32 |                7:             TypeFloat 32 | ||||||
|                9:             TypeImage 8(float) 2D sampled format:Unknown |                8:             TypeImage 7(float) 2D sampled format:Unknown | ||||||
|               11:             TypeVector 8(float) 4 |       9(FxaaTex):             TypeStruct 6 8 | ||||||
|      17(FxaaTex):             TypeStruct 6 9 |               11:             TypeVector 7(float) 4 | ||||||
|               26:             TypeSampledImage 9 |               31:             TypeSampledImage 8 | ||||||
|               28:             TypeVector 8(float) 2 |               33:             TypeVector 7(float) 2 | ||||||
|               29:    8(float) Constant 1050253722 |               34:    7(float) Constant 1050253722 | ||||||
|               30:    8(float) Constant 1053609165 |               35:    7(float) Constant 1053609165 | ||||||
|               31:   28(fvec2) ConstantComposite 29 30 |               36:   33(fvec2) ConstantComposite 34 35 | ||||||
|               32:    8(float) Constant 0 |               37:    7(float) Constant 0 | ||||||
|               37:             TypePointer UniformConstant 6 |               42:             TypePointer UniformConstant 6 | ||||||
| 38(g_tInputTexture_sampler):     37(ptr) Variable UniformConstant | 43(g_tInputTexture_sampler):     42(ptr) Variable UniformConstant | ||||||
|               41:             TypePointer UniformConstant 9 |               46:             TypePointer UniformConstant 8 | ||||||
| 42(g_tInputTexture):     41(ptr) Variable UniformConstant | 47(g_tInputTexture):     46(ptr) Variable UniformConstant | ||||||
|               98:             TypePointer Output 11(fvec4) |               79:             TypePointer Output 11(fvec4) | ||||||
| 99(@entryPointOutput):     98(ptr) Variable Output | 80(@entryPointOutput):     79(ptr) Variable Output | ||||||
|              175: 17(FxaaTex) Undef |  | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|              117:           6 Load 38(g_tInputTexture_sampler) |               90:           6 Load 43(g_tInputTexture_sampler) | ||||||
|              118:           9 Load 42(g_tInputTexture) |               91:           8 Load 47(g_tInputTexture) | ||||||
|              148:          26 SampledImage 118 117 |              111:          31 SampledImage 91 90 | ||||||
|              149:   11(fvec4) ImageSampleExplicitLod 148 31 Lod 32 |              112:   11(fvec4) ImageSampleExplicitLod 111 36 Lod 37 | ||||||
|              172:           6 CompositeExtract 175 0 |              115:           6 Load 43(g_tInputTexture_sampler) | ||||||
|              174:           9 CompositeExtract 175 1 |              117:           8 Load 47(g_tInputTexture) | ||||||
|              160:          26 SampledImage 174 172 |              125:          31 SampledImage 117 115 | ||||||
|              161:   11(fvec4) ImageSampleExplicitLod 160 31 Lod 32 |              126:   11(fvec4) ImageSampleExplicitLod 125 36 Lod 37 | ||||||
|              136:   11(fvec4) FAdd 149 161 |               99:   11(fvec4) FAdd 112 126 | ||||||
|              165:          26 SampledImage 118 117 |              132:          31 SampledImage 91 90 | ||||||
|              166:   11(fvec4) ImageSampleExplicitLod 165 31 Lod 32 |              133:   11(fvec4) ImageSampleExplicitLod 132 36 Lod 37 | ||||||
|              143:   11(fvec4) FAdd 136 166 |              104:   11(fvec4) FAdd 99 133 | ||||||
|                               Store 99(@entryPointOutput) 143 |                               Store 80(@entryPointOutput) 104 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -2,48 +2,48 @@ hlsl.flattenOpaqueInitMix.vert | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 100 | // Id's are bound by 80 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 68 |                               EntryPoint Vertex 4  "main" 57 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 34  "FxaaTex" |                               Name 9  "FxaaTex" | ||||||
|                               MemberName 34(FxaaTex) 0  "smpl" |                               MemberName 9(FxaaTex) 0  "smpl" | ||||||
|                               MemberName 34(FxaaTex) 1  "tex" |                               MemberName 9(FxaaTex) 1  "tex" | ||||||
|                               MemberName 34(FxaaTex) 2  "f" |                               MemberName 9(FxaaTex) 2  "f" | ||||||
|                               Name 38  "g_tInputTexture_sampler" |                               Name 44  "g_tInputTexture_sampler" | ||||||
|                               Name 41  "g_tInputTexture" |                               Name 47  "g_tInputTexture" | ||||||
|                               Name 68  "@entryPointOutput" |                               Name 57  "@entryPointOutput" | ||||||
|                               Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 |                               Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 | ||||||
|                               Decorate 41(g_tInputTexture) DescriptorSet 0 |                               Decorate 47(g_tInputTexture) DescriptorSet 0 | ||||||
|                               Decorate 68(@entryPointOutput) Location 0 |                               Decorate 57(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                8:             TypeFloat 32 |                7:             TypeFloat 32 | ||||||
|                9:             TypeImage 8(float) 2D sampled format:Unknown |                8:             TypeImage 7(float) 2D sampled format:Unknown | ||||||
|               12:             TypeVector 8(float) 4 |       9(FxaaTex):             TypeStruct 6 8 7(float) | ||||||
|               24:             TypeSampledImage 9 |               11:             TypeVector 7(float) 4 | ||||||
|               28:             TypeVector 8(float) 2 |               28:             TypeSampledImage 8 | ||||||
|               30:    8(float) Constant 0 |               36:             TypeVector 7(float) 2 | ||||||
|      34(FxaaTex):             TypeStruct 6 9 8(float) |               38:    7(float) Constant 0 | ||||||
|               37:             TypePointer UniformConstant 6 |               43:             TypePointer UniformConstant 6 | ||||||
| 38(g_tInputTexture_sampler):     37(ptr) Variable UniformConstant | 44(g_tInputTexture_sampler):     43(ptr) Variable UniformConstant | ||||||
|               40:             TypePointer UniformConstant 9 |               46:             TypePointer UniformConstant 8 | ||||||
| 41(g_tInputTexture):     40(ptr) Variable UniformConstant | 47(g_tInputTexture):     46(ptr) Variable UniformConstant | ||||||
|               43:    8(float) Constant 1056964608 |               49:    7(float) Constant 1056964608 | ||||||
|               67:             TypePointer Output 12(fvec4) |               56:             TypePointer Output 11(fvec4) | ||||||
| 68(@entryPointOutput):     67(ptr) Variable Output | 57(@entryPointOutput):     56(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               79:           6 Load 38(g_tInputTexture_sampler) |               63:           6 Load 44(g_tInputTexture_sampler) | ||||||
|               80:           9 Load 41(g_tInputTexture) |               64:           8 Load 47(g_tInputTexture) | ||||||
|               95:          24 SampledImage 80 79 |               73:          28 SampledImage 64 63 | ||||||
|               98:   28(fvec2) CompositeConstruct 43 43 |               78:   36(fvec2) CompositeConstruct 49 49 | ||||||
|               99:   12(fvec4) ImageSampleExplicitLod 95 98 Lod 30 |               79:   11(fvec4) ImageSampleExplicitLod 73 78 Lod 38 | ||||||
|                               Store 68(@entryPointOutput) 99 |                               Store 57(@entryPointOutput) 79 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -2,47 +2,67 @@ hlsl.flattenSubset.frag | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 85 | // Id's are bound by 66 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 54 57 |                               EntryPoint Fragment 4  "main" 47 50 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 17  "samp" |                               Name 15  "S0" | ||||||
|                               Name 41  "tex" |                               MemberName 15(S0) 0  "x" | ||||||
|                               Name 54  "vpos" |                               MemberName 15(S0) 1  "y" | ||||||
|                               Name 57  "@entryPointOutput" |                               MemberName 15(S0) 2  "ss" | ||||||
|                               Decorate 17(samp) DescriptorSet 0 |                               Name 16  "S1" | ||||||
|                               Decorate 41(tex) DescriptorSet 0 |                               MemberName 16(S1) 0  "b" | ||||||
|                               Decorate 54(vpos) Location 0 |                               MemberName 16(S1) 1  "samplerState" | ||||||
|                               Decorate 57(@entryPointOutput) Location 0 |                               MemberName 16(S1) 2  "s0" | ||||||
|  |                               MemberName 16(S1) 3  "a" | ||||||
|  |                               Name 21  "samp" | ||||||
|  |                               Name 25  "S2" | ||||||
|  |                               MemberName 25(S2) 0  "a1" | ||||||
|  |                               MemberName 25(S2) 1  "a2" | ||||||
|  |                               MemberName 25(S2) 2  "a3" | ||||||
|  |                               MemberName 25(S2) 3  "a4" | ||||||
|  |                               MemberName 25(S2) 4  "a5" | ||||||
|  |                               MemberName 25(S2) 5  "resources" | ||||||
|  |                               Name 33  "tex" | ||||||
|  |                               Name 47  "vpos" | ||||||
|  |                               Name 50  "@entryPointOutput" | ||||||
|  |                               Decorate 21(samp) DescriptorSet 0 | ||||||
|  |                               Decorate 33(tex) DescriptorSet 0 | ||||||
|  |                               Decorate 47(vpos) Location 0 | ||||||
|  |                               Decorate 50(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
|                7:             TypeVector 6(float) 4 |                7:             TypeVector 6(float) 4 | ||||||
|               13:             TypeSampler |               13:             TypeSampler | ||||||
|               16:             TypePointer UniformConstant 13 |               14:             TypeInt 32 1 | ||||||
|         17(samp):     16(ptr) Variable UniformConstant |           15(S0):             TypeStruct 14(int) 14(int) 13 | ||||||
|               39:             TypeImage 6(float) 2D sampled format:Unknown |           16(S1):             TypeStruct 6(float) 13 15(S0) 14(int) | ||||||
|               40:             TypePointer UniformConstant 39 |               20:             TypePointer UniformConstant 13 | ||||||
|          41(tex):     40(ptr) Variable UniformConstant |         21(samp):     20(ptr) Variable UniformConstant | ||||||
|               44:             TypeSampledImage 39 |           25(S2):             TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1) | ||||||
|               46:             TypeVector 6(float) 2 |               31:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               47:    6(float) Constant 1056964608 |               32:             TypePointer UniformConstant 31 | ||||||
|               48:   46(fvec2) ConstantComposite 47 47 |          33(tex):     32(ptr) Variable UniformConstant | ||||||
|               53:             TypePointer Input 7(fvec4) |               37:             TypeSampledImage 31 | ||||||
|         54(vpos):     53(ptr) Variable Input |               39:             TypeVector 6(float) 2 | ||||||
|               56:             TypePointer Output 7(fvec4) |               40:    6(float) Constant 1056964608 | ||||||
| 57(@entryPointOutput):     56(ptr) Variable Output |               41:   39(fvec2) ConstantComposite 40 40 | ||||||
|  |               46:             TypePointer Input 7(fvec4) | ||||||
|  |         47(vpos):     46(ptr) Variable Input | ||||||
|  |               49:             TypePointer Output 7(fvec4) | ||||||
|  | 50(@entryPointOutput):     49(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               74:          13 Load 17(samp) |               57:          13 Load 21(samp) | ||||||
|               81:          39 Load 41(tex) |               61:          31 Load 33(tex) | ||||||
|               83:          44 SampledImage 81 74 |               64:          37 SampledImage 61 57 | ||||||
|               84:    7(fvec4) ImageSampleImplicitLod 83 48 |               65:    7(fvec4) ImageSampleImplicitLod 64 41 | ||||||
|                               Store 57(@entryPointOutput) 84 |                               Store 50(@entryPointOutput) 65 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -2,36 +2,48 @@ hlsl.flattenSubset2.frag | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 44 | // Id's are bound by 53 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 40 43 |                               EntryPoint Fragment 4  "main" 49 52 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 31  "someTex" |                               Name 14  "Nested" | ||||||
|                               Name 40  "vpos" |                               MemberName 14(Nested) 0  "y" | ||||||
|                               Name 43  "@entryPointOutput" |                               MemberName 14(Nested) 1  "texNested" | ||||||
|                               Decorate 31(someTex) DescriptorSet 0 |                               Name 15  "A" | ||||||
|                               Decorate 40(vpos) Location 0 |                               MemberName 15(A) 0  "n" | ||||||
|                               Decorate 43(@entryPointOutput) Location 0 |                               MemberName 15(A) 1  "x" | ||||||
|  |                               Name 25  "B" | ||||||
|  |                               MemberName 25(B) 0  "n" | ||||||
|  |                               MemberName 25(B) 1  "tex" | ||||||
|  |                               Name 36  "someTex" | ||||||
|  |                               Name 49  "vpos" | ||||||
|  |                               Name 52  "@entryPointOutput" | ||||||
|  |                               Decorate 36(someTex) DescriptorSet 0 | ||||||
|  |                               Decorate 49(vpos) Location 0 | ||||||
|  |                               Decorate 52(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
|                7:             TypeVector 6(float) 4 |                7:             TypeVector 6(float) 4 | ||||||
|               17:             TypeImage 6(float) 2D sampled format:Unknown |               13:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               30:             TypePointer UniformConstant 17 |       14(Nested):             TypeStruct 6(float) 13 | ||||||
|      31(someTex):     30(ptr) Variable UniformConstant |            15(A):             TypeStruct 14(Nested) 6(float) | ||||||
|               34:    6(float) Constant 0 |            25(B):             TypeStruct 14(Nested) 13 | ||||||
|               35:    7(fvec4) ConstantComposite 34 34 34 34 |               35:             TypePointer UniformConstant 13 | ||||||
|               39:             TypePointer Input 7(fvec4) |      36(someTex):     35(ptr) Variable UniformConstant | ||||||
|         40(vpos):     39(ptr) Variable Input |               43:    6(float) Constant 0 | ||||||
|               42:             TypePointer Output 7(fvec4) |               44:    7(fvec4) ConstantComposite 43 43 43 43 | ||||||
| 43(@entryPointOutput):     42(ptr) Variable Output |               48:             TypePointer Input 7(fvec4) | ||||||
|  |         49(vpos):     48(ptr) Variable Input | ||||||
|  |               51:             TypePointer Output 7(fvec4) | ||||||
|  | 52(@entryPointOutput):     51(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|                               Store 43(@entryPointOutput) 35 |                               Store 52(@entryPointOutput) 44 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -2,90 +2,108 @@ hlsl.partialFlattenLocal.vert | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 148 | // Id's are bound by 132 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 90 93 |                               EntryPoint Vertex 4  "main" 83 86 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 17  "tex" |                               Name 22  "Packed" | ||||||
|                               Name 90  "pos" |                               MemberName 22(Packed) 0  "tex" | ||||||
|                               Name 93  "@entryPointOutput" |                               MemberName 22(Packed) 1  "pos" | ||||||
|                               Decorate 17(tex) DescriptorSet 0 |                               MemberName 22(Packed) 2  "uv" | ||||||
|                               Decorate 90(pos) Location 0 |                               MemberName 22(Packed) 3  "x" | ||||||
|                               Decorate 93(@entryPointOutput) BuiltIn Position |                               MemberName 22(Packed) 4  "n" | ||||||
|  |                               Name 27  "tex" | ||||||
|  |                               Name 83  "pos" | ||||||
|  |                               Name 86  "@entryPointOutput" | ||||||
|  |                               Decorate 27(tex) DescriptorSet 0 | ||||||
|  |                               Decorate 83(pos) Location 0 | ||||||
|  |                               Decorate 86(@entryPointOutput) BuiltIn Position | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
|                7:             TypeVector 6(float) 4 |                7:             TypeVector 6(float) 4 | ||||||
|               13:             TypeImage 6(float) 2D sampled format:Unknown |               13:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               16:             TypePointer UniformConstant 13 |               14:             TypeVector 6(float) 3 | ||||||
|          17(tex):     16(ptr) Variable UniformConstant |               15:             TypeInt 32 0 | ||||||
|               19:             TypeVector 6(float) 3 |               16:     15(int) Constant 3 | ||||||
|               20:             TypeInt 32 0 |               17:             TypeArray 14(fvec3) 16 | ||||||
|               21:     20(int) Constant 3 |               18:             TypeVector 6(float) 2 | ||||||
|               22:             TypeArray 19(fvec3) 21 |               19:     15(int) Constant 2 | ||||||
|               23:             TypePointer Function 22 |               20:             TypeArray 18(fvec2) 19 | ||||||
|               25:             TypeInt 32 1 |               21:             TypeInt 32 1 | ||||||
|               26:     25(int) Constant 0 |       22(Packed):             TypeStruct 13 17 20 6(float) 21(int) | ||||||
|               27:    6(float) Constant 0 |               23:             TypePointer Function 22(Packed) | ||||||
|               28:   19(fvec3) ConstantComposite 27 27 27 |               25:     21(int) Constant 0 | ||||||
|               29:             TypePointer Function 19(fvec3) |               26:             TypePointer UniformConstant 13 | ||||||
|               31:             TypeVector 6(float) 2 |          27(tex):     26(ptr) Variable UniformConstant | ||||||
|               32:     20(int) Constant 2 |               29:             TypePointer Function 13 | ||||||
|               33:             TypeArray 31(fvec2) 32 |               31:     21(int) Constant 1 | ||||||
|               34:             TypePointer Function 33 |               32:    6(float) Constant 0 | ||||||
|               36:    6(float) Constant 1065353216 |               33:   14(fvec3) ConstantComposite 32 32 32 | ||||||
|               37:   31(fvec2) ConstantComposite 27 36 |               34:             TypePointer Function 14(fvec3) | ||||||
|               38:             TypePointer Function 31(fvec2) |               36:     21(int) Constant 2 | ||||||
|               52:     25(int) Constant 1 |               37:    6(float) Constant 1065353216 | ||||||
|               53:             TypeBool |               38:   18(fvec2) ConstantComposite 32 37 | ||||||
|               89:             TypePointer Input 7(fvec4) |               39:             TypePointer Function 18(fvec2) | ||||||
|          90(pos):     89(ptr) Variable Input |               41:     21(int) Constant 3 | ||||||
|               92:             TypePointer Output 7(fvec4) |               42:             TypePointer Function 6(float) | ||||||
| 93(@entryPointOutput):     92(ptr) Variable Output |               44:     21(int) Constant 4 | ||||||
|  |               45:             TypePointer Function 21(int) | ||||||
|  |               54:             TypeBool | ||||||
|  |               82:             TypePointer Input 7(fvec4) | ||||||
|  |          83(pos):     82(ptr) Variable Input | ||||||
|  |               85:             TypePointer Output 7(fvec4) | ||||||
|  | 86(@entryPointOutput):     85(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               98:     23(ptr) Variable Function |               90:     23(ptr) Variable Function | ||||||
|               99:     34(ptr) Variable Function |               84:    7(fvec4) Load 83(pos) | ||||||
|               91:    7(fvec4) Load 90(pos) |               94:          13 Load 27(tex) | ||||||
|              110:     29(ptr) AccessChain 98 26 |               95:     29(ptr) AccessChain 90 25 | ||||||
|                               Store 110 28 |                               Store 95 94 | ||||||
|              111:     38(ptr) AccessChain 99 26 |               96:     34(ptr) AccessChain 90 31 25 | ||||||
|                               Store 111 37 |                               Store 96 33 | ||||||
|                               Branch 112 |               97:     39(ptr) AccessChain 90 36 25 | ||||||
|              112:             Label |                               Store 97 38 | ||||||
|              147:     25(int) Phi 26 5 131 114 |               98:     42(ptr) AccessChain 90 41 | ||||||
|                               LoopMerge 113 114 None |                               Store 98 37 | ||||||
|                               Branch 115 |               99:     45(ptr) AccessChain 90 44 | ||||||
|              115:             Label |                               Store 99 41 | ||||||
|              117:    53(bool) SLessThan 147 52 |                               Branch 100 | ||||||
|                               BranchConditional 117 118 113 |              100:             Label | ||||||
|              118:               Label |              131:     21(int) Phi 25 5 119 102 | ||||||
|              121:     38(ptr)   AccessChain 99 147 |                               LoopMerge 101 102 None | ||||||
|              122:   31(fvec2)   Load 121 |                               Branch 103 | ||||||
|              123:     29(ptr)   AccessChain 98 147 |              103:             Label | ||||||
|              124:   19(fvec3)   Load 123 |              105:    54(bool) SLessThan 131 31 | ||||||
|              125:   31(fvec2)   VectorShuffle 124 124 0 1 |                               BranchConditional 105 106 101 | ||||||
|              126:   31(fvec2)   FAdd 125 122 |              106:               Label | ||||||
|              127:     29(ptr)   AccessChain 98 147 |              109:     39(ptr)   AccessChain 90 36 131 | ||||||
|              128:   19(fvec3)   Load 127 |              110:   18(fvec2)   Load 109 | ||||||
|              129:   19(fvec3)   VectorShuffle 128 126 3 4 2 |              111:     34(ptr)   AccessChain 90 31 131 | ||||||
|                                 Store 127 129 |              112:   14(fvec3)   Load 111 | ||||||
|                                 Branch 114 |              113:   18(fvec2)   VectorShuffle 112 112 0 1 | ||||||
|              114:               Label |              114:   18(fvec2)   FAdd 113 110 | ||||||
|              131:     25(int)   IAdd 147 52 |              115:     34(ptr)   AccessChain 90 31 131 | ||||||
|                                 Branch 112 |              116:   14(fvec3)   Load 115 | ||||||
|              113:             Label |              117:   14(fvec3)   VectorShuffle 116 114 3 4 2 | ||||||
|              133:          22 Load 98 |                                 Store 115 117 | ||||||
|              146:   19(fvec3) CompositeExtract 133 0 |                                 Branch 102 | ||||||
|              140:    6(float) CompositeExtract 146 0 |              102:               Label | ||||||
|              141:    6(float) CompositeExtract 146 1 |              119:     21(int)   IAdd 131 31 | ||||||
|              142:    6(float) CompositeExtract 146 2 |                                 Branch 100 | ||||||
|              143:    7(fvec4) CompositeConstruct 140 141 142 27 |              101:             Label | ||||||
|              144:    7(fvec4) FAdd 91 143 |              120:  22(Packed) Load 90 | ||||||
|                               Store 93(@entryPointOutput) 144 |              130:   14(fvec3) CompositeExtract 120 1 0 | ||||||
|  |              124:    6(float) CompositeExtract 130 0 | ||||||
|  |              125:    6(float) CompositeExtract 130 1 | ||||||
|  |              126:    6(float) CompositeExtract 130 2 | ||||||
|  |              127:    7(fvec4) CompositeConstruct 124 125 126 32 | ||||||
|  |              128:    7(fvec4) FAdd 84 127 | ||||||
|  |                               Store 86(@entryPointOutput) 128 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -2,37 +2,43 @@ hlsl.partialFlattenMixed.vert | |||||||
| WARNING: AST will form illegal SPIR-V; need to transform to legalize | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 31 | // Id's are bound by 36 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 27 30 |                               EntryPoint Vertex 4  "main" 32 35 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 20  "tex" |                               Name 18  "Packed" | ||||||
|                               Name 27  "pos" |                               MemberName 18(Packed) 0  "a" | ||||||
|                               Name 30  "@entryPointOutput" |                               MemberName 18(Packed) 1  "membTex" | ||||||
|                               Decorate 20(tex) DescriptorSet 0 |                               MemberName 18(Packed) 2  "b" | ||||||
|                               Decorate 27(pos) Location 0 |                               Name 23  "tex" | ||||||
|                               Decorate 30(@entryPointOutput) BuiltIn Position |                               Name 32  "pos" | ||||||
|  |                               Name 35  "@entryPointOutput" | ||||||
|  |                               Decorate 23(tex) DescriptorSet 0 | ||||||
|  |                               Decorate 32(pos) Location 0 | ||||||
|  |                               Decorate 35(@entryPointOutput) BuiltIn Position | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
|                7:             TypeVector 6(float) 4 |                7:             TypeVector 6(float) 4 | ||||||
|               13:             TypeImage 6(float) 2D sampled format:Unknown |               13:             TypeInt 32 1 | ||||||
|               14:             TypeInt 32 0 |               14:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               15:     14(int) Constant 2 |               15:             TypeInt 32 0 | ||||||
|               16:             TypeArray 13 15 |               16:     15(int) Constant 2 | ||||||
|               19:             TypePointer UniformConstant 16 |               17:             TypeArray 14 16 | ||||||
|          20(tex):     19(ptr) Variable UniformConstant |       18(Packed):             TypeStruct 13(int) 17 13(int) | ||||||
|               26:             TypePointer Input 7(fvec4) |               22:             TypePointer UniformConstant 17 | ||||||
|          27(pos):     26(ptr) Variable Input |          23(tex):     22(ptr) Variable UniformConstant | ||||||
|               29:             TypePointer Output 7(fvec4) |               31:             TypePointer Input 7(fvec4) | ||||||
| 30(@entryPointOutput):     29(ptr) Variable Output |          32(pos):     31(ptr) Variable Input | ||||||
|  |               34:             TypePointer Output 7(fvec4) | ||||||
|  | 35(@entryPointOutput):     34(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               28:    7(fvec4) Load 27(pos) |               33:    7(fvec4) Load 32(pos) | ||||||
|                               Store 30(@entryPointOutput) 28 |                               Store 35(@entryPointOutput) 33 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -5,17 +5,24 @@ gl_FragCoord origin is upper left | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:12  Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | 0:12  Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | ||||||
| 0:12    Function Parameters:  | 0:12    Function Parameters:  | ||||||
| 0:?       's.ss' ( in sampler) | 0:12      's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
| 0:?       's.a' ( in float) |  | ||||||
| 0:?       's.tex' ( in texture2D) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:13      Branch: Return with expression | 0:13      Branch: Return with expression | ||||||
| 0:13        vector-scale ( temp 4-component vector of float) | 0:13        vector-scale ( temp 4-component vector of float) | ||||||
| 0:?           's.a' ( in float) | 0:13          a: direct index for structure ( temp float) | ||||||
|  | 0:13            's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:13            Constant: | ||||||
|  | 0:13              1 (const int) | ||||||
| 0:13          texture ( temp 4-component vector of float) | 0:13          texture ( temp 4-component vector of float) | ||||||
| 0:13            Construct combined texture-sampler ( temp sampler2D) | 0:13            Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?               's.tex' ( in texture2D) | 0:13              tex: direct index for structure ( temp texture2D) | ||||||
| 0:?               's.ss' ( in sampler) | 0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:13                Constant: | ||||||
|  | 0:13                  2 (const int) | ||||||
|  | 0:13              ss: direct index for structure ( temp sampler) | ||||||
|  | 0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:13                Constant: | ||||||
|  | 0:13                  0 (const int) | ||||||
| 0:?             Constant: | 0:?             Constant: | ||||||
| 0:?               0.200000 | 0:?               0.200000 | ||||||
| 0:?               0.300000 | 0:?               0.300000 | ||||||
| @ -23,23 +30,33 @@ gl_FragCoord origin is upper left | |||||||
| 0:17    Function Parameters:  | 0:17    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:19      move second child to first child ( temp sampler) | 0:19      move second child to first child ( temp sampler) | ||||||
| 0:?         'os.ss' ( temp sampler) | 0:19        ss: direct index for structure ( temp sampler) | ||||||
|  | 0:19          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:19          Constant: | ||||||
|  | 0:19            0 (const int) | ||||||
| 0:19        'gss2' ( uniform sampler) | 0:19        'gss2' ( uniform sampler) | ||||||
| 0:20      move second child to first child ( temp sampler) | 0:20      move second child to first child ( temp sampler) | ||||||
| 0:?         'os.ss' ( temp sampler) | 0:20        ss: direct index for structure ( temp sampler) | ||||||
|  | 0:20          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:20          Constant: | ||||||
|  | 0:20            0 (const int) | ||||||
| 0:20        'gss' ( uniform sampler) | 0:20        'gss' ( uniform sampler) | ||||||
| 0:21      move second child to first child ( temp texture2D) | 0:21      move second child to first child ( temp texture2D) | ||||||
| 0:?         'os.tex' ( temp texture2D) | 0:21        tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:21          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:21          Constant: | ||||||
|  | 0:21            2 (const int) | ||||||
| 0:21        'gtex' ( uniform texture2D) | 0:21        'gtex' ( uniform texture2D) | ||||||
| 0:22      move second child to first child ( temp float) | 0:22      move second child to first child ( temp float) | ||||||
| 0:?         'os.a' ( temp float) | 0:22        a: direct index for structure ( temp float) | ||||||
|  | 0:22          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:22          Constant: | ||||||
|  | 0:22            1 (const int) | ||||||
| 0:22        Constant: | 0:22        Constant: | ||||||
| 0:22          3.000000 | 0:22          3.000000 | ||||||
| 0:28      Branch: Return with expression | 0:28      Branch: Return with expression | ||||||
| 0:28        Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | 0:28        Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | ||||||
| 0:?           'os.ss' ( temp sampler) | 0:28          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
| 0:?           'os.a' ( temp float) |  | ||||||
| 0:?           'os.tex' ( temp texture2D) |  | ||||||
| 0:17  Function Definition: main( ( temp void) | 0:17  Function Definition: main( ( temp void) | ||||||
| 0:17    Function Parameters:  | 0:17    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| @ -61,17 +78,24 @@ gl_FragCoord origin is upper left | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:12  Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | 0:12  Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | ||||||
| 0:12    Function Parameters:  | 0:12    Function Parameters:  | ||||||
| 0:?       's.ss' ( in sampler) | 0:12      's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
| 0:?       's.a' ( in float) |  | ||||||
| 0:?       's.tex' ( in texture2D) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:13      Branch: Return with expression | 0:13      Branch: Return with expression | ||||||
| 0:13        vector-scale ( temp 4-component vector of float) | 0:13        vector-scale ( temp 4-component vector of float) | ||||||
| 0:?           's.a' ( in float) | 0:13          a: direct index for structure ( temp float) | ||||||
|  | 0:13            's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:13            Constant: | ||||||
|  | 0:13              1 (const int) | ||||||
| 0:13          texture ( temp 4-component vector of float) | 0:13          texture ( temp 4-component vector of float) | ||||||
| 0:13            Construct combined texture-sampler ( temp sampler2D) | 0:13            Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?               's.tex' ( in texture2D) | 0:13              tex: direct index for structure ( temp texture2D) | ||||||
| 0:?               's.ss' ( in sampler) | 0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:13                Constant: | ||||||
|  | 0:13                  2 (const int) | ||||||
|  | 0:13              ss: direct index for structure ( temp sampler) | ||||||
|  | 0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:13                Constant: | ||||||
|  | 0:13                  0 (const int) | ||||||
| 0:?             Constant: | 0:?             Constant: | ||||||
| 0:?               0.200000 | 0:?               0.200000 | ||||||
| 0:?               0.300000 | 0:?               0.300000 | ||||||
| @ -79,23 +103,33 @@ gl_FragCoord origin is upper left | |||||||
| 0:17    Function Parameters:  | 0:17    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:19      move second child to first child ( temp sampler) | 0:19      move second child to first child ( temp sampler) | ||||||
| 0:?         'os.ss' ( temp sampler) | 0:19        ss: direct index for structure ( temp sampler) | ||||||
|  | 0:19          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:19          Constant: | ||||||
|  | 0:19            0 (const int) | ||||||
| 0:19        'gss2' ( uniform sampler) | 0:19        'gss2' ( uniform sampler) | ||||||
| 0:20      move second child to first child ( temp sampler) | 0:20      move second child to first child ( temp sampler) | ||||||
| 0:?         'os.ss' ( temp sampler) | 0:20        ss: direct index for structure ( temp sampler) | ||||||
|  | 0:20          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:20          Constant: | ||||||
|  | 0:20            0 (const int) | ||||||
| 0:20        'gss' ( uniform sampler) | 0:20        'gss' ( uniform sampler) | ||||||
| 0:21      move second child to first child ( temp texture2D) | 0:21      move second child to first child ( temp texture2D) | ||||||
| 0:?         'os.tex' ( temp texture2D) | 0:21        tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:21          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:21          Constant: | ||||||
|  | 0:21            2 (const int) | ||||||
| 0:21        'gtex' ( uniform texture2D) | 0:21        'gtex' ( uniform texture2D) | ||||||
| 0:22      move second child to first child ( temp float) | 0:22      move second child to first child ( temp float) | ||||||
| 0:?         'os.a' ( temp float) | 0:22        a: direct index for structure ( temp float) | ||||||
|  | 0:22          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
|  | 0:22          Constant: | ||||||
|  | 0:22            1 (const int) | ||||||
| 0:22        Constant: | 0:22        Constant: | ||||||
| 0:22          3.000000 | 0:22          3.000000 | ||||||
| 0:28      Branch: Return with expression | 0:28      Branch: Return with expression | ||||||
| 0:28        Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | 0:28        Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) | ||||||
| 0:?           'os.ss' ( temp sampler) | 0:28          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex}) | ||||||
| 0:?           'os.a' ( temp float) |  | ||||||
| 0:?           'os.tex' ( temp texture2D) |  | ||||||
| 0:17  Function Definition: main( ( temp void) | 0:17  Function Definition: main( ( temp void) | ||||||
| 0:17    Function Parameters:  | 0:17    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| @ -110,98 +144,99 @@ gl_FragCoord origin is upper left | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 59 | // Id's are bound by 64 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 57 |                               EntryPoint Fragment 4  "main" 62 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 17  "osCall(struct-OS-p1-f1-t211;" |                               Name 9  "OS" | ||||||
|                               Name 14  "s.ss" |                               MemberName 9(OS) 0  "ss" | ||||||
|                               Name 15  "s.a" |                               MemberName 9(OS) 1  "a" | ||||||
|                               Name 16  "s.tex" |                               MemberName 9(OS) 2  "tex" | ||||||
|                               Name 20  "@main(" |                               Name 14  "osCall(struct-OS-p1-f1-t211;" | ||||||
|                               Name 35  "os.ss" |                               Name 13  "s" | ||||||
|                               Name 37  "gss2" |                               Name 17  "@main(" | ||||||
|                               Name 39  "gss" |                               Name 42  "os" | ||||||
|                               Name 41  "os.tex" |                               Name 44  "gss2" | ||||||
|                               Name 43  "gtex" |                               Name 47  "gss" | ||||||
|                               Name 45  "os.a" |                               Name 51  "gtex" | ||||||
|                               Name 47  "param" |                               Name 56  "param" | ||||||
|                               Name 49  "param" |                               Name 62  "@entryPointOutput" | ||||||
|                               Name 51  "param" |                               Decorate 44(gss2) DescriptorSet 0 | ||||||
|                               Name 57  "@entryPointOutput" |                               Decorate 47(gss) DescriptorSet 0 | ||||||
|                               Decorate 37(gss2) DescriptorSet 0 |                               Decorate 51(gtex) DescriptorSet 0 | ||||||
|                               Decorate 39(gss) DescriptorSet 0 |                               Decorate 62(@entryPointOutput) Location 0 | ||||||
|                               Decorate 43(gtex) DescriptorSet 0 |  | ||||||
|                               Decorate 57(@entryPointOutput) Location 0 |  | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                7:             TypePointer Function 6 |                7:             TypeFloat 32 | ||||||
|                8:             TypeFloat 32 |                8:             TypeImage 7(float) 2D sampled format:Unknown | ||||||
|                9:             TypePointer Function 8(float) |            9(OS):             TypeStruct 6 7(float) 8 | ||||||
|               10:             TypeImage 8(float) 2D sampled format:Unknown |               10:             TypePointer Function 9(OS) | ||||||
|               11:             TypePointer Function 10 |               11:             TypeVector 7(float) 4 | ||||||
|               12:             TypeVector 8(float) 4 |               12:             TypeFunction 11(fvec4) 10(ptr) | ||||||
|               13:             TypeFunction 12(fvec4) 7(ptr) 9(ptr) 11(ptr) |               16:             TypeFunction 11(fvec4) | ||||||
|               19:             TypeFunction 12(fvec4) |               19:             TypeInt 32 1 | ||||||
|               25:             TypeSampledImage 10 |               20:     19(int) Constant 1 | ||||||
|               27:             TypeVector 8(float) 2 |               21:             TypePointer Function 7(float) | ||||||
|               28:    8(float) Constant 1045220557 |               24:     19(int) Constant 2 | ||||||
|               29:    8(float) Constant 1050253722 |               25:             TypePointer Function 8 | ||||||
|               30:   27(fvec2) ConstantComposite 28 29 |               28:     19(int) Constant 0 | ||||||
|               36:             TypePointer UniformConstant 6 |               29:             TypePointer Function 6 | ||||||
|         37(gss2):     36(ptr) Variable UniformConstant |               32:             TypeSampledImage 8 | ||||||
|          39(gss):     36(ptr) Variable UniformConstant |               34:             TypeVector 7(float) 2 | ||||||
|               42:             TypePointer UniformConstant 10 |               35:    7(float) Constant 1045220557 | ||||||
|         43(gtex):     42(ptr) Variable UniformConstant |               36:    7(float) Constant 1050253722 | ||||||
|               46:    8(float) Constant 1077936128 |               37:   34(fvec2) ConstantComposite 35 36 | ||||||
|               56:             TypePointer Output 12(fvec4) |               43:             TypePointer UniformConstant 6 | ||||||
| 57(@entryPointOutput):     56(ptr) Variable Output |         44(gss2):     43(ptr) Variable UniformConstant | ||||||
|  |          47(gss):     43(ptr) Variable UniformConstant | ||||||
|  |               50:             TypePointer UniformConstant 8 | ||||||
|  |         51(gtex):     50(ptr) Variable UniformConstant | ||||||
|  |               54:    7(float) Constant 1077936128 | ||||||
|  |               61:             TypePointer Output 11(fvec4) | ||||||
|  | 62(@entryPointOutput):     61(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               58:   12(fvec4) FunctionCall 20(@main() |               63:   11(fvec4) FunctionCall 17(@main() | ||||||
|                               Store 57(@entryPointOutput) 58 |                               Store 62(@entryPointOutput) 63 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 17(osCall(struct-OS-p1-f1-t211;):   12(fvec4) Function None 13 | 14(osCall(struct-OS-p1-f1-t211;):   11(fvec4) Function None 12 | ||||||
|         14(s.ss):      7(ptr) FunctionParameter |            13(s):     10(ptr) FunctionParameter | ||||||
|          15(s.a):      9(ptr) FunctionParameter |               15:             Label | ||||||
|        16(s.tex):     11(ptr) FunctionParameter |               22:     21(ptr) AccessChain 13(s) 20 | ||||||
|  |               23:    7(float) Load 22 | ||||||
|  |               26:     25(ptr) AccessChain 13(s) 24 | ||||||
|  |               27:           8 Load 26 | ||||||
|  |               30:     29(ptr) AccessChain 13(s) 28 | ||||||
|  |               31:           6 Load 30 | ||||||
|  |               33:          32 SampledImage 27 31 | ||||||
|  |               38:   11(fvec4) ImageSampleImplicitLod 33 37 | ||||||
|  |               39:   11(fvec4) VectorTimesScalar 38 23 | ||||||
|  |                               ReturnValue 39 | ||||||
|  |                               FunctionEnd | ||||||
|  |       17(@main():   11(fvec4) Function None 16 | ||||||
|               18:             Label |               18:             Label | ||||||
|               22:    8(float) Load 15(s.a) |           42(os):     10(ptr) Variable Function | ||||||
|               23:          10 Load 16(s.tex) |        56(param):     10(ptr) Variable Function | ||||||
|               24:           6 Load 14(s.ss) |               45:           6 Load 44(gss2) | ||||||
|               26:          25 SampledImage 23 24 |               46:     29(ptr) AccessChain 42(os) 28 | ||||||
|               31:   12(fvec4) ImageSampleImplicitLod 26 30 |                               Store 46 45 | ||||||
|               32:   12(fvec4) VectorTimesScalar 31 22 |               48:           6 Load 47(gss) | ||||||
|                               ReturnValue 32 |               49:     29(ptr) AccessChain 42(os) 28 | ||||||
|                               FunctionEnd |                               Store 49 48 | ||||||
|       20(@main():   12(fvec4) Function None 19 |               52:           8 Load 51(gtex) | ||||||
|               21:             Label |               53:     25(ptr) AccessChain 42(os) 24 | ||||||
|        35(os.ss):      7(ptr) Variable Function |                               Store 53 52 | ||||||
|       41(os.tex):     11(ptr) Variable Function |               55:     21(ptr) AccessChain 42(os) 20 | ||||||
|         45(os.a):      9(ptr) Variable Function |                               Store 55 54 | ||||||
|        47(param):      7(ptr) Variable Function |               57:       9(OS) Load 42(os) | ||||||
|        49(param):      9(ptr) Variable Function |                               Store 56(param) 57 | ||||||
|        51(param):     11(ptr) Variable Function |               58:   11(fvec4) FunctionCall 14(osCall(struct-OS-p1-f1-t211;) 56(param) | ||||||
|               38:           6 Load 37(gss2) |                               ReturnValue 58 | ||||||
|                               Store 35(os.ss) 38 |  | ||||||
|               40:           6 Load 39(gss) |  | ||||||
|                               Store 35(os.ss) 40 |  | ||||||
|               44:          10 Load 43(gtex) |  | ||||||
|                               Store 41(os.tex) 44 |  | ||||||
|                               Store 45(os.a) 46 |  | ||||||
|               48:           6 Load 35(os.ss) |  | ||||||
|                               Store 47(param) 48 |  | ||||||
|               50:    8(float) Load 45(os.a) |  | ||||||
|                               Store 49(param) 50 |  | ||||||
|               52:          10 Load 41(os.tex) |  | ||||||
|                               Store 51(param) 52 |  | ||||||
|               53:   12(fvec4) FunctionCall 17(osCall(struct-OS-p1-f1-t211;) 47(param) 49(param) 51(param) |  | ||||||
|                               ReturnValue 53 |  | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -1,54 +1,71 @@ | |||||||
| hlsl.flattenOpaque.frag | hlsl.flattenOpaque.frag | ||||||
|  | WARNING: AST will form illegal SPIR-V; need to transform to legalize | ||||||
| Shader version: 500 | Shader version: 500 | ||||||
| gl_FragCoord origin is upper left | gl_FragCoord origin is upper left | ||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:15  Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) | 0:15  Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) | ||||||
| 0:15    Function Parameters:  | 0:15    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:15      's' ( in structure{ temp sampler s2D}) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:16      Branch: Return with expression | 0:16      Branch: Return with expression | ||||||
| 0:16        texture ( temp 4-component vector of float) | 0:16        texture ( temp 4-component vector of float) | ||||||
| 0:16          Construct combined texture-sampler ( temp sampler2D) | 0:16          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:16            'tex' ( uniform texture2D) | 0:16            'tex' ( uniform texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:16            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:16              's' ( in structure{ temp sampler s2D}) | ||||||
|  | 0:16              Constant: | ||||||
|  | 0:16                0 (const int) | ||||||
| 0:?           Constant: | 0:?           Constant: | ||||||
| 0:?             0.200000 | 0:?             0.200000 | ||||||
| 0:?             0.300000 | 0:?             0.300000 | ||||||
| 0:20  Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | 0:20  Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | ||||||
| 0:20    Function Parameters:  | 0:20    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:20      's' ( in structure{ temp sampler s2D}) | ||||||
| 0:20      'f2' ( in 2-component vector of float) | 0:20      'f2' ( in 2-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:21      Branch: Return with expression | 0:21      Branch: Return with expression | ||||||
| 0:21        texture ( temp 4-component vector of float) | 0:21        texture ( temp 4-component vector of float) | ||||||
| 0:21          Construct combined texture-sampler ( temp sampler2D) | 0:21          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:21            'tex' ( uniform texture2D) | 0:21            'tex' ( uniform texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:21            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:21              's' ( in structure{ temp sampler s2D}) | ||||||
|  | 0:21              Constant: | ||||||
|  | 0:21                0 (const int) | ||||||
| 0:21          'f2' ( in 2-component vector of float) | 0:21          'f2' ( in 2-component vector of float) | ||||||
| 0:25  Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | 0:25  Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:25    Function Parameters:  | 0:25    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:25      's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:?       's.tex' ( in texture2D) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:26      Branch: Return with expression | 0:26      Branch: Return with expression | ||||||
| 0:26        texture ( temp 4-component vector of float) | 0:26        texture ( temp 4-component vector of float) | ||||||
| 0:26          Construct combined texture-sampler ( temp sampler2D) | 0:26          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             's.tex' ( in texture2D) | 0:26            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:26              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:26              Constant: | ||||||
|  | 0:26                1 (const int) | ||||||
|  | 0:26            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:26              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:26              Constant: | ||||||
|  | 0:26                0 (const int) | ||||||
| 0:?           Constant: | 0:?           Constant: | ||||||
| 0:?             0.200000 | 0:?             0.200000 | ||||||
| 0:?             0.300000 | 0:?             0.300000 | ||||||
| 0:30  Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | 0:30  Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | ||||||
| 0:30    Function Parameters:  | 0:30    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:30      's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:?       's.tex' ( in texture2D) |  | ||||||
| 0:30      'f2' ( in 2-component vector of float) | 0:30      'f2' ( in 2-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:31      Branch: Return with expression | 0:31      Branch: Return with expression | ||||||
| 0:31        texture ( temp 4-component vector of float) | 0:31        texture ( temp 4-component vector of float) | ||||||
| 0:31          Construct combined texture-sampler ( temp sampler2D) | 0:31          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             's.tex' ( in texture2D) | 0:31            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:31              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:31              Constant: | ||||||
|  | 0:31                1 (const int) | ||||||
|  | 0:31            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:31              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:31              Constant: | ||||||
|  | 0:31                0 (const int) | ||||||
| 0:31          'f2' ( in 2-component vector of float) | 0:31          'f2' ( in 2-component vector of float) | ||||||
| 0:35  Function Definition: @main( ( temp 4-component vector of float) | 0:35  Function Definition: @main( ( temp 4-component vector of float) | ||||||
| 0:35    Function Parameters:  | 0:35    Function Parameters:  | ||||||
| @ -58,18 +75,60 @@ gl_FragCoord origin is upper left | |||||||
| 0:37          add ( temp 4-component vector of float) | 0:37          add ( temp 4-component vector of float) | ||||||
| 0:36            add ( temp 4-component vector of float) | 0:36            add ( temp 4-component vector of float) | ||||||
| 0:36              Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) | 0:36              Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) | ||||||
|  | 0:36                Comma ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:36                  Sequence | ||||||
|  | 0:36                    move second child to first child ( temp sampler) | ||||||
|  | 0:36                      s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:36                        'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:36                        Constant: | ||||||
|  | 0:36                          0 (const int) | ||||||
| 0:?                       's.s2D' ( uniform sampler) | 0:?                       's.s2D' ( uniform sampler) | ||||||
|  | 0:36                  'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
| 0:37              Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | 0:37              Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | ||||||
|  | 0:37                Comma ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:37                  Sequence | ||||||
|  | 0:37                    move second child to first child ( temp sampler) | ||||||
|  | 0:37                      s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:37                        'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:37                        Constant: | ||||||
|  | 0:37                          0 (const int) | ||||||
| 0:?                       's.s2D' ( uniform sampler) | 0:?                       's.s2D' ( uniform sampler) | ||||||
|  | 0:37                  'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
| 0:?                 Constant: | 0:?                 Constant: | ||||||
| 0:?                   0.200000 | 0:?                   0.200000 | ||||||
| 0:?                   0.300000 | 0:?                   0.300000 | ||||||
| 0:38            Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | 0:38            Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | ||||||
|  | 0:38              Comma ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:38                Sequence | ||||||
|  | 0:38                  move second child to first child ( temp sampler) | ||||||
|  | 0:38                    s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:38                      'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:38                      Constant: | ||||||
|  | 0:38                        0 (const int) | ||||||
| 0:?                     's2.s2D' ( uniform sampler) | 0:?                     's2.s2D' ( uniform sampler) | ||||||
|  | 0:38                  move second child to first child ( temp texture2D) | ||||||
|  | 0:38                    tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:38                      'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:38                      Constant: | ||||||
|  | 0:38                        1 (const int) | ||||||
| 0:?                     's2.tex' ( uniform texture2D) | 0:?                     's2.tex' ( uniform texture2D) | ||||||
|  | 0:38                'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:39          Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | 0:39          Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | ||||||
|  | 0:39            Comma ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:39              Sequence | ||||||
|  | 0:39                move second child to first child ( temp sampler) | ||||||
|  | 0:39                  s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:39                    'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:39                    Constant: | ||||||
|  | 0:39                      0 (const int) | ||||||
| 0:?                   's2.s2D' ( uniform sampler) | 0:?                   's2.s2D' ( uniform sampler) | ||||||
|  | 0:39                move second child to first child ( temp texture2D) | ||||||
|  | 0:39                  tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:39                    'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:39                    Constant: | ||||||
|  | 0:39                      1 (const int) | ||||||
| 0:?                   's2.tex' ( uniform texture2D) | 0:?                   's2.tex' ( uniform texture2D) | ||||||
|  | 0:39              'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:?             Constant: | 0:?             Constant: | ||||||
| 0:?               0.200000 | 0:?               0.200000 | ||||||
| 0:?               0.300000 | 0:?               0.300000 | ||||||
| @ -95,51 +154,67 @@ gl_FragCoord origin is upper left | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:15  Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) | 0:15  Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) | ||||||
| 0:15    Function Parameters:  | 0:15    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:15      's' ( in structure{ temp sampler s2D}) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:16      Branch: Return with expression | 0:16      Branch: Return with expression | ||||||
| 0:16        texture ( temp 4-component vector of float) | 0:16        texture ( temp 4-component vector of float) | ||||||
| 0:16          Construct combined texture-sampler ( temp sampler2D) | 0:16          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:16            'tex' ( uniform texture2D) | 0:16            'tex' ( uniform texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:16            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:16              's' ( in structure{ temp sampler s2D}) | ||||||
|  | 0:16              Constant: | ||||||
|  | 0:16                0 (const int) | ||||||
| 0:?           Constant: | 0:?           Constant: | ||||||
| 0:?             0.200000 | 0:?             0.200000 | ||||||
| 0:?             0.300000 | 0:?             0.300000 | ||||||
| 0:20  Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | 0:20  Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | ||||||
| 0:20    Function Parameters:  | 0:20    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:20      's' ( in structure{ temp sampler s2D}) | ||||||
| 0:20      'f2' ( in 2-component vector of float) | 0:20      'f2' ( in 2-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:21      Branch: Return with expression | 0:21      Branch: Return with expression | ||||||
| 0:21        texture ( temp 4-component vector of float) | 0:21        texture ( temp 4-component vector of float) | ||||||
| 0:21          Construct combined texture-sampler ( temp sampler2D) | 0:21          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:21            'tex' ( uniform texture2D) | 0:21            'tex' ( uniform texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:21            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:21              's' ( in structure{ temp sampler s2D}) | ||||||
|  | 0:21              Constant: | ||||||
|  | 0:21                0 (const int) | ||||||
| 0:21          'f2' ( in 2-component vector of float) | 0:21          'f2' ( in 2-component vector of float) | ||||||
| 0:25  Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | 0:25  Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:25    Function Parameters:  | 0:25    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:25      's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:?       's.tex' ( in texture2D) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:26      Branch: Return with expression | 0:26      Branch: Return with expression | ||||||
| 0:26        texture ( temp 4-component vector of float) | 0:26        texture ( temp 4-component vector of float) | ||||||
| 0:26          Construct combined texture-sampler ( temp sampler2D) | 0:26          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             's.tex' ( in texture2D) | 0:26            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:26              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:26              Constant: | ||||||
|  | 0:26                1 (const int) | ||||||
|  | 0:26            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:26              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:26              Constant: | ||||||
|  | 0:26                0 (const int) | ||||||
| 0:?           Constant: | 0:?           Constant: | ||||||
| 0:?             0.200000 | 0:?             0.200000 | ||||||
| 0:?             0.300000 | 0:?             0.300000 | ||||||
| 0:30  Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | 0:30  Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | ||||||
| 0:30    Function Parameters:  | 0:30    Function Parameters:  | ||||||
| 0:?       's.s2D' ( in sampler) | 0:30      's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:?       's.tex' ( in texture2D) |  | ||||||
| 0:30      'f2' ( in 2-component vector of float) | 0:30      'f2' ( in 2-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:31      Branch: Return with expression | 0:31      Branch: Return with expression | ||||||
| 0:31        texture ( temp 4-component vector of float) | 0:31        texture ( temp 4-component vector of float) | ||||||
| 0:31          Construct combined texture-sampler ( temp sampler2D) | 0:31          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             's.tex' ( in texture2D) | 0:31            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             's.s2D' ( in sampler) | 0:31              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:31              Constant: | ||||||
|  | 0:31                1 (const int) | ||||||
|  | 0:31            s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:31              's' ( in structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:31              Constant: | ||||||
|  | 0:31                0 (const int) | ||||||
| 0:31          'f2' ( in 2-component vector of float) | 0:31          'f2' ( in 2-component vector of float) | ||||||
| 0:35  Function Definition: @main( ( temp 4-component vector of float) | 0:35  Function Definition: @main( ( temp 4-component vector of float) | ||||||
| 0:35    Function Parameters:  | 0:35    Function Parameters:  | ||||||
| @ -149,18 +224,60 @@ gl_FragCoord origin is upper left | |||||||
| 0:37          add ( temp 4-component vector of float) | 0:37          add ( temp 4-component vector of float) | ||||||
| 0:36            add ( temp 4-component vector of float) | 0:36            add ( temp 4-component vector of float) | ||||||
| 0:36              Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) | 0:36              Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) | ||||||
|  | 0:36                Comma ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:36                  Sequence | ||||||
|  | 0:36                    move second child to first child ( temp sampler) | ||||||
|  | 0:36                      s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:36                        'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:36                        Constant: | ||||||
|  | 0:36                          0 (const int) | ||||||
| 0:?                       's.s2D' ( uniform sampler) | 0:?                       's.s2D' ( uniform sampler) | ||||||
|  | 0:36                  'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
| 0:37              Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | 0:37              Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) | ||||||
|  | 0:37                Comma ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:37                  Sequence | ||||||
|  | 0:37                    move second child to first child ( temp sampler) | ||||||
|  | 0:37                      s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:37                        'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
|  | 0:37                        Constant: | ||||||
|  | 0:37                          0 (const int) | ||||||
| 0:?                       's.s2D' ( uniform sampler) | 0:?                       's.s2D' ( uniform sampler) | ||||||
|  | 0:37                  'aggShadow' ( temp structure{ temp sampler s2D}) | ||||||
| 0:?                 Constant: | 0:?                 Constant: | ||||||
| 0:?                   0.200000 | 0:?                   0.200000 | ||||||
| 0:?                   0.300000 | 0:?                   0.300000 | ||||||
| 0:38            Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | 0:38            Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) | ||||||
|  | 0:38              Comma ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:38                Sequence | ||||||
|  | 0:38                  move second child to first child ( temp sampler) | ||||||
|  | 0:38                    s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:38                      'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:38                      Constant: | ||||||
|  | 0:38                        0 (const int) | ||||||
| 0:?                     's2.s2D' ( uniform sampler) | 0:?                     's2.s2D' ( uniform sampler) | ||||||
|  | 0:38                  move second child to first child ( temp texture2D) | ||||||
|  | 0:38                    tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:38                      'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:38                      Constant: | ||||||
|  | 0:38                        1 (const int) | ||||||
| 0:?                     's2.tex' ( uniform texture2D) | 0:?                     's2.tex' ( uniform texture2D) | ||||||
|  | 0:38                'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:39          Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | 0:39          Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) | ||||||
|  | 0:39            Comma ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:39              Sequence | ||||||
|  | 0:39                move second child to first child ( temp sampler) | ||||||
|  | 0:39                  s2D: direct index for structure ( temp sampler) | ||||||
|  | 0:39                    'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:39                    Constant: | ||||||
|  | 0:39                      0 (const int) | ||||||
| 0:?                   's2.s2D' ( uniform sampler) | 0:?                   's2.s2D' ( uniform sampler) | ||||||
|  | 0:39                move second child to first child ( temp texture2D) | ||||||
|  | 0:39                  tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:39                    'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
|  | 0:39                    Constant: | ||||||
|  | 0:39                      1 (const int) | ||||||
| 0:?                   's2.tex' ( uniform texture2D) | 0:?                   's2.tex' ( uniform texture2D) | ||||||
|  | 0:39              'aggShadow' ( temp structure{ temp sampler s2D,  temp texture2D tex}) | ||||||
| 0:?             Constant: | 0:?             Constant: | ||||||
| 0:?               0.200000 | 0:?               0.200000 | ||||||
| 0:?               0.300000 | 0:?               0.300000 | ||||||
| @ -179,151 +296,183 @@ gl_FragCoord origin is upper left | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 99 | // Id's are bound by 122 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 97 |                               EntryPoint Fragment 4  "main" 120 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 12  "osCall1(struct-os-p11;" |                               Name 7  "os" | ||||||
|                               Name 11  "s.s2D" |                               MemberName 7(os) 0  "s2D" | ||||||
|                               Name 19  "osCall2(struct-os-p11;vf2;" |                               Name 13  "osCall1(struct-os-p11;" | ||||||
|                               Name 17  "s.s2D" |                               Name 12  "s" | ||||||
|                               Name 18  "f2" |                               Name 20  "osCall2(struct-os-p11;vf2;" | ||||||
|                               Name 26  "os2Call1(struct-os2-p1-t211;" |                               Name 18  "s" | ||||||
|                               Name 24  "s.s2D" |                               Name 19  "f2" | ||||||
|                               Name 25  "s.tex" |                               Name 23  "os2" | ||||||
|  |                               MemberName 23(os2) 0  "s2D" | ||||||
|  |                               MemberName 23(os2) 1  "tex" | ||||||
|  |                               Name 27  "os2Call1(struct-os2-p1-t211;" | ||||||
|  |                               Name 26  "s" | ||||||
|                               Name 32  "os2Call2(struct-os2-p1-t211;vf2;" |                               Name 32  "os2Call2(struct-os2-p1-t211;vf2;" | ||||||
|                               Name 29  "s.s2D" |                               Name 30  "s" | ||||||
|                               Name 30  "s.tex" |  | ||||||
|                               Name 31  "f2" |                               Name 31  "f2" | ||||||
|                               Name 35  "@main(" |                               Name 35  "@main(" | ||||||
|                               Name 38  "tex" |                               Name 38  "tex" | ||||||
|                               Name 70  "s.s2D" |                               Name 80  "aggShadow" | ||||||
|                               Name 71  "param" |                               Name 82  "s.s2D" | ||||||
|                               Name 74  "param" |                               Name 85  "param" | ||||||
|                               Name 76  "param" |                               Name 88  "aggShadow" | ||||||
|                               Name 79  "s2.s2D" |  | ||||||
|                               Name 80  "s2.tex" |  | ||||||
|                               Name 81  "param" |  | ||||||
|                               Name 83  "param" |  | ||||||
|                               Name 87  "param" |  | ||||||
|                               Name 89  "param" |  | ||||||
|                               Name 91  "param" |                               Name 91  "param" | ||||||
|                               Name 97  "@entryPointOutput" |                               Name 93  "param" | ||||||
|  |                               Name 96  "aggShadow" | ||||||
|  |                               Name 97  "s2.s2D" | ||||||
|  |                               Name 100  "s2.tex" | ||||||
|  |                               Name 103  "param" | ||||||
|  |                               Name 107  "aggShadow" | ||||||
|  |                               Name 112  "param" | ||||||
|  |                               Name 114  "param" | ||||||
|  |                               Name 120  "@entryPointOutput" | ||||||
|                               Decorate 38(tex) DescriptorSet 0 |                               Decorate 38(tex) DescriptorSet 0 | ||||||
|                               Decorate 70(s.s2D) DescriptorSet 0 |                               Decorate 82(s.s2D) DescriptorSet 0 | ||||||
|                               Decorate 79(s2.s2D) DescriptorSet 0 |                               Decorate 97(s2.s2D) DescriptorSet 0 | ||||||
|                               Decorate 80(s2.tex) DescriptorSet 0 |                               Decorate 100(s2.tex) DescriptorSet 0 | ||||||
|                               Decorate 97(@entryPointOutput) Location 0 |                               Decorate 120(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                7:             TypePointer Function 6 |            7(os):             TypeStruct 6 | ||||||
|                8:             TypeFloat 32 |                8:             TypePointer Function 7(os) | ||||||
|                9:             TypeVector 8(float) 4 |                9:             TypeFloat 32 | ||||||
|               10:             TypeFunction 9(fvec4) 7(ptr) |               10:             TypeVector 9(float) 4 | ||||||
|               14:             TypeVector 8(float) 2 |               11:             TypeFunction 10(fvec4) 8(ptr) | ||||||
|               15:             TypePointer Function 14(fvec2) |               15:             TypeVector 9(float) 2 | ||||||
|               16:             TypeFunction 9(fvec4) 7(ptr) 15(ptr) |               16:             TypePointer Function 15(fvec2) | ||||||
|               21:             TypeImage 8(float) 2D sampled format:Unknown |               17:             TypeFunction 10(fvec4) 8(ptr) 16(ptr) | ||||||
|               22:             TypePointer Function 21 |               22:             TypeImage 9(float) 2D sampled format:Unknown | ||||||
|               23:             TypeFunction 9(fvec4) 7(ptr) 22(ptr) |          23(os2):             TypeStruct 6 22 | ||||||
|               28:             TypeFunction 9(fvec4) 7(ptr) 22(ptr) 15(ptr) |               24:             TypePointer Function 23(os2) | ||||||
|               34:             TypeFunction 9(fvec4) |               25:             TypeFunction 10(fvec4) 24(ptr) | ||||||
|               37:             TypePointer UniformConstant 21 |               29:             TypeFunction 10(fvec4) 24(ptr) 16(ptr) | ||||||
|  |               34:             TypeFunction 10(fvec4) | ||||||
|  |               37:             TypePointer UniformConstant 22 | ||||||
|          38(tex):     37(ptr) Variable UniformConstant |          38(tex):     37(ptr) Variable UniformConstant | ||||||
|               41:             TypeSampledImage 21 |               40:             TypeInt 32 1 | ||||||
|               43:    8(float) Constant 1045220557 |               41:     40(int) Constant 0 | ||||||
|               44:    8(float) Constant 1050253722 |               42:             TypePointer Function 6 | ||||||
|               45:   14(fvec2) ConstantComposite 43 44 |               45:             TypeSampledImage 22 | ||||||
|               69:             TypePointer UniformConstant 6 |               47:    9(float) Constant 1045220557 | ||||||
|        70(s.s2D):     69(ptr) Variable UniformConstant |               48:    9(float) Constant 1050253722 | ||||||
|       79(s2.s2D):     69(ptr) Variable UniformConstant |               49:   15(fvec2) ConstantComposite 47 48 | ||||||
|       80(s2.tex):     37(ptr) Variable UniformConstant |               61:     40(int) Constant 1 | ||||||
|               96:             TypePointer Output 9(fvec4) |               62:             TypePointer Function 22 | ||||||
| 97(@entryPointOutput):     96(ptr) Variable Output |               81:             TypePointer UniformConstant 6 | ||||||
|  |        82(s.s2D):     81(ptr) Variable UniformConstant | ||||||
|  |       97(s2.s2D):     81(ptr) Variable UniformConstant | ||||||
|  |      100(s2.tex):     37(ptr) Variable UniformConstant | ||||||
|  |              119:             TypePointer Output 10(fvec4) | ||||||
|  | 120(@entryPointOutput):    119(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               98:    9(fvec4) FunctionCall 35(@main() |              121:   10(fvec4) FunctionCall 35(@main() | ||||||
|                               Store 97(@entryPointOutput) 98 |                               Store 120(@entryPointOutput) 121 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 12(osCall1(struct-os-p11;):    9(fvec4) Function None 10 | 13(osCall1(struct-os-p11;):   10(fvec4) Function None 11 | ||||||
|        11(s.s2D):      7(ptr) FunctionParameter |            12(s):      8(ptr) FunctionParameter | ||||||
|               13:             Label |               14:             Label | ||||||
|               39:          21 Load 38(tex) |               39:          22 Load 38(tex) | ||||||
|               40:           6 Load 11(s.s2D) |               43:     42(ptr) AccessChain 12(s) 41 | ||||||
|               42:          41 SampledImage 39 40 |               44:           6 Load 43 | ||||||
|               46:    9(fvec4) ImageSampleImplicitLod 42 45 |               46:          45 SampledImage 39 44 | ||||||
|                               ReturnValue 46 |               50:   10(fvec4) ImageSampleImplicitLod 46 49 | ||||||
|  |                               ReturnValue 50 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 19(osCall2(struct-os-p11;vf2;):    9(fvec4) Function None 16 | 20(osCall2(struct-os-p11;vf2;):   10(fvec4) Function None 17 | ||||||
|        17(s.s2D):      7(ptr) FunctionParameter |            18(s):      8(ptr) FunctionParameter | ||||||
|           18(f2):     15(ptr) FunctionParameter |           19(f2):     16(ptr) FunctionParameter | ||||||
|               20:             Label |               21:             Label | ||||||
|               49:          21 Load 38(tex) |               53:          22 Load 38(tex) | ||||||
|               50:           6 Load 17(s.s2D) |               54:     42(ptr) AccessChain 18(s) 41 | ||||||
|               51:          41 SampledImage 49 50 |               55:           6 Load 54 | ||||||
|               52:   14(fvec2) Load 18(f2) |               56:          45 SampledImage 53 55 | ||||||
|               53:    9(fvec4) ImageSampleImplicitLod 51 52 |               57:   15(fvec2) Load 19(f2) | ||||||
|                               ReturnValue 53 |               58:   10(fvec4) ImageSampleImplicitLod 56 57 | ||||||
|  |                               ReturnValue 58 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 26(os2Call1(struct-os2-p1-t211;):    9(fvec4) Function None 23 | 27(os2Call1(struct-os2-p1-t211;):   10(fvec4) Function None 25 | ||||||
|        24(s.s2D):      7(ptr) FunctionParameter |            26(s):     24(ptr) FunctionParameter | ||||||
|        25(s.tex):     22(ptr) FunctionParameter |               28:             Label | ||||||
|               27:             Label |               63:     62(ptr) AccessChain 26(s) 61 | ||||||
|               56:          21 Load 25(s.tex) |               64:          22 Load 63 | ||||||
|               57:           6 Load 24(s.s2D) |               65:     42(ptr) AccessChain 26(s) 41 | ||||||
|               58:          41 SampledImage 56 57 |               66:           6 Load 65 | ||||||
|               59:    9(fvec4) ImageSampleImplicitLod 58 45 |               67:          45 SampledImage 64 66 | ||||||
|                               ReturnValue 59 |               68:   10(fvec4) ImageSampleImplicitLod 67 49 | ||||||
|  |                               ReturnValue 68 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 32(os2Call2(struct-os2-p1-t211;vf2;):    9(fvec4) Function None 28 | 32(os2Call2(struct-os2-p1-t211;vf2;):   10(fvec4) Function None 29 | ||||||
|        29(s.s2D):      7(ptr) FunctionParameter |            30(s):     24(ptr) FunctionParameter | ||||||
|        30(s.tex):     22(ptr) FunctionParameter |           31(f2):     16(ptr) FunctionParameter | ||||||
|           31(f2):     15(ptr) FunctionParameter |  | ||||||
|               33:             Label |               33:             Label | ||||||
|               62:          21 Load 30(s.tex) |               71:     62(ptr) AccessChain 30(s) 61 | ||||||
|               63:           6 Load 29(s.s2D) |               72:          22 Load 71 | ||||||
|               64:          41 SampledImage 62 63 |               73:     42(ptr) AccessChain 30(s) 41 | ||||||
|               65:   14(fvec2) Load 31(f2) |               74:           6 Load 73 | ||||||
|               66:    9(fvec4) ImageSampleImplicitLod 64 65 |               75:          45 SampledImage 72 74 | ||||||
|                               ReturnValue 66 |               76:   15(fvec2) Load 31(f2) | ||||||
|  |               77:   10(fvec4) ImageSampleImplicitLod 75 76 | ||||||
|  |                               ReturnValue 77 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|       35(@main():    9(fvec4) Function None 34 |       35(@main():   10(fvec4) Function None 34 | ||||||
|               36:             Label |               36:             Label | ||||||
|        71(param):      7(ptr) Variable Function |    80(aggShadow):      8(ptr) Variable Function | ||||||
|        74(param):      7(ptr) Variable Function |        85(param):      8(ptr) Variable Function | ||||||
|        76(param):     15(ptr) Variable Function |    88(aggShadow):      8(ptr) Variable Function | ||||||
|        81(param):      7(ptr) Variable Function |        91(param):      8(ptr) Variable Function | ||||||
|        83(param):     22(ptr) Variable Function |        93(param):     16(ptr) Variable Function | ||||||
|        87(param):      7(ptr) Variable Function |    96(aggShadow):     24(ptr) Variable Function | ||||||
|        89(param):     22(ptr) Variable Function |       103(param):     24(ptr) Variable Function | ||||||
|        91(param):     15(ptr) Variable Function |   107(aggShadow):     24(ptr) Variable Function | ||||||
|               72:           6 Load 70(s.s2D) |       112(param):     24(ptr) Variable Function | ||||||
|                               Store 71(param) 72 |       114(param):     16(ptr) Variable Function | ||||||
|               73:    9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 71(param) |               83:           6 Load 82(s.s2D) | ||||||
|               75:           6 Load 70(s.s2D) |               84:     42(ptr) AccessChain 80(aggShadow) 41 | ||||||
|                               Store 74(param) 75 |                               Store 84 83 | ||||||
|                               Store 76(param) 45 |               86:       7(os) Load 80(aggShadow) | ||||||
|               77:    9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 74(param) 76(param) |                               Store 85(param) 86 | ||||||
|               78:    9(fvec4) FAdd 73 77 |               87:   10(fvec4) FunctionCall 13(osCall1(struct-os-p11;) 85(param) | ||||||
|               82:           6 Load 79(s2.s2D) |               89:           6 Load 82(s.s2D) | ||||||
|                               Store 81(param) 82 |               90:     42(ptr) AccessChain 88(aggShadow) 41 | ||||||
|               84:          21 Load 80(s2.tex) |                               Store 90 89 | ||||||
|                               Store 83(param) 84 |               92:       7(os) Load 88(aggShadow) | ||||||
|               85:    9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 81(param) 83(param) |                               Store 91(param) 92 | ||||||
|               86:    9(fvec4) FAdd 78 85 |                               Store 93(param) 49 | ||||||
|               88:           6 Load 79(s2.s2D) |               94:   10(fvec4) FunctionCall 20(osCall2(struct-os-p11;vf2;) 91(param) 93(param) | ||||||
|                               Store 87(param) 88 |               95:   10(fvec4) FAdd 87 94 | ||||||
|               90:          21 Load 80(s2.tex) |               98:           6 Load 97(s2.s2D) | ||||||
|                               Store 89(param) 90 |               99:     42(ptr) AccessChain 96(aggShadow) 41 | ||||||
|                               Store 91(param) 45 |                               Store 99 98 | ||||||
|               92:    9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 87(param) 89(param) 91(param) |              101:          22 Load 100(s2.tex) | ||||||
|               93:    9(fvec4) FAdd 86 92 |              102:     62(ptr) AccessChain 96(aggShadow) 61 | ||||||
|                               ReturnValue 93 |                               Store 102 101 | ||||||
|  |              104:     23(os2) Load 96(aggShadow) | ||||||
|  |                               Store 103(param) 104 | ||||||
|  |              105:   10(fvec4) FunctionCall 27(os2Call1(struct-os2-p1-t211;) 103(param) | ||||||
|  |              106:   10(fvec4) FAdd 95 105 | ||||||
|  |              108:           6 Load 97(s2.s2D) | ||||||
|  |              109:     42(ptr) AccessChain 107(aggShadow) 41 | ||||||
|  |                               Store 109 108 | ||||||
|  |              110:          22 Load 100(s2.tex) | ||||||
|  |              111:     62(ptr) AccessChain 107(aggShadow) 61 | ||||||
|  |                               Store 111 110 | ||||||
|  |              113:     23(os2) Load 107(aggShadow) | ||||||
|  |                               Store 112(param) 113 | ||||||
|  |                               Store 114(param) 49 | ||||||
|  |              115:   10(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 112(param) 114(param) | ||||||
|  |              116:   10(fvec4) FAdd 106 115 | ||||||
|  |                               ReturnValue 116 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -4,14 +4,19 @@ Shader version: 500 | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:5    Function Parameters:  | 0:5    Function Parameters:  | ||||||
| 0:?       'tex.smpl' ( in sampler) | 0:5      'tex' ( in structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?       'tex.tex' ( in texture2D) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:6      Branch: Return with expression | 0:6      Branch: Return with expression | ||||||
| 0:6        texture ( temp 4-component vector of float) | 0:6        texture ( temp 4-component vector of float) | ||||||
| 0:6          Construct combined texture-sampler ( temp sampler2D) | 0:6          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             'tex.tex' ( in texture2D) | 0:6            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             'tex.smpl' ( in sampler) | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                1 (const int) | ||||||
|  | 0:6            smpl: direct index for structure ( temp sampler) | ||||||
|  | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                0 (const int) | ||||||
| 0:?           Constant: | 0:?           Constant: | ||||||
| 0:?             0.300000 | 0:?             0.300000 | ||||||
| 0:?             0.400000 | 0:?             0.400000 | ||||||
| @ -19,10 +24,16 @@ Shader version: 500 | |||||||
| 0:10    Function Parameters:  | 0:10    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:12      move second child to first child ( temp sampler) | 0:12      move second child to first child ( temp sampler) | ||||||
| 0:?         't.smpl' ( temp sampler) | 0:12        smpl: direct index for structure ( temp sampler) | ||||||
|  | 0:12          't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:12          Constant: | ||||||
|  | 0:12            0 (const int) | ||||||
| 0:12        'g_tInputTexture_sampler' ( uniform sampler) | 0:12        'g_tInputTexture_sampler' ( uniform sampler) | ||||||
| 0:13      move second child to first child ( temp texture2D) | 0:13      move second child to first child ( temp texture2D) | ||||||
| 0:?         't.tex' ( temp texture2D) | 0:13        tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:13          't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:13          Constant: | ||||||
|  | 0:13            1 (const int) | ||||||
| 0:13        'g_tInputTexture' ( uniform texture2D) | 0:13        'g_tInputTexture' ( uniform texture2D) | ||||||
| 0:14      Branch: Return with expression | 0:14      Branch: Return with expression | ||||||
| 0:14        't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:14        't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| @ -30,67 +41,34 @@ Shader version: 500 | |||||||
| 0:18    Function Parameters:  | 0:18    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:19      Sequence | 0:19      Sequence | ||||||
| 0:19        Sequence |  | ||||||
| 0:19        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:19        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:19            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:19          'tex1' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:19          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:19          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:19            'g_tInputTexture_sampler' ( uniform sampler) | 0:19            'g_tInputTexture_sampler' ( uniform sampler) | ||||||
| 0:19            'g_tInputTexture' ( uniform texture2D) | 0:19            'g_tInputTexture' ( uniform texture2D) | ||||||
| 0:19          move second child to first child ( temp sampler) |  | ||||||
| 0:?             'tex1.smpl' ( temp sampler) |  | ||||||
| 0:19            smpl: direct index for structure ( temp sampler) |  | ||||||
| 0:19              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:19              Constant: |  | ||||||
| 0:19                0 (const int) |  | ||||||
| 0:19          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex1.tex' ( temp texture2D) |  | ||||||
| 0:19            tex: direct index for structure ( temp texture2D) |  | ||||||
| 0:19              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:19              Constant: |  | ||||||
| 0:19                1 (const int) |  | ||||||
| 0:20      Sequence | 0:20      Sequence | ||||||
| 0:20        move second child to first child ( temp 4-component vector of float) | 0:20        move second child to first child ( temp 4-component vector of float) | ||||||
| 0:20          'res' ( temp 4-component vector of float) | 0:20          'res' ( temp 4-component vector of float) | ||||||
| 0:20          Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:20          Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:?             'tex1.smpl' ( temp sampler) | 0:20            'tex1' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?             'tex1.tex' ( temp texture2D) |  | ||||||
| 0:21      Sequence |  | ||||||
| 0:21      Sequence | 0:21      Sequence | ||||||
| 0:21        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:21        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:21            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:21          'tex2' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:21          Function Call: fillOpaque( ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:21          Function Call: fillOpaque( ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:21          move second child to first child ( temp sampler) |  | ||||||
| 0:?             'tex2.smpl' ( temp sampler) |  | ||||||
| 0:21            smpl: direct index for structure ( temp sampler) |  | ||||||
| 0:21              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:21              Constant: |  | ||||||
| 0:21                0 (const int) |  | ||||||
| 0:21          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex2.tex' ( temp texture2D) |  | ||||||
| 0:21            tex: direct index for structure ( temp texture2D) |  | ||||||
| 0:21              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:21              Constant: |  | ||||||
| 0:21                1 (const int) |  | ||||||
| 0:22      add second child into first child ( temp 4-component vector of float) | 0:22      add second child into first child ( temp 4-component vector of float) | ||||||
| 0:22        'res' ( temp 4-component vector of float) | 0:22        'res' ( temp 4-component vector of float) | ||||||
| 0:22        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:22        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:?           'tex2.smpl' ( temp sampler) | 0:22          'tex2' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?           'tex2.tex' ( temp texture2D) |  | ||||||
| 0:23      Sequence | 0:23      Sequence | ||||||
| 0:23        Sequence | 0:23        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:23          move second child to first child ( temp sampler) | 0:23          'tex3' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?             'tex3.smpl' ( temp sampler) | 0:23          'tex1' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?             'tex1.smpl' ( temp sampler) |  | ||||||
| 0:23          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex3.tex' ( temp texture2D) |  | ||||||
| 0:?             'tex1.tex' ( temp texture2D) |  | ||||||
| 0:24      add second child into first child ( temp 4-component vector of float) | 0:24      add second child into first child ( temp 4-component vector of float) | ||||||
| 0:24        'res' ( temp 4-component vector of float) | 0:24        'res' ( temp 4-component vector of float) | ||||||
| 0:24        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:24        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:?           'tex3.smpl' ( temp sampler) | 0:24          'tex3' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?           'tex3.tex' ( temp texture2D) | 0:26      Branch: Return with expression | ||||||
| 0:25      Branch: Return with expression | 0:26        'res' ( temp 4-component vector of float) | ||||||
| 0:25        'res' ( temp 4-component vector of float) |  | ||||||
| 0:18  Function Definition: main( ( temp void) | 0:18  Function Definition: main( ( temp void) | ||||||
| 0:18    Function Parameters:  | 0:18    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| @ -110,14 +88,19 @@ Shader version: 500 | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:5    Function Parameters:  | 0:5    Function Parameters:  | ||||||
| 0:?       'tex.smpl' ( in sampler) | 0:5      'tex' ( in structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?       'tex.tex' ( in texture2D) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:6      Branch: Return with expression | 0:6      Branch: Return with expression | ||||||
| 0:6        texture ( temp 4-component vector of float) | 0:6        texture ( temp 4-component vector of float) | ||||||
| 0:6          Construct combined texture-sampler ( temp sampler2D) | 0:6          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             'tex.tex' ( in texture2D) | 0:6            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             'tex.smpl' ( in sampler) | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                1 (const int) | ||||||
|  | 0:6            smpl: direct index for structure ( temp sampler) | ||||||
|  | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                0 (const int) | ||||||
| 0:?           Constant: | 0:?           Constant: | ||||||
| 0:?             0.300000 | 0:?             0.300000 | ||||||
| 0:?             0.400000 | 0:?             0.400000 | ||||||
| @ -125,10 +108,16 @@ Shader version: 500 | |||||||
| 0:10    Function Parameters:  | 0:10    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:12      move second child to first child ( temp sampler) | 0:12      move second child to first child ( temp sampler) | ||||||
| 0:?         't.smpl' ( temp sampler) | 0:12        smpl: direct index for structure ( temp sampler) | ||||||
|  | 0:12          't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:12          Constant: | ||||||
|  | 0:12            0 (const int) | ||||||
| 0:12        'g_tInputTexture_sampler' ( uniform sampler) | 0:12        'g_tInputTexture_sampler' ( uniform sampler) | ||||||
| 0:13      move second child to first child ( temp texture2D) | 0:13      move second child to first child ( temp texture2D) | ||||||
| 0:?         't.tex' ( temp texture2D) | 0:13        tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:13          't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
|  | 0:13          Constant: | ||||||
|  | 0:13            1 (const int) | ||||||
| 0:13        'g_tInputTexture' ( uniform texture2D) | 0:13        'g_tInputTexture' ( uniform texture2D) | ||||||
| 0:14      Branch: Return with expression | 0:14      Branch: Return with expression | ||||||
| 0:14        't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:14        't' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| @ -136,67 +125,34 @@ Shader version: 500 | |||||||
| 0:18    Function Parameters:  | 0:18    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:19      Sequence | 0:19      Sequence | ||||||
| 0:19        Sequence |  | ||||||
| 0:19        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:19        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:19            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:19          'tex1' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:19          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:19          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:19            'g_tInputTexture_sampler' ( uniform sampler) | 0:19            'g_tInputTexture_sampler' ( uniform sampler) | ||||||
| 0:19            'g_tInputTexture' ( uniform texture2D) | 0:19            'g_tInputTexture' ( uniform texture2D) | ||||||
| 0:19          move second child to first child ( temp sampler) |  | ||||||
| 0:?             'tex1.smpl' ( temp sampler) |  | ||||||
| 0:19            smpl: direct index for structure ( temp sampler) |  | ||||||
| 0:19              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:19              Constant: |  | ||||||
| 0:19                0 (const int) |  | ||||||
| 0:19          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex1.tex' ( temp texture2D) |  | ||||||
| 0:19            tex: direct index for structure ( temp texture2D) |  | ||||||
| 0:19              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:19              Constant: |  | ||||||
| 0:19                1 (const int) |  | ||||||
| 0:20      Sequence | 0:20      Sequence | ||||||
| 0:20        move second child to first child ( temp 4-component vector of float) | 0:20        move second child to first child ( temp 4-component vector of float) | ||||||
| 0:20          'res' ( temp 4-component vector of float) | 0:20          'res' ( temp 4-component vector of float) | ||||||
| 0:20          Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:20          Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:?             'tex1.smpl' ( temp sampler) | 0:20            'tex1' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?             'tex1.tex' ( temp texture2D) |  | ||||||
| 0:21      Sequence |  | ||||||
| 0:21      Sequence | 0:21      Sequence | ||||||
| 0:21        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:21        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:21            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:21          'tex2' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:21          Function Call: fillOpaque( ( temp structure{ temp sampler smpl,  temp texture2D tex}) | 0:21          Function Call: fillOpaque( ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:21          move second child to first child ( temp sampler) |  | ||||||
| 0:?             'tex2.smpl' ( temp sampler) |  | ||||||
| 0:21            smpl: direct index for structure ( temp sampler) |  | ||||||
| 0:21              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:21              Constant: |  | ||||||
| 0:21                0 (const int) |  | ||||||
| 0:21          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex2.tex' ( temp texture2D) |  | ||||||
| 0:21            tex: direct index for structure ( temp texture2D) |  | ||||||
| 0:21              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex}) |  | ||||||
| 0:21              Constant: |  | ||||||
| 0:21                1 (const int) |  | ||||||
| 0:22      add second child into first child ( temp 4-component vector of float) | 0:22      add second child into first child ( temp 4-component vector of float) | ||||||
| 0:22        'res' ( temp 4-component vector of float) | 0:22        'res' ( temp 4-component vector of float) | ||||||
| 0:22        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:22        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:?           'tex2.smpl' ( temp sampler) | 0:22          'tex2' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?           'tex2.tex' ( temp texture2D) |  | ||||||
| 0:23      Sequence | 0:23      Sequence | ||||||
| 0:23        Sequence | 0:23        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:23          move second child to first child ( temp sampler) | 0:23          'tex3' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?             'tex3.smpl' ( temp sampler) | 0:23          'tex1' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?             'tex1.smpl' ( temp sampler) |  | ||||||
| 0:23          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex3.tex' ( temp texture2D) |  | ||||||
| 0:?             'tex1.tex' ( temp texture2D) |  | ||||||
| 0:24      add second child into first child ( temp 4-component vector of float) | 0:24      add second child into first child ( temp 4-component vector of float) | ||||||
| 0:24        'res' ( temp 4-component vector of float) | 0:24        'res' ( temp 4-component vector of float) | ||||||
| 0:24        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | 0:24        Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) | ||||||
| 0:?           'tex3.smpl' ( temp sampler) | 0:24          'tex3' ( temp structure{ temp sampler smpl,  temp texture2D tex}) | ||||||
| 0:?           'tex3.tex' ( temp texture2D) | 0:26      Branch: Return with expression | ||||||
| 0:25      Branch: Return with expression | 0:26        'res' ( temp 4-component vector of float) | ||||||
| 0:25        'res' ( temp 4-component vector of float) |  | ||||||
| 0:18  Function Definition: main( ( temp void) | 0:18  Function Definition: main( ( temp void) | ||||||
| 0:18    Function Parameters:  | 0:18    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| @ -210,164 +166,126 @@ Shader version: 500 | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 101 | // Id's are bound by 82 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 99 |                               EntryPoint Vertex 4  "main" 80 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 15  "lookUp(struct-FxaaTex-p1-t211;" |                               Name 9  "FxaaTex" | ||||||
|                               Name 13  "tex.smpl" |                               MemberName 9(FxaaTex) 0  "smpl" | ||||||
|                               Name 14  "tex.tex" |                               MemberName 9(FxaaTex) 1  "tex" | ||||||
|                               Name 17  "FxaaTex" |                               Name 14  "lookUp(struct-FxaaTex-p1-t211;" | ||||||
|                               MemberName 17(FxaaTex) 0  "smpl" |                               Name 13  "tex" | ||||||
|                               MemberName 17(FxaaTex) 1  "tex" |                               Name 17  "fillOpaque(" | ||||||
|                               Name 19  "fillOpaque(" |                               Name 20  "@main(" | ||||||
|                               Name 22  "@main(" |                               Name 41  "t" | ||||||
|                               Name 36  "t.smpl" |                               Name 43  "g_tInputTexture_sampler" | ||||||
|                               Name 38  "g_tInputTexture_sampler" |                               Name 47  "g_tInputTexture" | ||||||
|                               Name 40  "t.tex" |                               Name 53  "tex1" | ||||||
|                               Name 42  "g_tInputTexture" |                               Name 58  "res" | ||||||
|                               Name 45  "t" |                               Name 59  "param" | ||||||
|                               Name 49  "flattenTemp" |                               Name 62  "tex2" | ||||||
|                               Name 53  "tex1.smpl" |  | ||||||
|                               Name 58  "tex1.tex" |  | ||||||
|                               Name 63  "res" |  | ||||||
|                               Name 64  "param" |                               Name 64  "param" | ||||||
|                               Name 66  "param" |                               Name 69  "tex3" | ||||||
|                               Name 69  "flattenTemp" |                               Name 71  "param" | ||||||
|                               Name 71  "tex2.smpl" |                               Name 80  "@entryPointOutput" | ||||||
|                               Name 74  "tex2.tex" |                               Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 | ||||||
|                               Name 77  "param" |                               Decorate 47(g_tInputTexture) DescriptorSet 0 | ||||||
|                               Name 79  "param" |                               Decorate 80(@entryPointOutput) Location 0 | ||||||
|                               Name 84  "tex3.smpl" |  | ||||||
|                               Name 86  "tex3.tex" |  | ||||||
|                               Name 88  "param" |  | ||||||
|                               Name 90  "param" |  | ||||||
|                               Name 99  "@entryPointOutput" |  | ||||||
|                               Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 |  | ||||||
|                               Decorate 42(g_tInputTexture) DescriptorSet 0 |  | ||||||
|                               Decorate 99(@entryPointOutput) Location 0 |  | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                7:             TypePointer Function 6 |                7:             TypeFloat 32 | ||||||
|                8:             TypeFloat 32 |                8:             TypeImage 7(float) 2D sampled format:Unknown | ||||||
|                9:             TypeImage 8(float) 2D sampled format:Unknown |       9(FxaaTex):             TypeStruct 6 8 | ||||||
|               10:             TypePointer Function 9 |               10:             TypePointer Function 9(FxaaTex) | ||||||
|               11:             TypeVector 8(float) 4 |               11:             TypeVector 7(float) 4 | ||||||
|               12:             TypeFunction 11(fvec4) 7(ptr) 10(ptr) |               12:             TypeFunction 11(fvec4) 10(ptr) | ||||||
|      17(FxaaTex):             TypeStruct 6 9 |               16:             TypeFunction 9(FxaaTex) | ||||||
|               18:             TypeFunction 17(FxaaTex) |               19:             TypeFunction 11(fvec4) | ||||||
|               21:             TypeFunction 11(fvec4) |               22:             TypeInt 32 1 | ||||||
|               26:             TypeSampledImage 9 |               23:     22(int) Constant 1 | ||||||
|               28:             TypeVector 8(float) 2 |               24:             TypePointer Function 8 | ||||||
|               29:    8(float) Constant 1050253722 |               27:     22(int) Constant 0 | ||||||
|               30:    8(float) Constant 1053609165 |               28:             TypePointer Function 6 | ||||||
|               31:   28(fvec2) ConstantComposite 29 30 |               31:             TypeSampledImage 8 | ||||||
|               32:    8(float) Constant 0 |               33:             TypeVector 7(float) 2 | ||||||
|               37:             TypePointer UniformConstant 6 |               34:    7(float) Constant 1050253722 | ||||||
| 38(g_tInputTexture_sampler):     37(ptr) Variable UniformConstant |               35:    7(float) Constant 1053609165 | ||||||
|               41:             TypePointer UniformConstant 9 |               36:   33(fvec2) ConstantComposite 34 35 | ||||||
| 42(g_tInputTexture):     41(ptr) Variable UniformConstant |               37:    7(float) Constant 0 | ||||||
|               44:             TypePointer Function 17(FxaaTex) |               42:             TypePointer UniformConstant 6 | ||||||
|               54:             TypeInt 32 1 | 43(g_tInputTexture_sampler):     42(ptr) Variable UniformConstant | ||||||
|               55:     54(int) Constant 0 |               46:             TypePointer UniformConstant 8 | ||||||
|               59:     54(int) Constant 1 | 47(g_tInputTexture):     46(ptr) Variable UniformConstant | ||||||
|               62:             TypePointer Function 11(fvec4) |               57:             TypePointer Function 11(fvec4) | ||||||
|               98:             TypePointer Output 11(fvec4) |               79:             TypePointer Output 11(fvec4) | ||||||
| 99(@entryPointOutput):     98(ptr) Variable Output | 80(@entryPointOutput):     79(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|              100:   11(fvec4) FunctionCall 22(@main() |               81:   11(fvec4) FunctionCall 20(@main() | ||||||
|                               Store 99(@entryPointOutput) 100 |                               Store 80(@entryPointOutput) 81 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 15(lookUp(struct-FxaaTex-p1-t211;):   11(fvec4) Function None 12 | 14(lookUp(struct-FxaaTex-p1-t211;):   11(fvec4) Function None 12 | ||||||
|     13(tex.smpl):      7(ptr) FunctionParameter |          13(tex):     10(ptr) FunctionParameter | ||||||
|      14(tex.tex):     10(ptr) FunctionParameter |               15:             Label | ||||||
|               16:             Label |               25:     24(ptr) AccessChain 13(tex) 23 | ||||||
|               24:           9 Load 14(tex.tex) |               26:           8 Load 25 | ||||||
|               25:           6 Load 13(tex.smpl) |               29:     28(ptr) AccessChain 13(tex) 27 | ||||||
|               27:          26 SampledImage 24 25 |               30:           6 Load 29 | ||||||
|               33:   11(fvec4) ImageSampleExplicitLod 27 31 Lod 32 |               32:          31 SampledImage 26 30 | ||||||
|                               ReturnValue 33 |               38:   11(fvec4) ImageSampleExplicitLod 32 36 Lod 37 | ||||||
|  |                               ReturnValue 38 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  19(fillOpaque(): 17(FxaaTex) Function None 18 |  17(fillOpaque():  9(FxaaTex) Function None 16 | ||||||
|               20:             Label |               18:             Label | ||||||
|       36(t.smpl):      7(ptr) Variable Function |            41(t):     10(ptr) Variable Function | ||||||
|        40(t.tex):     10(ptr) Variable Function |               44:           6 Load 43(g_tInputTexture_sampler) | ||||||
|            45(t):     44(ptr) Variable Function |               45:     28(ptr) AccessChain 41(t) 27 | ||||||
|               39:           6 Load 38(g_tInputTexture_sampler) |                               Store 45 44 | ||||||
|                               Store 36(t.smpl) 39 |               48:           8 Load 47(g_tInputTexture) | ||||||
|               43:           9 Load 42(g_tInputTexture) |               49:     24(ptr) AccessChain 41(t) 23 | ||||||
|                               Store 40(t.tex) 43 |                               Store 49 48 | ||||||
|               46: 17(FxaaTex) Load 45(t) |               50:  9(FxaaTex) Load 41(t) | ||||||
|                               ReturnValue 46 |                               ReturnValue 50 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|       22(@main():   11(fvec4) Function None 21 |       20(@main():   11(fvec4) Function None 19 | ||||||
|               23:             Label |               21:             Label | ||||||
|  49(flattenTemp):     44(ptr) Variable Function |         53(tex1):     10(ptr) Variable Function | ||||||
|    53(tex1.smpl):      7(ptr) Variable Function |          58(res):     57(ptr) Variable Function | ||||||
|     58(tex1.tex):     10(ptr) Variable Function |        59(param):     10(ptr) Variable Function | ||||||
|          63(res):     62(ptr) Variable Function |         62(tex2):     10(ptr) Variable Function | ||||||
|        64(param):      7(ptr) Variable Function |        64(param):     10(ptr) Variable Function | ||||||
|        66(param):     10(ptr) Variable Function |         69(tex3):     10(ptr) Variable Function | ||||||
|  69(flattenTemp):     44(ptr) Variable Function |        71(param):     10(ptr) Variable Function | ||||||
|    71(tex2.smpl):      7(ptr) Variable Function |               54:           6 Load 43(g_tInputTexture_sampler) | ||||||
|     74(tex2.tex):     10(ptr) Variable Function |               55:           8 Load 47(g_tInputTexture) | ||||||
|        77(param):      7(ptr) Variable Function |               56:  9(FxaaTex) CompositeConstruct 54 55 | ||||||
|        79(param):     10(ptr) Variable Function |                               Store 53(tex1) 56 | ||||||
|    84(tex3.smpl):      7(ptr) Variable Function |               60:  9(FxaaTex) Load 53(tex1) | ||||||
|     86(tex3.tex):     10(ptr) Variable Function |                               Store 59(param) 60 | ||||||
|        88(param):      7(ptr) Variable Function |               61:   11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 59(param) | ||||||
|        90(param):     10(ptr) Variable Function |                               Store 58(res) 61 | ||||||
|               50:           6 Load 38(g_tInputTexture_sampler) |               63:  9(FxaaTex) FunctionCall 17(fillOpaque() | ||||||
|               51:           9 Load 42(g_tInputTexture) |                               Store 62(tex2) 63 | ||||||
|               52: 17(FxaaTex) CompositeConstruct 50 51 |               65:  9(FxaaTex) Load 62(tex2) | ||||||
|                               Store 49(flattenTemp) 52 |  | ||||||
|               56:      7(ptr) AccessChain 49(flattenTemp) 55 |  | ||||||
|               57:           6 Load 56 |  | ||||||
|                               Store 53(tex1.smpl) 57 |  | ||||||
|               60:     10(ptr) AccessChain 49(flattenTemp) 59 |  | ||||||
|               61:           9 Load 60 |  | ||||||
|                               Store 58(tex1.tex) 61 |  | ||||||
|               65:           6 Load 53(tex1.smpl) |  | ||||||
|                               Store 64(param) 65 |                               Store 64(param) 65 | ||||||
|               67:           9 Load 58(tex1.tex) |               66:   11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 64(param) | ||||||
|                               Store 66(param) 67 |               67:   11(fvec4) Load 58(res) | ||||||
|               68:   11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 64(param) 66(param) |               68:   11(fvec4) FAdd 67 66 | ||||||
|                               Store 63(res) 68 |                               Store 58(res) 68 | ||||||
|               70: 17(FxaaTex) FunctionCall 19(fillOpaque() |               70:  9(FxaaTex) Load 53(tex1) | ||||||
|                               Store 69(flattenTemp) 70 |                               Store 69(tex3) 70 | ||||||
|               72:      7(ptr) AccessChain 69(flattenTemp) 55 |               72:  9(FxaaTex) Load 69(tex3) | ||||||
|               73:           6 Load 72 |                               Store 71(param) 72 | ||||||
|                               Store 71(tex2.smpl) 73 |               73:   11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 71(param) | ||||||
|               75:     10(ptr) AccessChain 69(flattenTemp) 59 |               74:   11(fvec4) Load 58(res) | ||||||
|               76:           9 Load 75 |               75:   11(fvec4) FAdd 74 73 | ||||||
|                               Store 74(tex2.tex) 76 |                               Store 58(res) 75 | ||||||
|               78:           6 Load 71(tex2.smpl) |               76:   11(fvec4) Load 58(res) | ||||||
|                               Store 77(param) 78 |                               ReturnValue 76 | ||||||
|               80:           9 Load 74(tex2.tex) |  | ||||||
|                               Store 79(param) 80 |  | ||||||
|               81:   11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 77(param) 79(param) |  | ||||||
|               82:   11(fvec4) Load 63(res) |  | ||||||
|               83:   11(fvec4) FAdd 82 81 |  | ||||||
|                               Store 63(res) 83 |  | ||||||
|               85:           6 Load 53(tex1.smpl) |  | ||||||
|                               Store 84(tex3.smpl) 85 |  | ||||||
|               87:           9 Load 58(tex1.tex) |  | ||||||
|                               Store 86(tex3.tex) 87 |  | ||||||
|               89:           6 Load 84(tex3.smpl) |  | ||||||
|                               Store 88(param) 89 |  | ||||||
|               91:           9 Load 86(tex3.tex) |  | ||||||
|                               Store 90(param) 91 |  | ||||||
|               92:   11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 88(param) 90(param) |  | ||||||
|               93:   11(fvec4) Load 63(res) |  | ||||||
|               94:   11(fvec4) FAdd 93 92 |  | ||||||
|                               Store 63(res) 94 |  | ||||||
|               95:   11(fvec4) Load 63(res) |  | ||||||
|                               ReturnValue 95 |  | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -4,53 +4,42 @@ Shader version: 500 | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | ||||||
| 0:5    Function Parameters:  | 0:5    Function Parameters:  | ||||||
| 0:?       'tex.smpl' ( in sampler) | 0:5      'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:?       'tex.tex' ( in texture2D) |  | ||||||
| 0:?       'tex.f' ( in float) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:6      Branch: Return with expression | 0:6      Branch: Return with expression | ||||||
| 0:6        texture ( temp 4-component vector of float) | 0:6        texture ( temp 4-component vector of float) | ||||||
| 0:6          Construct combined texture-sampler ( temp sampler2D) | 0:6          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             'tex.tex' ( in texture2D) | 0:6            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             'tex.smpl' ( in sampler) | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                1 (const int) | ||||||
|  | 0:6            smpl: direct index for structure ( temp sampler) | ||||||
|  | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                0 (const int) | ||||||
| 0:?           Construct vec2 ( temp 2-component vector of float) | 0:?           Construct vec2 ( temp 2-component vector of float) | ||||||
| 0:?             'tex.f' ( in float) | 0:6            f: direct index for structure ( temp float) | ||||||
| 0:?             'tex.f' ( in float) | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                2 (const int) | ||||||
|  | 0:6            f: direct index for structure ( temp float) | ||||||
|  | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                2 (const int) | ||||||
| 0:10  Function Definition: @main( ( temp 4-component vector of float) | 0:10  Function Definition: @main( ( temp 4-component vector of float) | ||||||
| 0:10    Function Parameters:  | 0:10    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:11      Sequence | 0:11      Sequence | ||||||
| 0:11        Sequence |  | ||||||
| 0:11        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | 0:11        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:11            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | 0:11          'tex' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:11          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | 0:11          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:11            'g_tInputTexture_sampler' ( uniform sampler) | 0:11            'g_tInputTexture_sampler' ( uniform sampler) | ||||||
| 0:11            'g_tInputTexture' ( uniform texture2D) | 0:11            'g_tInputTexture' ( uniform texture2D) | ||||||
| 0:11            Constant: | 0:11            Constant: | ||||||
| 0:11              0.500000 | 0:11              0.500000 | ||||||
| 0:11          move second child to first child ( temp sampler) |  | ||||||
| 0:?             'tex.smpl' ( temp sampler) |  | ||||||
| 0:11            smpl: direct index for structure ( temp sampler) |  | ||||||
| 0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) |  | ||||||
| 0:11              Constant: |  | ||||||
| 0:11                0 (const int) |  | ||||||
| 0:11          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex.tex' ( temp texture2D) |  | ||||||
| 0:11            tex: direct index for structure ( temp texture2D) |  | ||||||
| 0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) |  | ||||||
| 0:11              Constant: |  | ||||||
| 0:11                1 (const int) |  | ||||||
| 0:11          move second child to first child ( temp float) |  | ||||||
| 0:?             'tex.f' ( temp float) |  | ||||||
| 0:11            f: direct index for structure ( temp float) |  | ||||||
| 0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) |  | ||||||
| 0:11              Constant: |  | ||||||
| 0:11                2 (const int) |  | ||||||
| 0:12      Branch: Return with expression | 0:12      Branch: Return with expression | ||||||
| 0:12        Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | 0:12        Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | ||||||
| 0:?           'tex.smpl' ( temp sampler) | 0:12          'tex' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:?           'tex.tex' ( temp texture2D) |  | ||||||
| 0:?           'tex.f' ( temp float) |  | ||||||
| 0:10  Function Definition: main( ( temp void) | 0:10  Function Definition: main( ( temp void) | ||||||
| 0:10    Function Parameters:  | 0:10    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| @ -70,53 +59,42 @@ Shader version: 500 | |||||||
| 0:? Sequence | 0:? Sequence | ||||||
| 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | ||||||
| 0:5    Function Parameters:  | 0:5    Function Parameters:  | ||||||
| 0:?       'tex.smpl' ( in sampler) | 0:5      'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:?       'tex.tex' ( in texture2D) |  | ||||||
| 0:?       'tex.f' ( in float) |  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:6      Branch: Return with expression | 0:6      Branch: Return with expression | ||||||
| 0:6        texture ( temp 4-component vector of float) | 0:6        texture ( temp 4-component vector of float) | ||||||
| 0:6          Construct combined texture-sampler ( temp sampler2D) | 0:6          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:?             'tex.tex' ( in texture2D) | 0:6            tex: direct index for structure ( temp texture2D) | ||||||
| 0:?             'tex.smpl' ( in sampler) | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                1 (const int) | ||||||
|  | 0:6            smpl: direct index for structure ( temp sampler) | ||||||
|  | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                0 (const int) | ||||||
| 0:?           Construct vec2 ( temp 2-component vector of float) | 0:?           Construct vec2 ( temp 2-component vector of float) | ||||||
| 0:?             'tex.f' ( in float) | 0:6            f: direct index for structure ( temp float) | ||||||
| 0:?             'tex.f' ( in float) | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                2 (const int) | ||||||
|  | 0:6            f: direct index for structure ( temp float) | ||||||
|  | 0:6              'tex' ( in structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
|  | 0:6              Constant: | ||||||
|  | 0:6                2 (const int) | ||||||
| 0:10  Function Definition: @main( ( temp 4-component vector of float) | 0:10  Function Definition: @main( ( temp 4-component vector of float) | ||||||
| 0:10    Function Parameters:  | 0:10    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:11      Sequence | 0:11      Sequence | ||||||
| 0:11        Sequence |  | ||||||
| 0:11        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | 0:11        move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:11            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | 0:11          'tex' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:11          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | 0:11          Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:11            'g_tInputTexture_sampler' ( uniform sampler) | 0:11            'g_tInputTexture_sampler' ( uniform sampler) | ||||||
| 0:11            'g_tInputTexture' ( uniform texture2D) | 0:11            'g_tInputTexture' ( uniform texture2D) | ||||||
| 0:11            Constant: | 0:11            Constant: | ||||||
| 0:11              0.500000 | 0:11              0.500000 | ||||||
| 0:11          move second child to first child ( temp sampler) |  | ||||||
| 0:?             'tex.smpl' ( temp sampler) |  | ||||||
| 0:11            smpl: direct index for structure ( temp sampler) |  | ||||||
| 0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) |  | ||||||
| 0:11              Constant: |  | ||||||
| 0:11                0 (const int) |  | ||||||
| 0:11          move second child to first child ( temp texture2D) |  | ||||||
| 0:?             'tex.tex' ( temp texture2D) |  | ||||||
| 0:11            tex: direct index for structure ( temp texture2D) |  | ||||||
| 0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) |  | ||||||
| 0:11              Constant: |  | ||||||
| 0:11                1 (const int) |  | ||||||
| 0:11          move second child to first child ( temp float) |  | ||||||
| 0:?             'tex.f' ( temp float) |  | ||||||
| 0:11            f: direct index for structure ( temp float) |  | ||||||
| 0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) |  | ||||||
| 0:11              Constant: |  | ||||||
| 0:11                2 (const int) |  | ||||||
| 0:12      Branch: Return with expression | 0:12      Branch: Return with expression | ||||||
| 0:12        Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | 0:12        Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) | ||||||
| 0:?           'tex.smpl' ( temp sampler) | 0:12          'tex' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f}) | ||||||
| 0:?           'tex.tex' ( temp texture2D) |  | ||||||
| 0:?           'tex.f' ( temp float) |  | ||||||
| 0:10  Function Definition: main( ( temp void) | 0:10  Function Definition: main( ( temp void) | ||||||
| 0:10    Function Parameters:  | 0:10    Function Parameters:  | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| @ -130,111 +108,88 @@ Shader version: 500 | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 70 | // Id's are bound by 59 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 68 |                               EntryPoint Vertex 4  "main" 57 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 17  "lookUp(struct-FxaaTex-p1-t21-f11;" |                               Name 9  "FxaaTex" | ||||||
|                               Name 14  "tex.smpl" |                               MemberName 9(FxaaTex) 0  "smpl" | ||||||
|                               Name 15  "tex.tex" |                               MemberName 9(FxaaTex) 1  "tex" | ||||||
|                               Name 16  "tex.f" |                               MemberName 9(FxaaTex) 2  "f" | ||||||
|                               Name 20  "@main(" |                               Name 14  "lookUp(struct-FxaaTex-p1-t21-f11;" | ||||||
|                               Name 34  "FxaaTex" |                               Name 13  "tex" | ||||||
|                               MemberName 34(FxaaTex) 0  "smpl" |                               Name 17  "@main(" | ||||||
|                               MemberName 34(FxaaTex) 1  "tex" |                               Name 42  "tex" | ||||||
|                               MemberName 34(FxaaTex) 2  "f" |                               Name 44  "g_tInputTexture_sampler" | ||||||
|                               Name 36  "flattenTemp" |                               Name 47  "g_tInputTexture" | ||||||
|                               Name 38  "g_tInputTexture_sampler" |                               Name 51  "param" | ||||||
|                               Name 41  "g_tInputTexture" |                               Name 57  "@entryPointOutput" | ||||||
|                               Name 45  "tex.smpl" |                               Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 | ||||||
|                               Name 50  "tex.tex" |                               Decorate 47(g_tInputTexture) DescriptorSet 0 | ||||||
|                               Name 54  "tex.f" |                               Decorate 57(@entryPointOutput) Location 0 | ||||||
|                               Name 58  "param" |  | ||||||
|                               Name 60  "param" |  | ||||||
|                               Name 62  "param" |  | ||||||
|                               Name 68  "@entryPointOutput" |  | ||||||
|                               Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 |  | ||||||
|                               Decorate 41(g_tInputTexture) DescriptorSet 0 |  | ||||||
|                               Decorate 68(@entryPointOutput) Location 0 |  | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeSampler |                6:             TypeSampler | ||||||
|                7:             TypePointer Function 6 |                7:             TypeFloat 32 | ||||||
|                8:             TypeFloat 32 |                8:             TypeImage 7(float) 2D sampled format:Unknown | ||||||
|                9:             TypeImage 8(float) 2D sampled format:Unknown |       9(FxaaTex):             TypeStruct 6 8 7(float) | ||||||
|               10:             TypePointer Function 9 |               10:             TypePointer Function 9(FxaaTex) | ||||||
|               11:             TypePointer Function 8(float) |               11:             TypeVector 7(float) 4 | ||||||
|               12:             TypeVector 8(float) 4 |               12:             TypeFunction 11(fvec4) 10(ptr) | ||||||
|               13:             TypeFunction 12(fvec4) 7(ptr) 10(ptr) 11(ptr) |               16:             TypeFunction 11(fvec4) | ||||||
|               19:             TypeFunction 12(fvec4) |               19:             TypeInt 32 1 | ||||||
|               24:             TypeSampledImage 9 |               20:     19(int) Constant 1 | ||||||
|               28:             TypeVector 8(float) 2 |               21:             TypePointer Function 8 | ||||||
|               30:    8(float) Constant 0 |               24:     19(int) Constant 0 | ||||||
|      34(FxaaTex):             TypeStruct 6 9 8(float) |               25:             TypePointer Function 6 | ||||||
|               35:             TypePointer Function 34(FxaaTex) |               28:             TypeSampledImage 8 | ||||||
|               37:             TypePointer UniformConstant 6 |               30:     19(int) Constant 2 | ||||||
| 38(g_tInputTexture_sampler):     37(ptr) Variable UniformConstant |               31:             TypePointer Function 7(float) | ||||||
|               40:             TypePointer UniformConstant 9 |               36:             TypeVector 7(float) 2 | ||||||
| 41(g_tInputTexture):     40(ptr) Variable UniformConstant |               38:    7(float) Constant 0 | ||||||
|               43:    8(float) Constant 1056964608 |               43:             TypePointer UniformConstant 6 | ||||||
|               46:             TypeInt 32 1 | 44(g_tInputTexture_sampler):     43(ptr) Variable UniformConstant | ||||||
|               47:     46(int) Constant 0 |               46:             TypePointer UniformConstant 8 | ||||||
|               51:     46(int) Constant 1 | 47(g_tInputTexture):     46(ptr) Variable UniformConstant | ||||||
|               55:     46(int) Constant 2 |               49:    7(float) Constant 1056964608 | ||||||
|               67:             TypePointer Output 12(fvec4) |               56:             TypePointer Output 11(fvec4) | ||||||
| 68(@entryPointOutput):     67(ptr) Variable Output | 57(@entryPointOutput):     56(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|               69:   12(fvec4) FunctionCall 20(@main() |               58:   11(fvec4) FunctionCall 17(@main() | ||||||
|                               Store 68(@entryPointOutput) 69 |                               Store 57(@entryPointOutput) 58 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
| 17(lookUp(struct-FxaaTex-p1-t21-f11;):   12(fvec4) Function None 13 | 14(lookUp(struct-FxaaTex-p1-t21-f11;):   11(fvec4) Function None 12 | ||||||
|     14(tex.smpl):      7(ptr) FunctionParameter |          13(tex):     10(ptr) FunctionParameter | ||||||
|      15(tex.tex):     10(ptr) FunctionParameter |               15:             Label | ||||||
|        16(tex.f):     11(ptr) FunctionParameter |               22:     21(ptr) AccessChain 13(tex) 20 | ||||||
|  |               23:           8 Load 22 | ||||||
|  |               26:     25(ptr) AccessChain 13(tex) 24 | ||||||
|  |               27:           6 Load 26 | ||||||
|  |               29:          28 SampledImage 23 27 | ||||||
|  |               32:     31(ptr) AccessChain 13(tex) 30 | ||||||
|  |               33:    7(float) Load 32 | ||||||
|  |               34:     31(ptr) AccessChain 13(tex) 30 | ||||||
|  |               35:    7(float) Load 34 | ||||||
|  |               37:   36(fvec2) CompositeConstruct 33 35 | ||||||
|  |               39:   11(fvec4) ImageSampleExplicitLod 29 37 Lod 38 | ||||||
|  |                               ReturnValue 39 | ||||||
|  |                               FunctionEnd | ||||||
|  |       17(@main():   11(fvec4) Function None 16 | ||||||
|               18:             Label |               18:             Label | ||||||
|               22:           9 Load 15(tex.tex) |          42(tex):     10(ptr) Variable Function | ||||||
|               23:           6 Load 14(tex.smpl) |        51(param):     10(ptr) Variable Function | ||||||
|               25:          24 SampledImage 22 23 |               45:           6 Load 44(g_tInputTexture_sampler) | ||||||
|               26:    8(float) Load 16(tex.f) |               48:           8 Load 47(g_tInputTexture) | ||||||
|               27:    8(float) Load 16(tex.f) |               50:  9(FxaaTex) CompositeConstruct 45 48 49 | ||||||
|               29:   28(fvec2) CompositeConstruct 26 27 |                               Store 42(tex) 50 | ||||||
|               31:   12(fvec4) ImageSampleExplicitLod 25 29 Lod 30 |               52:  9(FxaaTex) Load 42(tex) | ||||||
|                               ReturnValue 31 |                               Store 51(param) 52 | ||||||
|                               FunctionEnd |               53:   11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t21-f11;) 51(param) | ||||||
|       20(@main():   12(fvec4) Function None 19 |                               ReturnValue 53 | ||||||
|               21:             Label |  | ||||||
|  36(flattenTemp):     35(ptr) Variable Function |  | ||||||
|     45(tex.smpl):      7(ptr) Variable Function |  | ||||||
|      50(tex.tex):     10(ptr) Variable Function |  | ||||||
|        54(tex.f):     11(ptr) Variable Function |  | ||||||
|        58(param):      7(ptr) Variable Function |  | ||||||
|        60(param):     10(ptr) Variable Function |  | ||||||
|        62(param):     11(ptr) Variable Function |  | ||||||
|               39:           6 Load 38(g_tInputTexture_sampler) |  | ||||||
|               42:           9 Load 41(g_tInputTexture) |  | ||||||
|               44: 34(FxaaTex) CompositeConstruct 39 42 43 |  | ||||||
|                               Store 36(flattenTemp) 44 |  | ||||||
|               48:      7(ptr) AccessChain 36(flattenTemp) 47 |  | ||||||
|               49:           6 Load 48 |  | ||||||
|                               Store 45(tex.smpl) 49 |  | ||||||
|               52:     10(ptr) AccessChain 36(flattenTemp) 51 |  | ||||||
|               53:           9 Load 52 |  | ||||||
|                               Store 50(tex.tex) 53 |  | ||||||
|               56:     11(ptr) AccessChain 36(flattenTemp) 55 |  | ||||||
|               57:    8(float) Load 56 |  | ||||||
|                               Store 54(tex.f) 57 |  | ||||||
|               59:           6 Load 45(tex.smpl) |  | ||||||
|                               Store 58(param) 59 |  | ||||||
|               61:           9 Load 50(tex.tex) |  | ||||||
|                               Store 60(param) 61 |  | ||||||
|               63:    8(float) Load 54(tex.f) |  | ||||||
|                               Store 62(param) 63 |  | ||||||
|               64:   12(fvec4) FunctionCall 17(lookUp(struct-FxaaTex-p1-t21-f11;) 58(param) 60(param) 62(param) |  | ||||||
|                               ReturnValue 64 |  | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -8,32 +8,34 @@ gl_FragCoord origin is upper left | |||||||
| 0:30      'vpos' ( in 4-component vector of float) | 0:30      'vpos' ( in 4-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:33      move second child to first child ( temp sampler) | 0:33      move second child to first child ( temp sampler) | ||||||
| 0:?         's1.s0.ss' ( temp sampler) | 0:33        ss: direct index for structure ( temp sampler) | ||||||
|  | 0:33          s0: direct index for structure ( temp structure{ temp int x,  temp int y,  temp sampler ss}) | ||||||
|  | 0:33            's1' ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
|  | 0:33            Constant: | ||||||
|  | 0:33              2 (const int) | ||||||
|  | 0:33          Constant: | ||||||
|  | 0:33            2 (const int) | ||||||
| 0:33        'samp' ( uniform sampler) | 0:33        'samp' ( uniform sampler) | ||||||
| 0:34      Sequence | 0:34      move second child to first child ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
| 0:34        move second child to first child ( temp float) | 0:34        resources: direct index for structure ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
| 0:?           's2.resources.b' ( temp float) | 0:34          's2' ( temp structure{ temp int a1,  temp int a2,  temp int a3,  temp int a4,  temp int a5,  temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a} resources}) | ||||||
| 0:?           's1.b' ( temp float) | 0:34          Constant: | ||||||
| 0:34        move second child to first child ( temp sampler) | 0:34            5 (const int) | ||||||
| 0:?           's2.resources.samplerState' ( temp sampler) | 0:34        's1' ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
| 0:?           's1.samplerState' ( temp sampler) |  | ||||||
| 0:34        move second child to first child ( temp int) |  | ||||||
| 0:?           's2.resources.s0.x' ( temp int) |  | ||||||
| 0:?           's1.s0.x' ( temp int) |  | ||||||
| 0:34        move second child to first child ( temp int) |  | ||||||
| 0:?           's2.resources.s0.y' ( temp int) |  | ||||||
| 0:?           's1.s0.y' ( temp int) |  | ||||||
| 0:34        move second child to first child ( temp sampler) |  | ||||||
| 0:?           's2.resources.s0.ss' ( temp sampler) |  | ||||||
| 0:?           's1.s0.ss' ( temp sampler) |  | ||||||
| 0:34        move second child to first child ( temp int) |  | ||||||
| 0:?           's2.resources.a' ( temp int) |  | ||||||
| 0:?           's1.a' ( temp int) |  | ||||||
| 0:35      Branch: Return with expression | 0:35      Branch: Return with expression | ||||||
| 0:35        texture ( temp 4-component vector of float) | 0:35        texture ( temp 4-component vector of float) | ||||||
| 0:35          Construct combined texture-sampler ( temp sampler2D) | 0:35          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:35            'tex' ( uniform texture2D) | 0:35            'tex' ( uniform texture2D) | ||||||
| 0:?             's2.resources.s0.ss' ( temp sampler) | 0:35            ss: direct index for structure ( temp sampler) | ||||||
|  | 0:35              s0: direct index for structure ( temp structure{ temp int x,  temp int y,  temp sampler ss}) | ||||||
|  | 0:35                resources: direct index for structure ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
|  | 0:35                  's2' ( temp structure{ temp int a1,  temp int a2,  temp int a3,  temp int a4,  temp int a5,  temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a} resources}) | ||||||
|  | 0:35                  Constant: | ||||||
|  | 0:35                    5 (const int) | ||||||
|  | 0:35                Constant: | ||||||
|  | 0:35                  2 (const int) | ||||||
|  | 0:35              Constant: | ||||||
|  | 0:35                2 (const int) | ||||||
| 0:35          Constant: | 0:35          Constant: | ||||||
| 0:35            0.500000 | 0:35            0.500000 | ||||||
| 0:35            0.500000 | 0:35            0.500000 | ||||||
| @ -65,32 +67,34 @@ gl_FragCoord origin is upper left | |||||||
| 0:30      'vpos' ( in 4-component vector of float) | 0:30      'vpos' ( in 4-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:33      move second child to first child ( temp sampler) | 0:33      move second child to first child ( temp sampler) | ||||||
| 0:?         's1.s0.ss' ( temp sampler) | 0:33        ss: direct index for structure ( temp sampler) | ||||||
|  | 0:33          s0: direct index for structure ( temp structure{ temp int x,  temp int y,  temp sampler ss}) | ||||||
|  | 0:33            's1' ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
|  | 0:33            Constant: | ||||||
|  | 0:33              2 (const int) | ||||||
|  | 0:33          Constant: | ||||||
|  | 0:33            2 (const int) | ||||||
| 0:33        'samp' ( uniform sampler) | 0:33        'samp' ( uniform sampler) | ||||||
| 0:34      Sequence | 0:34      move second child to first child ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
| 0:34        move second child to first child ( temp float) | 0:34        resources: direct index for structure ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
| 0:?           's2.resources.b' ( temp float) | 0:34          's2' ( temp structure{ temp int a1,  temp int a2,  temp int a3,  temp int a4,  temp int a5,  temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a} resources}) | ||||||
| 0:?           's1.b' ( temp float) | 0:34          Constant: | ||||||
| 0:34        move second child to first child ( temp sampler) | 0:34            5 (const int) | ||||||
| 0:?           's2.resources.samplerState' ( temp sampler) | 0:34        's1' ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
| 0:?           's1.samplerState' ( temp sampler) |  | ||||||
| 0:34        move second child to first child ( temp int) |  | ||||||
| 0:?           's2.resources.s0.x' ( temp int) |  | ||||||
| 0:?           's1.s0.x' ( temp int) |  | ||||||
| 0:34        move second child to first child ( temp int) |  | ||||||
| 0:?           's2.resources.s0.y' ( temp int) |  | ||||||
| 0:?           's1.s0.y' ( temp int) |  | ||||||
| 0:34        move second child to first child ( temp sampler) |  | ||||||
| 0:?           's2.resources.s0.ss' ( temp sampler) |  | ||||||
| 0:?           's1.s0.ss' ( temp sampler) |  | ||||||
| 0:34        move second child to first child ( temp int) |  | ||||||
| 0:?           's2.resources.a' ( temp int) |  | ||||||
| 0:?           's1.a' ( temp int) |  | ||||||
| 0:35      Branch: Return with expression | 0:35      Branch: Return with expression | ||||||
| 0:35        texture ( temp 4-component vector of float) | 0:35        texture ( temp 4-component vector of float) | ||||||
| 0:35          Construct combined texture-sampler ( temp sampler2D) | 0:35          Construct combined texture-sampler ( temp sampler2D) | ||||||
| 0:35            'tex' ( uniform texture2D) | 0:35            'tex' ( uniform texture2D) | ||||||
| 0:?             's2.resources.s0.ss' ( temp sampler) | 0:35            ss: direct index for structure ( temp sampler) | ||||||
|  | 0:35              s0: direct index for structure ( temp structure{ temp int x,  temp int y,  temp sampler ss}) | ||||||
|  | 0:35                resources: direct index for structure ( temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a}) | ||||||
|  | 0:35                  's2' ( temp structure{ temp int a1,  temp int a2,  temp int a3,  temp int a4,  temp int a5,  temp structure{ temp float b,  temp sampler samplerState,  temp structure{ temp int x,  temp int y,  temp sampler ss} s0,  temp int a} resources}) | ||||||
|  | 0:35                  Constant: | ||||||
|  | 0:35                    5 (const int) | ||||||
|  | 0:35                Constant: | ||||||
|  | 0:35                  2 (const int) | ||||||
|  | 0:35              Constant: | ||||||
|  | 0:35                2 (const int) | ||||||
| 0:35          Constant: | 0:35          Constant: | ||||||
| 0:35            0.500000 | 0:35            0.500000 | ||||||
| 0:35            0.500000 | 0:35            0.500000 | ||||||
| @ -112,39 +116,45 @@ gl_FragCoord origin is upper left | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 61 | // Id's are bound by 54 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 54 57 |                               EntryPoint Fragment 4  "main" 47 50 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 11  "@main(vf4;" |                               Name 11  "@main(vf4;" | ||||||
|                               Name 10  "vpos" |                               Name 10  "vpos" | ||||||
|                               Name 15  "s1.s0.ss" |                               Name 15  "S0" | ||||||
|                               Name 17  "samp" |                               MemberName 15(S0) 0  "x" | ||||||
|                               Name 20  "s2.resources.b" |                               MemberName 15(S0) 1  "y" | ||||||
|                               Name 21  "s1.b" |                               MemberName 15(S0) 2  "ss" | ||||||
|                               Name 23  "s2.resources.samplerState" |                               Name 16  "S1" | ||||||
|                               Name 24  "s1.samplerState" |                               MemberName 16(S1) 0  "b" | ||||||
|                               Name 28  "s2.resources.s0.x" |                               MemberName 16(S1) 1  "samplerState" | ||||||
|                               Name 29  "s1.s0.x" |                               MemberName 16(S1) 2  "s0" | ||||||
|                               Name 31  "s2.resources.s0.y" |                               MemberName 16(S1) 3  "a" | ||||||
|                               Name 32  "s1.s0.y" |                               Name 18  "s1" | ||||||
|                               Name 34  "s2.resources.s0.ss" |                               Name 21  "samp" | ||||||
|                               Name 36  "s2.resources.a" |                               Name 25  "S2" | ||||||
|                               Name 37  "s1.a" |                               MemberName 25(S2) 0  "a1" | ||||||
|                               Name 41  "tex" |                               MemberName 25(S2) 1  "a2" | ||||||
|                               Name 52  "vpos" |                               MemberName 25(S2) 2  "a3" | ||||||
|                               Name 54  "vpos" |                               MemberName 25(S2) 3  "a4" | ||||||
|                               Name 57  "@entryPointOutput" |                               MemberName 25(S2) 4  "a5" | ||||||
|                               Name 58  "param" |                               MemberName 25(S2) 5  "resources" | ||||||
|                               Decorate 17(samp) DescriptorSet 0 |                               Name 27  "s2" | ||||||
|                               Decorate 41(tex) DescriptorSet 0 |                               Name 33  "tex" | ||||||
|                               Decorate 54(vpos) Location 0 |                               Name 45  "vpos" | ||||||
|                               Decorate 57(@entryPointOutput) Location 0 |                               Name 47  "vpos" | ||||||
|  |                               Name 50  "@entryPointOutput" | ||||||
|  |                               Name 51  "param" | ||||||
|  |                               Decorate 21(samp) DescriptorSet 0 | ||||||
|  |                               Decorate 33(tex) DescriptorSet 0 | ||||||
|  |                               Decorate 47(vpos) Location 0 | ||||||
|  |                               Decorate 50(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
| @ -152,67 +162,55 @@ gl_FragCoord origin is upper left | |||||||
|                8:             TypePointer Function 7(fvec4) |                8:             TypePointer Function 7(fvec4) | ||||||
|                9:             TypeFunction 7(fvec4) 8(ptr) |                9:             TypeFunction 7(fvec4) 8(ptr) | ||||||
|               13:             TypeSampler |               13:             TypeSampler | ||||||
|               14:             TypePointer Function 13 |               14:             TypeInt 32 1 | ||||||
|               16:             TypePointer UniformConstant 13 |           15(S0):             TypeStruct 14(int) 14(int) 13 | ||||||
|         17(samp):     16(ptr) Variable UniformConstant |           16(S1):             TypeStruct 6(float) 13 15(S0) 14(int) | ||||||
|               19:             TypePointer Function 6(float) |               17:             TypePointer Function 16(S1) | ||||||
|               26:             TypeInt 32 1 |               19:     14(int) Constant 2 | ||||||
|               27:             TypePointer Function 26(int) |               20:             TypePointer UniformConstant 13 | ||||||
|               39:             TypeImage 6(float) 2D sampled format:Unknown |         21(samp):     20(ptr) Variable UniformConstant | ||||||
|               40:             TypePointer UniformConstant 39 |               23:             TypePointer Function 13 | ||||||
|          41(tex):     40(ptr) Variable UniformConstant |           25(S2):             TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1) | ||||||
|               44:             TypeSampledImage 39 |               26:             TypePointer Function 25(S2) | ||||||
|               46:             TypeVector 6(float) 2 |               28:     14(int) Constant 5 | ||||||
|               47:    6(float) Constant 1056964608 |               31:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               48:   46(fvec2) ConstantComposite 47 47 |               32:             TypePointer UniformConstant 31 | ||||||
|               53:             TypePointer Input 7(fvec4) |          33(tex):     32(ptr) Variable UniformConstant | ||||||
|         54(vpos):     53(ptr) Variable Input |               37:             TypeSampledImage 31 | ||||||
|               56:             TypePointer Output 7(fvec4) |               39:             TypeVector 6(float) 2 | ||||||
| 57(@entryPointOutput):     56(ptr) Variable Output |               40:    6(float) Constant 1056964608 | ||||||
|  |               41:   39(fvec2) ConstantComposite 40 40 | ||||||
|  |               46:             TypePointer Input 7(fvec4) | ||||||
|  |         47(vpos):     46(ptr) Variable Input | ||||||
|  |               49:             TypePointer Output 7(fvec4) | ||||||
|  | 50(@entryPointOutput):     49(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|         52(vpos):      8(ptr) Variable Function |         45(vpos):      8(ptr) Variable Function | ||||||
|        58(param):      8(ptr) Variable Function |        51(param):      8(ptr) Variable Function | ||||||
|               55:    7(fvec4) Load 54(vpos) |               48:    7(fvec4) Load 47(vpos) | ||||||
|                               Store 52(vpos) 55 |                               Store 45(vpos) 48 | ||||||
|               59:    7(fvec4) Load 52(vpos) |               52:    7(fvec4) Load 45(vpos) | ||||||
|                               Store 58(param) 59 |                               Store 51(param) 52 | ||||||
|               60:    7(fvec4) FunctionCall 11(@main(vf4;) 58(param) |               53:    7(fvec4) FunctionCall 11(@main(vf4;) 51(param) | ||||||
|                               Store 57(@entryPointOutput) 60 |                               Store 50(@entryPointOutput) 53 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|   11(@main(vf4;):    7(fvec4) Function None 9 |   11(@main(vf4;):    7(fvec4) Function None 9 | ||||||
|         10(vpos):      8(ptr) FunctionParameter |         10(vpos):      8(ptr) FunctionParameter | ||||||
|               12:             Label |               12:             Label | ||||||
|     15(s1.s0.ss):     14(ptr) Variable Function |           18(s1):     17(ptr) Variable Function | ||||||
| 20(s2.resources.b):     19(ptr) Variable Function |           27(s2):     26(ptr) Variable Function | ||||||
|         21(s1.b):     19(ptr) Variable Function |               22:          13 Load 21(samp) | ||||||
| 23(s2.resources.samplerState):     14(ptr) Variable Function |               24:     23(ptr) AccessChain 18(s1) 19 19 | ||||||
| 24(s1.samplerState):     14(ptr) Variable Function |                               Store 24 22 | ||||||
| 28(s2.resources.s0.x):     27(ptr) Variable Function |               29:      16(S1) Load 18(s1) | ||||||
|      29(s1.s0.x):     27(ptr) Variable Function |               30:     17(ptr) AccessChain 27(s2) 28 | ||||||
| 31(s2.resources.s0.y):     27(ptr) Variable Function |                               Store 30 29 | ||||||
|      32(s1.s0.y):     27(ptr) Variable Function |               34:          31 Load 33(tex) | ||||||
| 34(s2.resources.s0.ss):     14(ptr) Variable Function |               35:     23(ptr) AccessChain 27(s2) 28 19 19 | ||||||
| 36(s2.resources.a):     27(ptr) Variable Function |               36:          13 Load 35 | ||||||
|         37(s1.a):     27(ptr) Variable Function |               38:          37 SampledImage 34 36 | ||||||
|               18:          13 Load 17(samp) |               42:    7(fvec4) ImageSampleImplicitLod 38 41 | ||||||
|                               Store 15(s1.s0.ss) 18 |                               ReturnValue 42 | ||||||
|               22:    6(float) Load 21(s1.b) |  | ||||||
|                               Store 20(s2.resources.b) 22 |  | ||||||
|               25:          13 Load 24(s1.samplerState) |  | ||||||
|                               Store 23(s2.resources.samplerState) 25 |  | ||||||
|               30:     26(int) Load 29(s1.s0.x) |  | ||||||
|                               Store 28(s2.resources.s0.x) 30 |  | ||||||
|               33:     26(int) Load 32(s1.s0.y) |  | ||||||
|                               Store 31(s2.resources.s0.y) 33 |  | ||||||
|               35:          13 Load 15(s1.s0.ss) |  | ||||||
|                               Store 34(s2.resources.s0.ss) 35 |  | ||||||
|               38:     26(int) Load 37(s1.a) |  | ||||||
|                               Store 36(s2.resources.a) 38 |  | ||||||
|               42:          39 Load 41(tex) |  | ||||||
|               43:          13 Load 34(s2.resources.s0.ss) |  | ||||||
|               45:          44 SampledImage 42 43 |  | ||||||
|               49:    7(fvec4) ImageSampleImplicitLod 45 48 |  | ||||||
|                               ReturnValue 49 |  | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -7,33 +7,48 @@ gl_FragCoord origin is upper left | |||||||
| 0:8    Function Parameters:  | 0:8    Function Parameters:  | ||||||
| 0:8      'vpos' ( in 4-component vector of float) | 0:8      'vpos' ( in 4-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:13      Sequence | 0:13      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:13        move second child to first child ( temp float) | 0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?           'a1.n.y' ( temp float) | 0:13          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
| 0:?           'a2.n.y' ( temp float) | 0:13          Constant: | ||||||
| 0:13        move second child to first child ( temp texture2D) | 0:13            0 (const int) | ||||||
| 0:?           'a1.n.texNested' ( temp texture2D) | 0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?           'a2.n.texNested' ( temp texture2D) | 0:13          'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
| 0:14      Sequence | 0:13          Constant: | ||||||
| 0:14        move second child to first child ( temp float) | 0:13            0 (const int) | ||||||
| 0:?           'b.n.y' ( temp float) | 0:14      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?           'a1.n.y' ( temp float) | 0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:14        move second child to first child ( temp texture2D) | 0:14          'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex}) | ||||||
| 0:?           'b.n.texNested' ( temp texture2D) | 0:14          Constant: | ||||||
| 0:?           'a1.n.texNested' ( temp texture2D) | 0:14            0 (const int) | ||||||
|  | 0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
|  | 0:14          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
|  | 0:14          Constant: | ||||||
|  | 0:14            0 (const int) | ||||||
| 0:17      Sequence | 0:17      Sequence | ||||||
| 0:17        Sequence | 0:17        move second child to first child ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:17          move second child to first child ( temp float) | 0:17          'n' ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?             'n.y' ( temp float) | 0:17          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?             'b.n.y' ( temp float) | 0:17            'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex}) | ||||||
| 0:17          move second child to first child ( temp texture2D) | 0:17            Constant: | ||||||
| 0:?             'n.texNested' ( temp texture2D) | 0:17              0 (const int) | ||||||
| 0:?             'b.n.texNested' ( temp texture2D) |  | ||||||
| 0:20      move second child to first child ( temp texture2D) | 0:20      move second child to first child ( temp texture2D) | ||||||
| 0:?         'a2.n.texNested' ( temp texture2D) | 0:20        texNested: direct index for structure ( temp texture2D) | ||||||
|  | 0:20          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
|  | 0:20            'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
|  | 0:20            Constant: | ||||||
|  | 0:20              0 (const int) | ||||||
|  | 0:20          Constant: | ||||||
|  | 0:20            1 (const int) | ||||||
| 0:20        'someTex' ( uniform texture2D) | 0:20        'someTex' ( uniform texture2D) | ||||||
| 0:21      move second child to first child ( temp float) | 0:21      move second child to first child ( temp float) | ||||||
| 0:?         'a1.n.y' ( temp float) | 0:21        y: direct index for structure ( temp float) | ||||||
|  | 0:21          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
|  | 0:21            'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
|  | 0:21            Constant: | ||||||
|  | 0:21              0 (const int) | ||||||
|  | 0:21          Constant: | ||||||
|  | 0:21            0 (const int) | ||||||
| 0:21        Constant: | 0:21        Constant: | ||||||
| 0:21          1.000000 | 0:21          1.000000 | ||||||
| 0:23      Branch: Return with expression | 0:23      Branch: Return with expression | ||||||
| @ -68,33 +83,48 @@ gl_FragCoord origin is upper left | |||||||
| 0:8    Function Parameters:  | 0:8    Function Parameters:  | ||||||
| 0:8      'vpos' ( in 4-component vector of float) | 0:8      'vpos' ( in 4-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:13      Sequence | 0:13      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:13        move second child to first child ( temp float) | 0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?           'a1.n.y' ( temp float) | 0:13          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
| 0:?           'a2.n.y' ( temp float) | 0:13          Constant: | ||||||
| 0:13        move second child to first child ( temp texture2D) | 0:13            0 (const int) | ||||||
| 0:?           'a1.n.texNested' ( temp texture2D) | 0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?           'a2.n.texNested' ( temp texture2D) | 0:13          'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
| 0:14      Sequence | 0:13          Constant: | ||||||
| 0:14        move second child to first child ( temp float) | 0:13            0 (const int) | ||||||
| 0:?           'b.n.y' ( temp float) | 0:14      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?           'a1.n.y' ( temp float) | 0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:14        move second child to first child ( temp texture2D) | 0:14          'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex}) | ||||||
| 0:?           'b.n.texNested' ( temp texture2D) | 0:14          Constant: | ||||||
| 0:?           'a1.n.texNested' ( temp texture2D) | 0:14            0 (const int) | ||||||
|  | 0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
|  | 0:14          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
|  | 0:14          Constant: | ||||||
|  | 0:14            0 (const int) | ||||||
| 0:17      Sequence | 0:17      Sequence | ||||||
| 0:17        Sequence | 0:17        move second child to first child ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:17          move second child to first child ( temp float) | 0:17          'n' ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?             'n.y' ( temp float) | 0:17          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
| 0:?             'b.n.y' ( temp float) | 0:17            'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex}) | ||||||
| 0:17          move second child to first child ( temp texture2D) | 0:17            Constant: | ||||||
| 0:?             'n.texNested' ( temp texture2D) | 0:17              0 (const int) | ||||||
| 0:?             'b.n.texNested' ( temp texture2D) |  | ||||||
| 0:20      move second child to first child ( temp texture2D) | 0:20      move second child to first child ( temp texture2D) | ||||||
| 0:?         'a2.n.texNested' ( temp texture2D) | 0:20        texNested: direct index for structure ( temp texture2D) | ||||||
|  | 0:20          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
|  | 0:20            'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
|  | 0:20            Constant: | ||||||
|  | 0:20              0 (const int) | ||||||
|  | 0:20          Constant: | ||||||
|  | 0:20            1 (const int) | ||||||
| 0:20        'someTex' ( uniform texture2D) | 0:20        'someTex' ( uniform texture2D) | ||||||
| 0:21      move second child to first child ( temp float) | 0:21      move second child to first child ( temp float) | ||||||
| 0:?         'a1.n.y' ( temp float) | 0:21        y: direct index for structure ( temp float) | ||||||
|  | 0:21          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested}) | ||||||
|  | 0:21            'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x}) | ||||||
|  | 0:21            Constant: | ||||||
|  | 0:21              0 (const int) | ||||||
|  | 0:21          Constant: | ||||||
|  | 0:21            0 (const int) | ||||||
| 0:21        Constant: | 0:21        Constant: | ||||||
| 0:21          1.000000 | 0:21          1.000000 | ||||||
| 0:23      Branch: Return with expression | 0:23      Branch: Return with expression | ||||||
| @ -120,88 +150,99 @@ gl_FragCoord origin is upper left | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 47 | // Id's are bound by 56 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Fragment 4  "main" 40 43 |                               EntryPoint Fragment 4  "main" 49 52 | ||||||
|                               ExecutionMode 4 OriginUpperLeft |                               ExecutionMode 4 OriginUpperLeft | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 11  "@main(vf4;" |                               Name 11  "@main(vf4;" | ||||||
|                               Name 10  "vpos" |                               Name 10  "vpos" | ||||||
|                               Name 14  "a1.n.y" |                               Name 14  "Nested" | ||||||
|                               Name 15  "a2.n.y" |                               MemberName 14(Nested) 0  "y" | ||||||
|                               Name 19  "a1.n.texNested" |                               MemberName 14(Nested) 1  "texNested" | ||||||
|                               Name 20  "a2.n.texNested" |                               Name 15  "A" | ||||||
|                               Name 22  "b.n.y" |                               MemberName 15(A) 0  "n" | ||||||
|                               Name 24  "b.n.texNested" |                               MemberName 15(A) 1  "x" | ||||||
|                               Name 26  "n.y" |                               Name 17  "a1" | ||||||
|                               Name 28  "n.texNested" |                               Name 20  "a2" | ||||||
|                               Name 31  "someTex" |                               Name 25  "B" | ||||||
|                               Name 38  "vpos" |                               MemberName 25(B) 0  "n" | ||||||
|                               Name 40  "vpos" |                               MemberName 25(B) 1  "tex" | ||||||
|                               Name 43  "@entryPointOutput" |                               Name 27  "b" | ||||||
|                               Name 44  "param" |                               Name 31  "n" | ||||||
|                               Decorate 31(someTex) DescriptorSet 0 |                               Name 36  "someTex" | ||||||
|                               Decorate 40(vpos) Location 0 |                               Name 47  "vpos" | ||||||
|                               Decorate 43(@entryPointOutput) Location 0 |                               Name 49  "vpos" | ||||||
|  |                               Name 52  "@entryPointOutput" | ||||||
|  |                               Name 53  "param" | ||||||
|  |                               Decorate 36(someTex) DescriptorSet 0 | ||||||
|  |                               Decorate 49(vpos) Location 0 | ||||||
|  |                               Decorate 52(@entryPointOutput) Location 0 | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
|                7:             TypeVector 6(float) 4 |                7:             TypeVector 6(float) 4 | ||||||
|                8:             TypePointer Function 7(fvec4) |                8:             TypePointer Function 7(fvec4) | ||||||
|                9:             TypeFunction 7(fvec4) 8(ptr) |                9:             TypeFunction 7(fvec4) 8(ptr) | ||||||
|               13:             TypePointer Function 6(float) |               13:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               17:             TypeImage 6(float) 2D sampled format:Unknown |       14(Nested):             TypeStruct 6(float) 13 | ||||||
|               18:             TypePointer Function 17 |            15(A):             TypeStruct 14(Nested) 6(float) | ||||||
|               30:             TypePointer UniformConstant 17 |               16:             TypePointer Function 15(A) | ||||||
|      31(someTex):     30(ptr) Variable UniformConstant |               18:             TypeInt 32 1 | ||||||
|               33:    6(float) Constant 1065353216 |               19:     18(int) Constant 0 | ||||||
|               34:    6(float) Constant 0 |               21:             TypePointer Function 14(Nested) | ||||||
|               35:    7(fvec4) ConstantComposite 34 34 34 34 |            25(B):             TypeStruct 14(Nested) 13 | ||||||
|               39:             TypePointer Input 7(fvec4) |               26:             TypePointer Function 25(B) | ||||||
|         40(vpos):     39(ptr) Variable Input |               34:     18(int) Constant 1 | ||||||
|               42:             TypePointer Output 7(fvec4) |               35:             TypePointer UniformConstant 13 | ||||||
| 43(@entryPointOutput):     42(ptr) Variable Output |      36(someTex):     35(ptr) Variable UniformConstant | ||||||
|  |               38:             TypePointer Function 13 | ||||||
|  |               40:    6(float) Constant 1065353216 | ||||||
|  |               41:             TypePointer Function 6(float) | ||||||
|  |               43:    6(float) Constant 0 | ||||||
|  |               44:    7(fvec4) ConstantComposite 43 43 43 43 | ||||||
|  |               48:             TypePointer Input 7(fvec4) | ||||||
|  |         49(vpos):     48(ptr) Variable Input | ||||||
|  |               51:             TypePointer Output 7(fvec4) | ||||||
|  | 52(@entryPointOutput):     51(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|         38(vpos):      8(ptr) Variable Function |         47(vpos):      8(ptr) Variable Function | ||||||
|        44(param):      8(ptr) Variable Function |        53(param):      8(ptr) Variable Function | ||||||
|               41:    7(fvec4) Load 40(vpos) |               50:    7(fvec4) Load 49(vpos) | ||||||
|                               Store 38(vpos) 41 |                               Store 47(vpos) 50 | ||||||
|               45:    7(fvec4) Load 38(vpos) |               54:    7(fvec4) Load 47(vpos) | ||||||
|                               Store 44(param) 45 |                               Store 53(param) 54 | ||||||
|               46:    7(fvec4) FunctionCall 11(@main(vf4;) 44(param) |               55:    7(fvec4) FunctionCall 11(@main(vf4;) 53(param) | ||||||
|                               Store 43(@entryPointOutput) 46 |                               Store 52(@entryPointOutput) 55 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|   11(@main(vf4;):    7(fvec4) Function None 9 |   11(@main(vf4;):    7(fvec4) Function None 9 | ||||||
|         10(vpos):      8(ptr) FunctionParameter |         10(vpos):      8(ptr) FunctionParameter | ||||||
|               12:             Label |               12:             Label | ||||||
|       14(a1.n.y):     13(ptr) Variable Function |           17(a1):     16(ptr) Variable Function | ||||||
|       15(a2.n.y):     13(ptr) Variable Function |           20(a2):     16(ptr) Variable Function | ||||||
| 19(a1.n.texNested):     18(ptr) Variable Function |            27(b):     26(ptr) Variable Function | ||||||
| 20(a2.n.texNested):     18(ptr) Variable Function |            31(n):     21(ptr) Variable Function | ||||||
|        22(b.n.y):     13(ptr) Variable Function |               22:     21(ptr) AccessChain 20(a2) 19 | ||||||
| 24(b.n.texNested):     18(ptr) Variable Function |               23:  14(Nested) Load 22 | ||||||
|          26(n.y):     13(ptr) Variable Function |               24:     21(ptr) AccessChain 17(a1) 19 | ||||||
|  28(n.texNested):     18(ptr) Variable Function |                               Store 24 23 | ||||||
|               16:    6(float) Load 15(a2.n.y) |               28:     21(ptr) AccessChain 17(a1) 19 | ||||||
|                               Store 14(a1.n.y) 16 |               29:  14(Nested) Load 28 | ||||||
|               21:          17 Load 20(a2.n.texNested) |               30:     21(ptr) AccessChain 27(b) 19 | ||||||
|                               Store 19(a1.n.texNested) 21 |                               Store 30 29 | ||||||
|               23:    6(float) Load 14(a1.n.y) |               32:     21(ptr) AccessChain 27(b) 19 | ||||||
|                               Store 22(b.n.y) 23 |               33:  14(Nested) Load 32 | ||||||
|               25:          17 Load 19(a1.n.texNested) |                               Store 31(n) 33 | ||||||
|                               Store 24(b.n.texNested) 25 |               37:          13 Load 36(someTex) | ||||||
|               27:    6(float) Load 22(b.n.y) |               39:     38(ptr) AccessChain 20(a2) 19 34 | ||||||
|                               Store 26(n.y) 27 |                               Store 39 37 | ||||||
|               29:          17 Load 24(b.n.texNested) |               42:     41(ptr) AccessChain 17(a1) 19 19 | ||||||
|                               Store 28(n.texNested) 29 |                               Store 42 40 | ||||||
|               32:          17 Load 31(someTex) |                               ReturnValue 44 | ||||||
|                               Store 20(a2.n.texNested) 32 |  | ||||||
|                               Store 14(a1.n.y) 33 |  | ||||||
|                               ReturnValue 35 |  | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -7,11 +7,17 @@ Shader version: 500 | |||||||
| 0:12      'pos' ( in 4-component vector of float) | 0:12      'pos' ( in 4-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:14      move second child to first child ( temp texture2D) | 0:14      move second child to first child ( temp texture2D) | ||||||
| 0:?         'packed.tex' ( temp texture2D) | 0:14        tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:14          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:14          Constant: | ||||||
|  | 0:14            0 (const int) | ||||||
| 0:14        'tex' ( uniform texture2D) | 0:14        'tex' ( uniform texture2D) | ||||||
| 0:15      move second child to first child ( temp 3-component vector of float) | 0:15      move second child to first child ( temp 3-component vector of float) | ||||||
| 0:15        direct index ( temp 3-component vector of float) | 0:15        direct index ( temp 3-component vector of float) | ||||||
| 0:?           'packed.pos' ( temp 3-element array of 3-component vector of float) | 0:15          pos: direct index for structure ( temp 3-element array of 3-component vector of float) | ||||||
|  | 0:15            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:15            Constant: | ||||||
|  | 0:15              1 (const int) | ||||||
| 0:15          Constant: | 0:15          Constant: | ||||||
| 0:15            0 (const int) | 0:15            0 (const int) | ||||||
| 0:?         Constant: | 0:?         Constant: | ||||||
| @ -20,18 +26,27 @@ Shader version: 500 | |||||||
| 0:?           0.000000 | 0:?           0.000000 | ||||||
| 0:16      move second child to first child ( temp 2-component vector of float) | 0:16      move second child to first child ( temp 2-component vector of float) | ||||||
| 0:16        direct index ( temp 2-component vector of float) | 0:16        direct index ( temp 2-component vector of float) | ||||||
| 0:?           'packed.uv' ( temp 2-element array of 2-component vector of float) | 0:16          uv: direct index for structure ( temp 2-element array of 2-component vector of float) | ||||||
|  | 0:16            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:16            Constant: | ||||||
|  | 0:16              2 (const int) | ||||||
| 0:16          Constant: | 0:16          Constant: | ||||||
| 0:16            0 (const int) | 0:16            0 (const int) | ||||||
| 0:?         Constant: | 0:?         Constant: | ||||||
| 0:?           0.000000 | 0:?           0.000000 | ||||||
| 0:?           1.000000 | 0:?           1.000000 | ||||||
| 0:17      move second child to first child ( temp float) | 0:17      move second child to first child ( temp float) | ||||||
| 0:?         'packed.x' ( temp float) | 0:17        x: direct index for structure ( temp float) | ||||||
|  | 0:17          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:17          Constant: | ||||||
|  | 0:17            3 (const int) | ||||||
| 0:17        Constant: | 0:17        Constant: | ||||||
| 0:17          1.000000 | 0:17          1.000000 | ||||||
| 0:18      move second child to first child ( temp int) | 0:18      move second child to first child ( temp int) | ||||||
| 0:?         'packed.n' ( temp int) | 0:18        n: direct index for structure ( temp int) | ||||||
|  | 0:18          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:18          Constant: | ||||||
|  | 0:18            4 (const int) | ||||||
| 0:18        Constant: | 0:18        Constant: | ||||||
| 0:18          3 (const int) | 0:18          3 (const int) | ||||||
| 0:20      Sequence | 0:20      Sequence | ||||||
| @ -50,7 +65,10 @@ Shader version: 500 | |||||||
| 0:21            add second child into first child ( temp 2-component vector of float) | 0:21            add second child into first child ( temp 2-component vector of float) | ||||||
| 0:21              vector swizzle ( temp 2-component vector of float) | 0:21              vector swizzle ( temp 2-component vector of float) | ||||||
| 0:21                indirect index ( temp 3-component vector of float) | 0:21                indirect index ( temp 3-component vector of float) | ||||||
| 0:?                   'packed.pos' ( temp 3-element array of 3-component vector of float) | 0:21                  pos: direct index for structure ( temp 3-element array of 3-component vector of float) | ||||||
|  | 0:21                    'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:21                    Constant: | ||||||
|  | 0:21                      1 (const int) | ||||||
| 0:21                  'i' ( temp int) | 0:21                  'i' ( temp int) | ||||||
| 0:21                Sequence | 0:21                Sequence | ||||||
| 0:21                  Constant: | 0:21                  Constant: | ||||||
| @ -58,34 +76,27 @@ Shader version: 500 | |||||||
| 0:21                  Constant: | 0:21                  Constant: | ||||||
| 0:21                    1 (const int) | 0:21                    1 (const int) | ||||||
| 0:21              indirect index ( temp 2-component vector of float) | 0:21              indirect index ( temp 2-component vector of float) | ||||||
| 0:?                 'packed.uv' ( temp 2-element array of 2-component vector of float) | 0:21                uv: direct index for structure ( temp 2-element array of 2-component vector of float) | ||||||
|  | 0:21                  'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:21                  Constant: | ||||||
|  | 0:21                    2 (const int) | ||||||
| 0:21                'i' ( temp int) | 0:21                'i' ( temp int) | ||||||
| 0:20          Loop Terminal Expression | 0:20          Loop Terminal Expression | ||||||
| 0:20          Pre-Increment ( temp int) | 0:20          Pre-Increment ( temp int) | ||||||
| 0:20            'i' ( temp int) | 0:20            'i' ( temp int) | ||||||
| 0:24      Sequence | 0:24      Sequence | ||||||
| 0:24        Sequence | 0:24        move second child to first child ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
| 0:24          move second child to first child ( temp texture2D) | 0:24          'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
| 0:?             'packed2.tex' ( temp texture2D) | 0:24          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
| 0:?             'packed.tex' ( temp texture2D) |  | ||||||
| 0:24          move second child to first child ( temp 3-element array of 3-component vector of float) |  | ||||||
| 0:?             'packed2.pos' ( temp 3-element array of 3-component vector of float) |  | ||||||
| 0:?             'packed.pos' ( temp 3-element array of 3-component vector of float) |  | ||||||
| 0:24          move second child to first child ( temp 2-element array of 2-component vector of float) |  | ||||||
| 0:?             'packed2.uv' ( temp 2-element array of 2-component vector of float) |  | ||||||
| 0:?             'packed.uv' ( temp 2-element array of 2-component vector of float) |  | ||||||
| 0:24          move second child to first child ( temp float) |  | ||||||
| 0:?             'packed2.x' ( temp float) |  | ||||||
| 0:?             'packed.x' ( temp float) |  | ||||||
| 0:24          move second child to first child ( temp int) |  | ||||||
| 0:?             'packed2.n' ( temp int) |  | ||||||
| 0:?             'packed.n' ( temp int) |  | ||||||
| 0:26      Branch: Return with expression | 0:26      Branch: Return with expression | ||||||
| 0:26        add ( temp 4-component vector of float) | 0:26        add ( temp 4-component vector of float) | ||||||
| 0:26          'pos' ( in 4-component vector of float) | 0:26          'pos' ( in 4-component vector of float) | ||||||
| 0:?           Construct vec4 ( temp 4-component vector of float) | 0:?           Construct vec4 ( temp 4-component vector of float) | ||||||
| 0:26            direct index ( temp 3-component vector of float) | 0:26            direct index ( temp 3-component vector of float) | ||||||
| 0:?               'packed2.pos' ( temp 3-element array of 3-component vector of float) | 0:26              pos: direct index for structure ( temp 3-element array of 3-component vector of float) | ||||||
|  | 0:26                'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:26                Constant: | ||||||
|  | 0:26                  1 (const int) | ||||||
| 0:26              Constant: | 0:26              Constant: | ||||||
| 0:26                0 (const int) | 0:26                0 (const int) | ||||||
| 0:26            Constant: | 0:26            Constant: | ||||||
| @ -116,11 +127,17 @@ Shader version: 500 | |||||||
| 0:12      'pos' ( in 4-component vector of float) | 0:12      'pos' ( in 4-component vector of float) | ||||||
| 0:?     Sequence | 0:?     Sequence | ||||||
| 0:14      move second child to first child ( temp texture2D) | 0:14      move second child to first child ( temp texture2D) | ||||||
| 0:?         'packed.tex' ( temp texture2D) | 0:14        tex: direct index for structure ( temp texture2D) | ||||||
|  | 0:14          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:14          Constant: | ||||||
|  | 0:14            0 (const int) | ||||||
| 0:14        'tex' ( uniform texture2D) | 0:14        'tex' ( uniform texture2D) | ||||||
| 0:15      move second child to first child ( temp 3-component vector of float) | 0:15      move second child to first child ( temp 3-component vector of float) | ||||||
| 0:15        direct index ( temp 3-component vector of float) | 0:15        direct index ( temp 3-component vector of float) | ||||||
| 0:?           'packed.pos' ( temp 3-element array of 3-component vector of float) | 0:15          pos: direct index for structure ( temp 3-element array of 3-component vector of float) | ||||||
|  | 0:15            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:15            Constant: | ||||||
|  | 0:15              1 (const int) | ||||||
| 0:15          Constant: | 0:15          Constant: | ||||||
| 0:15            0 (const int) | 0:15            0 (const int) | ||||||
| 0:?         Constant: | 0:?         Constant: | ||||||
| @ -129,18 +146,27 @@ Shader version: 500 | |||||||
| 0:?           0.000000 | 0:?           0.000000 | ||||||
| 0:16      move second child to first child ( temp 2-component vector of float) | 0:16      move second child to first child ( temp 2-component vector of float) | ||||||
| 0:16        direct index ( temp 2-component vector of float) | 0:16        direct index ( temp 2-component vector of float) | ||||||
| 0:?           'packed.uv' ( temp 2-element array of 2-component vector of float) | 0:16          uv: direct index for structure ( temp 2-element array of 2-component vector of float) | ||||||
|  | 0:16            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:16            Constant: | ||||||
|  | 0:16              2 (const int) | ||||||
| 0:16          Constant: | 0:16          Constant: | ||||||
| 0:16            0 (const int) | 0:16            0 (const int) | ||||||
| 0:?         Constant: | 0:?         Constant: | ||||||
| 0:?           0.000000 | 0:?           0.000000 | ||||||
| 0:?           1.000000 | 0:?           1.000000 | ||||||
| 0:17      move second child to first child ( temp float) | 0:17      move second child to first child ( temp float) | ||||||
| 0:?         'packed.x' ( temp float) | 0:17        x: direct index for structure ( temp float) | ||||||
|  | 0:17          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:17          Constant: | ||||||
|  | 0:17            3 (const int) | ||||||
| 0:17        Constant: | 0:17        Constant: | ||||||
| 0:17          1.000000 | 0:17          1.000000 | ||||||
| 0:18      move second child to first child ( temp int) | 0:18      move second child to first child ( temp int) | ||||||
| 0:?         'packed.n' ( temp int) | 0:18        n: direct index for structure ( temp int) | ||||||
|  | 0:18          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:18          Constant: | ||||||
|  | 0:18            4 (const int) | ||||||
| 0:18        Constant: | 0:18        Constant: | ||||||
| 0:18          3 (const int) | 0:18          3 (const int) | ||||||
| 0:20      Sequence | 0:20      Sequence | ||||||
| @ -159,7 +185,10 @@ Shader version: 500 | |||||||
| 0:21            add second child into first child ( temp 2-component vector of float) | 0:21            add second child into first child ( temp 2-component vector of float) | ||||||
| 0:21              vector swizzle ( temp 2-component vector of float) | 0:21              vector swizzle ( temp 2-component vector of float) | ||||||
| 0:21                indirect index ( temp 3-component vector of float) | 0:21                indirect index ( temp 3-component vector of float) | ||||||
| 0:?                   'packed.pos' ( temp 3-element array of 3-component vector of float) | 0:21                  pos: direct index for structure ( temp 3-element array of 3-component vector of float) | ||||||
|  | 0:21                    'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:21                    Constant: | ||||||
|  | 0:21                      1 (const int) | ||||||
| 0:21                  'i' ( temp int) | 0:21                  'i' ( temp int) | ||||||
| 0:21                Sequence | 0:21                Sequence | ||||||
| 0:21                  Constant: | 0:21                  Constant: | ||||||
| @ -167,34 +196,27 @@ Shader version: 500 | |||||||
| 0:21                  Constant: | 0:21                  Constant: | ||||||
| 0:21                    1 (const int) | 0:21                    1 (const int) | ||||||
| 0:21              indirect index ( temp 2-component vector of float) | 0:21              indirect index ( temp 2-component vector of float) | ||||||
| 0:?                 'packed.uv' ( temp 2-element array of 2-component vector of float) | 0:21                uv: direct index for structure ( temp 2-element array of 2-component vector of float) | ||||||
|  | 0:21                  'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:21                  Constant: | ||||||
|  | 0:21                    2 (const int) | ||||||
| 0:21                'i' ( temp int) | 0:21                'i' ( temp int) | ||||||
| 0:20          Loop Terminal Expression | 0:20          Loop Terminal Expression | ||||||
| 0:20          Pre-Increment ( temp int) | 0:20          Pre-Increment ( temp int) | ||||||
| 0:20            'i' ( temp int) | 0:20            'i' ( temp int) | ||||||
| 0:24      Sequence | 0:24      Sequence | ||||||
| 0:24        Sequence | 0:24        move second child to first child ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
| 0:24          move second child to first child ( temp texture2D) | 0:24          'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
| 0:?             'packed2.tex' ( temp texture2D) | 0:24          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
| 0:?             'packed.tex' ( temp texture2D) |  | ||||||
| 0:24          move second child to first child ( temp 3-element array of 3-component vector of float) |  | ||||||
| 0:?             'packed2.pos' ( temp 3-element array of 3-component vector of float) |  | ||||||
| 0:?             'packed.pos' ( temp 3-element array of 3-component vector of float) |  | ||||||
| 0:24          move second child to first child ( temp 2-element array of 2-component vector of float) |  | ||||||
| 0:?             'packed2.uv' ( temp 2-element array of 2-component vector of float) |  | ||||||
| 0:?             'packed.uv' ( temp 2-element array of 2-component vector of float) |  | ||||||
| 0:24          move second child to first child ( temp float) |  | ||||||
| 0:?             'packed2.x' ( temp float) |  | ||||||
| 0:?             'packed.x' ( temp float) |  | ||||||
| 0:24          move second child to first child ( temp int) |  | ||||||
| 0:?             'packed2.n' ( temp int) |  | ||||||
| 0:?             'packed.n' ( temp int) |  | ||||||
| 0:26      Branch: Return with expression | 0:26      Branch: Return with expression | ||||||
| 0:26        add ( temp 4-component vector of float) | 0:26        add ( temp 4-component vector of float) | ||||||
| 0:26          'pos' ( in 4-component vector of float) | 0:26          'pos' ( in 4-component vector of float) | ||||||
| 0:?           Construct vec4 ( temp 4-component vector of float) | 0:?           Construct vec4 ( temp 4-component vector of float) | ||||||
| 0:26            direct index ( temp 3-component vector of float) | 0:26            direct index ( temp 3-component vector of float) | ||||||
| 0:?               'packed2.pos' ( temp 3-element array of 3-component vector of float) | 0:26              pos: direct index for structure ( temp 3-element array of 3-component vector of float) | ||||||
|  | 0:26                'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n}) | ||||||
|  | 0:26                Constant: | ||||||
|  | 0:26                  1 (const int) | ||||||
| 0:26              Constant: | 0:26              Constant: | ||||||
| 0:26                0 (const int) | 0:26                0 (const int) | ||||||
| 0:26            Constant: | 0:26            Constant: | ||||||
| @ -216,35 +238,33 @@ Shader version: 500 | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 97 | // Id's are bound by 90 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 90 93 |                               EntryPoint Vertex 4  "main" 83 86 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 11  "@main(vf4;" |                               Name 11  "@main(vf4;" | ||||||
|                               Name 10  "pos" |                               Name 10  "pos" | ||||||
|                               Name 15  "packed.tex" |                               Name 22  "Packed" | ||||||
|                               Name 17  "tex" |                               MemberName 22(Packed) 0  "tex" | ||||||
|                               Name 24  "packed.pos" |                               MemberName 22(Packed) 1  "pos" | ||||||
|                               Name 35  "packed.uv" |                               MemberName 22(Packed) 2  "uv" | ||||||
|                               Name 41  "packed.x" |                               MemberName 22(Packed) 3  "x" | ||||||
|                               Name 43  "packed.n" |                               MemberName 22(Packed) 4  "n" | ||||||
|                               Name 45  "i" |                               Name 24  "packed" | ||||||
|                               Name 68  "packed2.tex" |                               Name 27  "tex" | ||||||
|                               Name 70  "packed2.pos" |                               Name 47  "i" | ||||||
|                               Name 72  "packed2.uv" |                               Name 69  "packed2" | ||||||
|                               Name 74  "packed2.x" |                               Name 81  "pos" | ||||||
|                               Name 76  "packed2.n" |                               Name 83  "pos" | ||||||
|                               Name 88  "pos" |                               Name 86  "@entryPointOutput" | ||||||
|                               Name 90  "pos" |                               Name 87  "param" | ||||||
|                               Name 93  "@entryPointOutput" |                               Decorate 27(tex) DescriptorSet 0 | ||||||
|                               Name 94  "param" |                               Decorate 83(pos) Location 0 | ||||||
|                               Decorate 17(tex) DescriptorSet 0 |                               Decorate 86(@entryPointOutput) BuiltIn Position | ||||||
|                               Decorate 90(pos) Location 0 |  | ||||||
|                               Decorate 93(@entryPointOutput) BuiltIn Position |  | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
| @ -252,115 +272,104 @@ Shader version: 500 | |||||||
|                8:             TypePointer Function 7(fvec4) |                8:             TypePointer Function 7(fvec4) | ||||||
|                9:             TypeFunction 7(fvec4) 8(ptr) |                9:             TypeFunction 7(fvec4) 8(ptr) | ||||||
|               13:             TypeImage 6(float) 2D sampled format:Unknown |               13:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               14:             TypePointer Function 13 |               14:             TypeVector 6(float) 3 | ||||||
|               16:             TypePointer UniformConstant 13 |               15:             TypeInt 32 0 | ||||||
|          17(tex):     16(ptr) Variable UniformConstant |               16:     15(int) Constant 3 | ||||||
|               19:             TypeVector 6(float) 3 |               17:             TypeArray 14(fvec3) 16 | ||||||
|               20:             TypeInt 32 0 |               18:             TypeVector 6(float) 2 | ||||||
|               21:     20(int) Constant 3 |               19:     15(int) Constant 2 | ||||||
|               22:             TypeArray 19(fvec3) 21 |               20:             TypeArray 18(fvec2) 19 | ||||||
|               23:             TypePointer Function 22 |               21:             TypeInt 32 1 | ||||||
|               25:             TypeInt 32 1 |       22(Packed):             TypeStruct 13 17 20 6(float) 21(int) | ||||||
|               26:     25(int) Constant 0 |               23:             TypePointer Function 22(Packed) | ||||||
|               27:    6(float) Constant 0 |               25:     21(int) Constant 0 | ||||||
|               28:   19(fvec3) ConstantComposite 27 27 27 |               26:             TypePointer UniformConstant 13 | ||||||
|               29:             TypePointer Function 19(fvec3) |          27(tex):     26(ptr) Variable UniformConstant | ||||||
|               31:             TypeVector 6(float) 2 |               29:             TypePointer Function 13 | ||||||
|               32:     20(int) Constant 2 |               31:     21(int) Constant 1 | ||||||
|               33:             TypeArray 31(fvec2) 32 |               32:    6(float) Constant 0 | ||||||
|               34:             TypePointer Function 33 |               33:   14(fvec3) ConstantComposite 32 32 32 | ||||||
|               36:    6(float) Constant 1065353216 |               34:             TypePointer Function 14(fvec3) | ||||||
|               37:   31(fvec2) ConstantComposite 27 36 |               36:     21(int) Constant 2 | ||||||
|               38:             TypePointer Function 31(fvec2) |               37:    6(float) Constant 1065353216 | ||||||
|               40:             TypePointer Function 6(float) |               38:   18(fvec2) ConstantComposite 32 37 | ||||||
|               42:             TypePointer Function 25(int) |               39:             TypePointer Function 18(fvec2) | ||||||
|               44:     25(int) Constant 3 |               41:     21(int) Constant 3 | ||||||
|               52:     25(int) Constant 1 |               42:             TypePointer Function 6(float) | ||||||
|               53:             TypeBool |               44:     21(int) Constant 4 | ||||||
|               89:             TypePointer Input 7(fvec4) |               45:             TypePointer Function 21(int) | ||||||
|          90(pos):     89(ptr) Variable Input |               54:             TypeBool | ||||||
|               92:             TypePointer Output 7(fvec4) |               82:             TypePointer Input 7(fvec4) | ||||||
| 93(@entryPointOutput):     92(ptr) Variable Output |          83(pos):     82(ptr) Variable Input | ||||||
|  |               85:             TypePointer Output 7(fvec4) | ||||||
|  | 86(@entryPointOutput):     85(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|          88(pos):      8(ptr) Variable Function |          81(pos):      8(ptr) Variable Function | ||||||
|        94(param):      8(ptr) Variable Function |        87(param):      8(ptr) Variable Function | ||||||
|               91:    7(fvec4) Load 90(pos) |               84:    7(fvec4) Load 83(pos) | ||||||
|                               Store 88(pos) 91 |                               Store 81(pos) 84 | ||||||
|               95:    7(fvec4) Load 88(pos) |               88:    7(fvec4) Load 81(pos) | ||||||
|                               Store 94(param) 95 |                               Store 87(param) 88 | ||||||
|               96:    7(fvec4) FunctionCall 11(@main(vf4;) 94(param) |               89:    7(fvec4) FunctionCall 11(@main(vf4;) 87(param) | ||||||
|                               Store 93(@entryPointOutput) 96 |                               Store 86(@entryPointOutput) 89 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|   11(@main(vf4;):    7(fvec4) Function None 9 |   11(@main(vf4;):    7(fvec4) Function None 9 | ||||||
|          10(pos):      8(ptr) FunctionParameter |          10(pos):      8(ptr) FunctionParameter | ||||||
|               12:             Label |               12:             Label | ||||||
|   15(packed.tex):     14(ptr) Variable Function |       24(packed):     23(ptr) Variable Function | ||||||
|   24(packed.pos):     23(ptr) Variable Function |            47(i):     45(ptr) Variable Function | ||||||
|    35(packed.uv):     34(ptr) Variable Function |      69(packed2):     23(ptr) Variable Function | ||||||
|     41(packed.x):     40(ptr) Variable Function |               28:          13 Load 27(tex) | ||||||
|     43(packed.n):     42(ptr) Variable Function |               30:     29(ptr) AccessChain 24(packed) 25 | ||||||
|            45(i):     42(ptr) Variable Function |  | ||||||
|  68(packed2.tex):     14(ptr) Variable Function |  | ||||||
|  70(packed2.pos):     23(ptr) Variable Function |  | ||||||
|   72(packed2.uv):     34(ptr) Variable Function |  | ||||||
|    74(packed2.x):     40(ptr) Variable Function |  | ||||||
|    76(packed2.n):     42(ptr) Variable Function |  | ||||||
|               18:          13 Load 17(tex) |  | ||||||
|                               Store 15(packed.tex) 18 |  | ||||||
|               30:     29(ptr) AccessChain 24(packed.pos) 26 |  | ||||||
|                               Store 30 28 |                               Store 30 28 | ||||||
|               39:     38(ptr) AccessChain 35(packed.uv) 26 |               35:     34(ptr) AccessChain 24(packed) 31 25 | ||||||
|                               Store 39 37 |                               Store 35 33 | ||||||
|                               Store 41(packed.x) 36 |               40:     39(ptr) AccessChain 24(packed) 36 25 | ||||||
|                               Store 43(packed.n) 44 |                               Store 40 38 | ||||||
|                               Store 45(i) 26 |               43:     42(ptr) AccessChain 24(packed) 41 | ||||||
|                               Branch 46 |                               Store 43 37 | ||||||
|               46:             Label |               46:     45(ptr) AccessChain 24(packed) 44 | ||||||
|                               LoopMerge 48 49 None |                               Store 46 41 | ||||||
|                               Branch 50 |                               Store 47(i) 25 | ||||||
|               50:             Label |                               Branch 48 | ||||||
|               51:     25(int) Load 45(i) |  | ||||||
|               54:    53(bool) SLessThan 51 52 |  | ||||||
|                               BranchConditional 54 47 48 |  | ||||||
|               47:               Label |  | ||||||
|               55:     25(int)   Load 45(i) |  | ||||||
|               56:     25(int)   Load 45(i) |  | ||||||
|               57:     38(ptr)   AccessChain 35(packed.uv) 56 |  | ||||||
|               58:   31(fvec2)   Load 57 |  | ||||||
|               59:     29(ptr)   AccessChain 24(packed.pos) 55 |  | ||||||
|               60:   19(fvec3)   Load 59 |  | ||||||
|               61:   31(fvec2)   VectorShuffle 60 60 0 1 |  | ||||||
|               62:   31(fvec2)   FAdd 61 58 |  | ||||||
|               63:     29(ptr)   AccessChain 24(packed.pos) 55 |  | ||||||
|               64:   19(fvec3)   Load 63 |  | ||||||
|               65:   19(fvec3)   VectorShuffle 64 62 3 4 2 |  | ||||||
|                                 Store 63 65 |  | ||||||
|                                 Branch 49 |  | ||||||
|               49:               Label |  | ||||||
|               66:     25(int)   Load 45(i) |  | ||||||
|               67:     25(int)   IAdd 66 52 |  | ||||||
|                                 Store 45(i) 67 |  | ||||||
|                                 Branch 46 |  | ||||||
|               48:             Label |               48:             Label | ||||||
|               69:          13 Load 15(packed.tex) |                               LoopMerge 50 51 None | ||||||
|                               Store 68(packed2.tex) 69 |                               Branch 52 | ||||||
|               71:          22 Load 24(packed.pos) |               52:             Label | ||||||
|                               Store 70(packed2.pos) 71 |               53:     21(int) Load 47(i) | ||||||
|               73:          33 Load 35(packed.uv) |               55:    54(bool) SLessThan 53 31 | ||||||
|                               Store 72(packed2.uv) 73 |                               BranchConditional 55 49 50 | ||||||
|               75:    6(float) Load 41(packed.x) |               49:               Label | ||||||
|                               Store 74(packed2.x) 75 |               56:     21(int)   Load 47(i) | ||||||
|               77:     25(int) Load 43(packed.n) |               57:     21(int)   Load 47(i) | ||||||
|                               Store 76(packed2.n) 77 |               58:     39(ptr)   AccessChain 24(packed) 36 57 | ||||||
|               78:    7(fvec4) Load 10(pos) |               59:   18(fvec2)   Load 58 | ||||||
|               79:     29(ptr) AccessChain 70(packed2.pos) 26 |               60:     34(ptr)   AccessChain 24(packed) 31 56 | ||||||
|               80:   19(fvec3) Load 79 |               61:   14(fvec3)   Load 60 | ||||||
|               81:    6(float) CompositeExtract 80 0 |               62:   18(fvec2)   VectorShuffle 61 61 0 1 | ||||||
|               82:    6(float) CompositeExtract 80 1 |               63:   18(fvec2)   FAdd 62 59 | ||||||
|               83:    6(float) CompositeExtract 80 2 |               64:     34(ptr)   AccessChain 24(packed) 31 56 | ||||||
|               84:    7(fvec4) CompositeConstruct 81 82 83 27 |               65:   14(fvec3)   Load 64 | ||||||
|               85:    7(fvec4) FAdd 78 84 |               66:   14(fvec3)   VectorShuffle 65 63 3 4 2 | ||||||
|                               ReturnValue 85 |                                 Store 64 66 | ||||||
|  |                                 Branch 51 | ||||||
|  |               51:               Label | ||||||
|  |               67:     21(int)   Load 47(i) | ||||||
|  |               68:     21(int)   IAdd 67 31 | ||||||
|  |                                 Store 47(i) 68 | ||||||
|  |                                 Branch 48 | ||||||
|  |               50:             Label | ||||||
|  |               70:  22(Packed) Load 24(packed) | ||||||
|  |                               Store 69(packed2) 70 | ||||||
|  |               71:    7(fvec4) Load 10(pos) | ||||||
|  |               72:     34(ptr) AccessChain 69(packed2) 31 25 | ||||||
|  |               73:   14(fvec3) Load 72 | ||||||
|  |               74:    6(float) CompositeExtract 73 0 | ||||||
|  |               75:    6(float) CompositeExtract 73 1 | ||||||
|  |               76:    6(float) CompositeExtract 73 2 | ||||||
|  |               77:    7(fvec4) CompositeConstruct 74 75 76 32 | ||||||
|  |               78:    7(fvec4) FAdd 71 77 | ||||||
|  |                               ReturnValue 78 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -9,13 +9,19 @@ Shader version: 500 | |||||||
| 0:13      Sequence | 0:13      Sequence | ||||||
| 0:13        move second child to first child ( temp texture2D) | 0:13        move second child to first child ( temp texture2D) | ||||||
| 0:13          direct index ( temp texture2D) | 0:13          direct index ( temp texture2D) | ||||||
| 0:?             'packed.membTex' ( temp 2-element array of texture2D) | 0:13            membTex: direct index for structure ( temp 2-element array of texture2D) | ||||||
|  | 0:13              'packed' ( temp structure{ temp int a,  temp 2-element array of texture2D membTex,  temp int b}) | ||||||
|  | 0:13              Constant: | ||||||
|  | 0:13                1 (const int) | ||||||
| 0:13            Constant: | 0:13            Constant: | ||||||
| 0:13              0 (const int) | 0:13              0 (const int) | ||||||
| 0:?           'tex[0]' ( uniform texture2D) | 0:?           'tex[0]' ( uniform texture2D) | ||||||
| 0:13        move second child to first child ( temp texture2D) | 0:13        move second child to first child ( temp texture2D) | ||||||
| 0:13          direct index ( temp texture2D) | 0:13          direct index ( temp texture2D) | ||||||
| 0:?             'packed.membTex' ( temp 2-element array of texture2D) | 0:13            membTex: direct index for structure ( temp 2-element array of texture2D) | ||||||
|  | 0:13              'packed' ( temp structure{ temp int a,  temp 2-element array of texture2D membTex,  temp int b}) | ||||||
|  | 0:13              Constant: | ||||||
|  | 0:13                1 (const int) | ||||||
| 0:13            Constant: | 0:13            Constant: | ||||||
| 0:13              1 (const int) | 0:13              1 (const int) | ||||||
| 0:?           'tex[1]' ( uniform texture2D) | 0:?           'tex[1]' ( uniform texture2D) | ||||||
| @ -50,13 +56,19 @@ Shader version: 500 | |||||||
| 0:13      Sequence | 0:13      Sequence | ||||||
| 0:13        move second child to first child ( temp texture2D) | 0:13        move second child to first child ( temp texture2D) | ||||||
| 0:13          direct index ( temp texture2D) | 0:13          direct index ( temp texture2D) | ||||||
| 0:?             'packed.membTex' ( temp 2-element array of texture2D) | 0:13            membTex: direct index for structure ( temp 2-element array of texture2D) | ||||||
|  | 0:13              'packed' ( temp structure{ temp int a,  temp 2-element array of texture2D membTex,  temp int b}) | ||||||
|  | 0:13              Constant: | ||||||
|  | 0:13                1 (const int) | ||||||
| 0:13            Constant: | 0:13            Constant: | ||||||
| 0:13              0 (const int) | 0:13              0 (const int) | ||||||
| 0:?           'tex[0]' ( uniform texture2D) | 0:?           'tex[0]' ( uniform texture2D) | ||||||
| 0:13        move second child to first child ( temp texture2D) | 0:13        move second child to first child ( temp texture2D) | ||||||
| 0:13          direct index ( temp texture2D) | 0:13          direct index ( temp texture2D) | ||||||
| 0:?             'packed.membTex' ( temp 2-element array of texture2D) | 0:13            membTex: direct index for structure ( temp 2-element array of texture2D) | ||||||
|  | 0:13              'packed' ( temp structure{ temp int a,  temp 2-element array of texture2D membTex,  temp int b}) | ||||||
|  | 0:13              Constant: | ||||||
|  | 0:13                1 (const int) | ||||||
| 0:13            Constant: | 0:13            Constant: | ||||||
| 0:13              1 (const int) | 0:13              1 (const int) | ||||||
| 0:?           'tex[1]' ( uniform texture2D) | 0:?           'tex[1]' ( uniform texture2D) | ||||||
| @ -80,71 +92,76 @@ Shader version: 500 | |||||||
| 
 | 
 | ||||||
| // Module Version 10000 | // Module Version 10000 | ||||||
| // Generated by (magic number): 80002 | // Generated by (magic number): 80002 | ||||||
| // Id's are bound by 42 | // Id's are bound by 43 | ||||||
| 
 | 
 | ||||||
|                               Capability Shader |                               Capability Shader | ||||||
|                1:             ExtInstImport  "GLSL.std.450" |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|                               MemoryModel Logical GLSL450 |                               MemoryModel Logical GLSL450 | ||||||
|                               EntryPoint Vertex 4  "main" 35 38 |                               EntryPoint Vertex 4  "main" 36 39 | ||||||
|                               Source HLSL 500 |                               Source HLSL 500 | ||||||
|                               Name 4  "main" |                               Name 4  "main" | ||||||
|                               Name 11  "@main(vf4;" |                               Name 11  "@main(vf4;" | ||||||
|                               Name 10  "pos" |                               Name 10  "pos" | ||||||
|                               Name 18  "packed.membTex" |                               Name 18  "Packed" | ||||||
|                               Name 22  "tex[0]" |                               MemberName 18(Packed) 0  "a" | ||||||
|                               Name 27  "tex[1]" |                               MemberName 18(Packed) 1  "membTex" | ||||||
|                               Name 33  "pos" |                               MemberName 18(Packed) 2  "b" | ||||||
|                               Name 35  "pos" |                               Name 20  "packed" | ||||||
|                               Name 38  "@entryPointOutput" |                               Name 24  "tex[0]" | ||||||
|                               Name 39  "param" |                               Name 28  "tex[1]" | ||||||
|                               Decorate 22(tex[0]) DescriptorSet 0 |                               Name 34  "pos" | ||||||
|                               Decorate 27(tex[1]) DescriptorSet 0 |                               Name 36  "pos" | ||||||
|                               Decorate 35(pos) Location 0 |                               Name 39  "@entryPointOutput" | ||||||
|                               Decorate 38(@entryPointOutput) BuiltIn Position |                               Name 40  "param" | ||||||
|  |                               Decorate 24(tex[0]) DescriptorSet 0 | ||||||
|  |                               Decorate 28(tex[1]) DescriptorSet 0 | ||||||
|  |                               Decorate 36(pos) Location 0 | ||||||
|  |                               Decorate 39(@entryPointOutput) BuiltIn Position | ||||||
|                2:             TypeVoid |                2:             TypeVoid | ||||||
|                3:             TypeFunction 2 |                3:             TypeFunction 2 | ||||||
|                6:             TypeFloat 32 |                6:             TypeFloat 32 | ||||||
|                7:             TypeVector 6(float) 4 |                7:             TypeVector 6(float) 4 | ||||||
|                8:             TypePointer Function 7(fvec4) |                8:             TypePointer Function 7(fvec4) | ||||||
|                9:             TypeFunction 7(fvec4) 8(ptr) |                9:             TypeFunction 7(fvec4) 8(ptr) | ||||||
|               13:             TypeImage 6(float) 2D sampled format:Unknown |               13:             TypeInt 32 1 | ||||||
|               14:             TypeInt 32 0 |               14:             TypeImage 6(float) 2D sampled format:Unknown | ||||||
|               15:     14(int) Constant 2 |               15:             TypeInt 32 0 | ||||||
|               16:             TypeArray 13 15 |               16:     15(int) Constant 2 | ||||||
|               17:             TypePointer Function 16 |               17:             TypeArray 14 16 | ||||||
|               19:             TypeInt 32 1 |       18(Packed):             TypeStruct 13(int) 17 13(int) | ||||||
|               20:     19(int) Constant 0 |               19:             TypePointer Function 18(Packed) | ||||||
|               21:             TypePointer UniformConstant 13 |               21:     13(int) Constant 1 | ||||||
|       22(tex[0]):     21(ptr) Variable UniformConstant |               22:     13(int) Constant 0 | ||||||
|               24:             TypePointer Function 13 |               23:             TypePointer UniformConstant 14 | ||||||
|               26:     19(int) Constant 1 |       24(tex[0]):     23(ptr) Variable UniformConstant | ||||||
|       27(tex[1]):     21(ptr) Variable UniformConstant |               26:             TypePointer Function 14 | ||||||
|               34:             TypePointer Input 7(fvec4) |       28(tex[1]):     23(ptr) Variable UniformConstant | ||||||
|          35(pos):     34(ptr) Variable Input |               35:             TypePointer Input 7(fvec4) | ||||||
|               37:             TypePointer Output 7(fvec4) |          36(pos):     35(ptr) Variable Input | ||||||
| 38(@entryPointOutput):     37(ptr) Variable Output |               38:             TypePointer Output 7(fvec4) | ||||||
|  | 39(@entryPointOutput):     38(ptr) Variable Output | ||||||
|          4(main):           2 Function None 3 |          4(main):           2 Function None 3 | ||||||
|                5:             Label |                5:             Label | ||||||
|          33(pos):      8(ptr) Variable Function |          34(pos):      8(ptr) Variable Function | ||||||
|        39(param):      8(ptr) Variable Function |        40(param):      8(ptr) Variable Function | ||||||
|               36:    7(fvec4) Load 35(pos) |               37:    7(fvec4) Load 36(pos) | ||||||
|                               Store 33(pos) 36 |                               Store 34(pos) 37 | ||||||
|               40:    7(fvec4) Load 33(pos) |               41:    7(fvec4) Load 34(pos) | ||||||
|                               Store 39(param) 40 |                               Store 40(param) 41 | ||||||
|               41:    7(fvec4) FunctionCall 11(@main(vf4;) 39(param) |               42:    7(fvec4) FunctionCall 11(@main(vf4;) 40(param) | ||||||
|                               Store 38(@entryPointOutput) 41 |                               Store 39(@entryPointOutput) 42 | ||||||
|                               Return |                               Return | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|   11(@main(vf4;):    7(fvec4) Function None 9 |   11(@main(vf4;):    7(fvec4) Function None 9 | ||||||
|          10(pos):      8(ptr) FunctionParameter |          10(pos):      8(ptr) FunctionParameter | ||||||
|               12:             Label |               12:             Label | ||||||
| 18(packed.membTex):     17(ptr) Variable Function |       20(packed):     19(ptr) Variable Function | ||||||
|               23:          13 Load 22(tex[0]) |               25:          14 Load 24(tex[0]) | ||||||
|               25:     24(ptr) AccessChain 18(packed.membTex) 20 |               27:     26(ptr) AccessChain 20(packed) 21 22 | ||||||
|                               Store 25 23 |                               Store 27 25 | ||||||
|               28:          13 Load 27(tex[1]) |               29:          14 Load 28(tex[1]) | ||||||
|               29:     24(ptr) AccessChain 18(packed.membTex) 26 |               30:     26(ptr) AccessChain 20(packed) 21 21 | ||||||
|                               Store 29 28 |                               Store 30 29 | ||||||
|               30:    7(fvec4) Load 10(pos) |               31:    7(fvec4) Load 10(pos) | ||||||
|                               ReturnValue 30 |                               ReturnValue 31 | ||||||
|                               FunctionEnd |                               FunctionEnd | ||||||
|  | |||||||
| @ -22,5 +22,6 @@ float4 main() : SV_TARGET0 | |||||||
|     res += lookUp(tex2); |     res += lookUp(tex2); | ||||||
|     FxaaTex tex3 = tex1; |     FxaaTex tex3 = tex1; | ||||||
|     res += lookUp(tex3); |     res += lookUp(tex3); | ||||||
|  | 
 | ||||||
|     return res; |     return res; | ||||||
| } | } | ||||||
|  | |||||||
| @ -1160,7 +1160,7 @@ bool HlslParseContext::shouldFlatten(const TType& type, TStorageQualifier qualif | |||||||
|         return (type.isArray() && intermediate.getFlattenUniformArrays() && topLevel) || |         return (type.isArray() && intermediate.getFlattenUniformArrays() && topLevel) || | ||||||
|                (type.isStruct() && type.containsOpaque()); |                (type.isStruct() && type.containsOpaque()); | ||||||
|     default: |     default: | ||||||
|         return type.isStruct() && type.containsOpaque(); |         return false; | ||||||
|     }; |     }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 John Kessenich
						John Kessenich