diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index a0a1c834..576607da 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -771,33 +771,41 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T { if (type.getQualifier().isPipeInput()) return spv::StorageClassInput; - else if (type.getQualifier().isPipeOutput()) + if (type.getQualifier().isPipeOutput()) return spv::StorageClassOutput; - else if (type.getBasicType() == glslang::EbtAtomicUint) - return spv::StorageClassAtomicCounter; - else if (type.containsOpaque()) - return spv::StorageClassUniformConstant; - else if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) { + + if (glslangIntermediate->getSource() != glslang::EShSourceHlsl || + type.getQualifier().storage == glslang::EvqUniform) { + if (type.getBasicType() == glslang::EbtAtomicUint) + return spv::StorageClassAtomicCounter; + if (type.containsOpaque()) + return spv::StorageClassUniformConstant; + } + + if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) { builder.addExtension(spv::E_SPV_KHR_storage_buffer_storage_class); return spv::StorageClassStorageBuffer; - } else if (type.getQualifier().isUniformOrBuffer()) { + } + + if (type.getQualifier().isUniformOrBuffer()) { if (type.getQualifier().layoutPushConstant) return spv::StorageClassPushConstant; if (type.getBasicType() == glslang::EbtBlock) return spv::StorageClassUniform; - else - return spv::StorageClassUniformConstant; - } else { - switch (type.getQualifier().storage) { - case glslang::EvqShared: return spv::StorageClassWorkgroup; break; - case glslang::EvqGlobal: return spv::StorageClassPrivate; - case glslang::EvqConstReadOnly: return spv::StorageClassFunction; - case glslang::EvqTemporary: return spv::StorageClassFunction; - default: - assert(0); - return spv::StorageClassFunction; - } + return spv::StorageClassUniformConstant; } + + switch (type.getQualifier().storage) { + case glslang::EvqShared: return spv::StorageClassWorkgroup; + case glslang::EvqGlobal: return spv::StorageClassPrivate; + case glslang::EvqConstReadOnly: return spv::StorageClassFunction; + case glslang::EvqTemporary: return spv::StorageClassFunction; + default: + assert(0); + break; + } + + return spv::StorageClassFunction; } // Return whether or not the given type is something that should be tied to a @@ -2997,15 +3005,21 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF bool implicitThis = (int)parameters.size() > 0 && parameters[0]->getAsSymbolNode()->getName() == glslangIntermediate->implicitThisName; + const auto canPassOriginal = [&](const glslang::TType& paramType, bool firstParam) -> bool { + if (glslangIntermediate->getSource() == glslang::EShSourceHlsl) + return firstParam && implicitThis; + else + return paramType.containsOpaque() || // sampler, etc. + (paramType.getBasicType() == glslang::EbtBlock && + paramType.getQualifier().storage == glslang::EvqBuffer) || // SSBO + (firstParam && implicitThis); // implicit 'this' + }; + paramDecorations.resize(parameters.size()); for (int p = 0; p < (int)parameters.size(); ++p) { const glslang::TType& paramType = parameters[p]->getAsTyped()->getType(); spv::Id typeId = convertGlslangToSpvType(paramType); - // can we pass by reference? - if (paramType.containsOpaque() || // sampler, etc. - (paramType.getBasicType() == glslang::EbtBlock && - paramType.getQualifier().storage == glslang::EvqBuffer) || // SSBO - (p == 0 && implicitThis)) // implicit 'this' + if (canPassOriginal(paramType, p == 0)) typeId = builder.makePointer(TranslateStorageClass(paramType), typeId); else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly) typeId = builder.makePointer(spv::StorageClassFunction, typeId); @@ -3567,8 +3581,10 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg const glslang::TIntermSequence& glslangArgs = node->getSequence(); const glslang::TQualifierList& qualifiers = node->getQualifierList(); - // Encapsulate lvalue logic, used in several places below, for safety. - const auto isLValue = [](int qualifier, const glslang::TType& paramType) -> bool { + // Encapsulate lvalue logic, used in multiple places below, for safety. + const auto isLValue = [&](int qualifier, const glslang::TType& paramType) -> bool { + if (glslangIntermediate->getSource() == glslang::EShSourceHlsl) + return qualifier != glslang::EvqConstReadOnly; return qualifier != glslang::EvqConstReadOnly || paramType.containsOpaque(); }; @@ -3610,9 +3626,10 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg for (int a = 0; a < (int)glslangArgs.size(); ++a) { const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); spv::Id arg; - if (paramType.containsOpaque() || - (paramType.getBasicType() == glslang::EbtBlock && qualifiers[a] == glslang::EvqBuffer) || - (a == 0 && function->hasImplicitThis())) { + if ((a == 0 && function->hasImplicitThis()) || + (glslangIntermediate->getSource() != glslang::EShSourceHlsl && + (paramType.containsOpaque() || + (paramType.getBasicType() == glslang::EbtBlock && qualifiers[a] == glslang::EvqBuffer)))) { builder.setAccessChain(lValues[lValueCount]); arg = builder.accessChainGetLValue(); ++lValueCount; diff --git a/Test/baseResults/hlsl.aliasOpaque.frag.out b/Test/baseResults/hlsl.aliasOpaque.frag.out index aa401703..2ec2678b 100755 --- a/Test/baseResults/hlsl.aliasOpaque.frag.out +++ b/Test/baseResults/hlsl.aliasOpaque.frag.out @@ -110,12 +110,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 53 +// Id's are bound by 59 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 51 + EntryPoint Fragment 4 "main" 57 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -125,25 +125,27 @@ gl_FragCoord origin is upper left Name 16 "s.tex" Name 20 "@main(" Name 35 "os.ss" - Name 36 "gss2" - Name 38 "gss" - Name 40 "os.tex" - Name 41 "gtex" - Name 43 "os.a" - Name 45 "param" - Name 51 "@entryPointOutput" - Decorate 36(gss2) DescriptorSet 0 - Decorate 38(gss) DescriptorSet 0 - Decorate 41(gtex) DescriptorSet 0 - Decorate 51(@entryPointOutput) Location 0 + Name 37 "gss2" + Name 39 "gss" + Name 41 "os.tex" + Name 43 "gtex" + Name 45 "os.a" + Name 47 "param" + Name 49 "param" + Name 51 "param" + Name 57 "@entryPointOutput" + Decorate 37(gss2) DescriptorSet 0 + Decorate 39(gss) DescriptorSet 0 + Decorate 43(gtex) DescriptorSet 0 + Decorate 57(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler - 7: TypePointer UniformConstant 6 + 7: TypePointer Function 6 8: TypeFloat 32 9: TypePointer Function 8(float) 10: TypeImage 8(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 + 11: TypePointer Function 10 12: TypeVector 8(float) 4 13: TypeFunction 12(fvec4) 7(ptr) 9(ptr) 11(ptr) 19: TypeFunction 12(fvec4) @@ -152,18 +154,18 @@ gl_FragCoord origin is upper left 28: 8(float) Constant 1045220557 29: 8(float) Constant 1050253722 30: 27(fvec2) ConstantComposite 28 29 - 35(os.ss): 7(ptr) Variable UniformConstant - 36(gss2): 7(ptr) Variable UniformConstant - 38(gss): 7(ptr) Variable UniformConstant - 40(os.tex): 11(ptr) Variable UniformConstant - 41(gtex): 11(ptr) Variable UniformConstant - 44: 8(float) Constant 1077936128 - 50: TypePointer Output 12(fvec4) -51(@entryPointOutput): 50(ptr) Variable Output + 36: TypePointer UniformConstant 6 + 37(gss2): 36(ptr) Variable UniformConstant + 39(gss): 36(ptr) Variable UniformConstant + 42: TypePointer UniformConstant 10 + 43(gtex): 42(ptr) Variable UniformConstant + 46: 8(float) Constant 1077936128 + 56: TypePointer Output 12(fvec4) +57(@entryPointOutput): 56(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 52: 12(fvec4) FunctionCall 20(@main() - Store 51(@entryPointOutput) 52 + 58: 12(fvec4) FunctionCall 20(@main() + Store 57(@entryPointOutput) 58 Return FunctionEnd 17(osCall(struct-OS-p1-f1-t211;): 12(fvec4) Function None 13 @@ -181,17 +183,25 @@ gl_FragCoord origin is upper left FunctionEnd 20(@main(): 12(fvec4) Function None 19 21: Label - 43(os.a): 9(ptr) Variable Function - 45(param): 9(ptr) Variable Function - 37: 6 Load 36(gss2) - Store 35(os.ss) 37 - 39: 6 Load 38(gss) - Store 35(os.ss) 39 - 42: 10 Load 41(gtex) - Store 40(os.tex) 42 - Store 43(os.a) 44 - 46: 8(float) Load 43(os.a) - Store 45(param) 46 - 47: 12(fvec4) FunctionCall 17(osCall(struct-OS-p1-f1-t211;) 35(os.ss) 45(param) 40(os.tex) - ReturnValue 47 + 35(os.ss): 7(ptr) Variable Function + 41(os.tex): 11(ptr) Variable Function + 45(os.a): 9(ptr) Variable Function + 47(param): 7(ptr) Variable Function + 49(param): 9(ptr) Variable Function + 51(param): 11(ptr) Variable Function + 38: 6 Load 37(gss2) + 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 diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index 74790270..974ca120 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -346,13 +346,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 137 +// Id's are bound by 143 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 128 + EntryPoint Fragment 4 "main" 134 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -367,60 +367,62 @@ gl_FragCoord origin is upper left Name 34 "not_flattened_a" Name 42 "g_tex[1]" Name 45 "g_samp[1]" - Name 61 "local_sampler_array" - Name 63 "g_samp[0]" - Name 68 "g_samp[2]" - Name 71 "local_texture_array" - Name 72 "g_tex[0]" - Name 77 "g_tex[2]" - Name 83 "local_float_array" - Name 89 "$Global" - MemberName 89($Global) 0 "g_mats" - MemberName 89($Global) 1 "g_mats_explicit" - MemberName 89($Global) 2 "g_floats" - Name 91 "" - Name 105 "aggShadow" - Name 112 "aggShadow" - Name 123 "ps_output" - Name 124 "param" - Name 128 "ps_output.color" - Name 131 "g_tex_explicit[0]" - Name 132 "g_tex_explicit[1]" - Name 133 "g_tex_explicit[2]" - Name 134 "g_samp_explicit[0]" - Name 135 "g_samp_explicit[1]" - Name 136 "g_samp_explicit[2]" + Name 63 "local_sampler_array" + Name 65 "g_samp[0]" + Name 70 "g_samp[2]" + Name 73 "local_texture_array" + Name 74 "g_tex[0]" + Name 79 "g_tex[2]" + Name 85 "local_float_array" + Name 91 "$Global" + MemberName 91($Global) 0 "g_mats" + MemberName 91($Global) 1 "g_mats_explicit" + MemberName 91($Global) 2 "g_floats" + Name 93 "" + Name 107 "aggShadow" + Name 114 "aggShadow" + Name 121 "param" + Name 123 "param" + Name 129 "ps_output" + Name 130 "param" + Name 134 "ps_output.color" + Name 137 "g_tex_explicit[0]" + Name 138 "g_tex_explicit[1]" + Name 139 "g_tex_explicit[2]" + Name 140 "g_samp_explicit[0]" + Name 141 "g_samp_explicit[1]" + Name 142 "g_samp_explicit[2]" Decorate 42(g_tex[1]) DescriptorSet 0 Decorate 45(g_samp[1]) DescriptorSet 0 - Decorate 63(g_samp[0]) DescriptorSet 0 - Decorate 68(g_samp[2]) DescriptorSet 0 - Decorate 72(g_tex[0]) DescriptorSet 0 - Decorate 77(g_tex[2]) DescriptorSet 0 - Decorate 86 ArrayStride 48 - Decorate 87 ArrayStride 48 - Decorate 88 ArrayStride 16 - MemberDecorate 89($Global) 0 RowMajor - MemberDecorate 89($Global) 0 Offset 0 - MemberDecorate 89($Global) 0 MatrixStride 16 - MemberDecorate 89($Global) 1 RowMajor - MemberDecorate 89($Global) 1 Offset 192 - MemberDecorate 89($Global) 1 MatrixStride 16 - MemberDecorate 89($Global) 2 Offset 384 - Decorate 89($Global) Block - Decorate 91 DescriptorSet 0 - Decorate 128(ps_output.color) Location 0 - Decorate 131(g_tex_explicit[0]) DescriptorSet 0 - Decorate 131(g_tex_explicit[0]) Binding 1 - Decorate 132(g_tex_explicit[1]) DescriptorSet 0 - Decorate 132(g_tex_explicit[1]) Binding 2 - Decorate 133(g_tex_explicit[2]) DescriptorSet 0 - Decorate 133(g_tex_explicit[2]) Binding 3 - Decorate 134(g_samp_explicit[0]) DescriptorSet 0 - Decorate 134(g_samp_explicit[0]) Binding 5 - Decorate 135(g_samp_explicit[1]) DescriptorSet 0 - Decorate 135(g_samp_explicit[1]) Binding 6 - Decorate 136(g_samp_explicit[2]) DescriptorSet 0 - Decorate 136(g_samp_explicit[2]) Binding 7 + Decorate 65(g_samp[0]) DescriptorSet 0 + Decorate 70(g_samp[2]) DescriptorSet 0 + Decorate 74(g_tex[0]) DescriptorSet 0 + Decorate 79(g_tex[2]) DescriptorSet 0 + Decorate 88 ArrayStride 48 + Decorate 89 ArrayStride 48 + Decorate 90 ArrayStride 16 + MemberDecorate 91($Global) 0 RowMajor + MemberDecorate 91($Global) 0 Offset 0 + MemberDecorate 91($Global) 0 MatrixStride 16 + MemberDecorate 91($Global) 1 RowMajor + MemberDecorate 91($Global) 1 Offset 192 + MemberDecorate 91($Global) 1 MatrixStride 16 + MemberDecorate 91($Global) 2 Offset 384 + Decorate 91($Global) Block + Decorate 93 DescriptorSet 0 + Decorate 134(ps_output.color) Location 0 + Decorate 137(g_tex_explicit[0]) DescriptorSet 0 + Decorate 137(g_tex_explicit[0]) Binding 1 + Decorate 138(g_tex_explicit[1]) DescriptorSet 0 + Decorate 138(g_tex_explicit[1]) Binding 2 + Decorate 139(g_tex_explicit[2]) DescriptorSet 0 + Decorate 139(g_tex_explicit[2]) Binding 3 + Decorate 140(g_samp_explicit[0]) DescriptorSet 0 + Decorate 140(g_samp_explicit[0]) Binding 5 + Decorate 141(g_samp_explicit[1]) DescriptorSet 0 + Decorate 141(g_samp_explicit[1]) Binding 6 + Decorate 142(g_samp_explicit[2]) DescriptorSet 0 + Decorate 142(g_samp_explicit[2]) Binding 7 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -430,10 +432,10 @@ gl_FragCoord origin is upper left 12: TypeInt 32 0 13: 12(int) Constant 3 14: TypeArray 11 13 - 15: TypePointer UniformConstant 14 + 15: TypePointer Function 14 16: TypeSampler 17: TypeArray 16 13 - 18: TypePointer UniformConstant 17 + 18: TypePointer Function 17 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) 24(PS_OUTPUT): TypeStruct 7(fvec4) 25: TypePointer Function 24(PS_OUTPUT) @@ -455,48 +457,46 @@ gl_FragCoord origin is upper left 45(g_samp[1]): 44(ptr) Variable UniformConstant 47: TypeSampledImage 11 49: 6(float) Constant 1045220557 -61(local_sampler_array): 18(ptr) Variable UniformConstant - 62: 30(int) Constant 0 - 63(g_samp[0]): 44(ptr) Variable UniformConstant - 68(g_samp[2]): 44(ptr) Variable UniformConstant -71(local_texture_array): 15(ptr) Variable UniformConstant - 72(g_tex[0]): 41(ptr) Variable UniformConstant - 77(g_tex[2]): 41(ptr) Variable UniformConstant - 80: 12(int) Constant 4 - 81: TypeArray 6(float) 80 - 82: TypePointer Function 81 - 84: TypeVector 6(float) 3 - 85: TypeMatrix 84(fvec3) 3 - 86: TypeArray 85 80 - 87: TypeArray 85 80 - 88: TypeArray 6(float) 80 - 89($Global): TypeStruct 86 87 88 - 90: TypePointer Uniform 89($Global) - 91: 90(ptr) Variable Uniform - 92: TypePointer Uniform 88 - 96: TypePointer Function 6(float) - 105(aggShadow): 15(ptr) Variable UniformConstant - 112(aggShadow): 18(ptr) Variable UniformConstant - 121: TypePointer Function 7(fvec4) - 127: TypePointer Output 7(fvec4) -128(ps_output.color): 127(ptr) Variable Output -131(g_tex_explicit[0]): 41(ptr) Variable UniformConstant -132(g_tex_explicit[1]): 41(ptr) Variable UniformConstant -133(g_tex_explicit[2]): 41(ptr) Variable UniformConstant -134(g_samp_explicit[0]): 44(ptr) Variable UniformConstant -135(g_samp_explicit[1]): 44(ptr) Variable UniformConstant -136(g_samp_explicit[2]): 44(ptr) Variable UniformConstant + 53: TypePointer Function 11 + 56: TypePointer Function 16 + 64: 30(int) Constant 0 + 65(g_samp[0]): 44(ptr) Variable UniformConstant + 70(g_samp[2]): 44(ptr) Variable UniformConstant + 74(g_tex[0]): 41(ptr) Variable UniformConstant + 79(g_tex[2]): 41(ptr) Variable UniformConstant + 82: 12(int) Constant 4 + 83: TypeArray 6(float) 82 + 84: TypePointer Function 83 + 86: TypeVector 6(float) 3 + 87: TypeMatrix 86(fvec3) 3 + 88: TypeArray 87 82 + 89: TypeArray 87 82 + 90: TypeArray 6(float) 82 + 91($Global): TypeStruct 88 89 90 + 92: TypePointer Uniform 91($Global) + 93: 92(ptr) Variable Uniform + 94: TypePointer Uniform 90 + 98: TypePointer Function 6(float) + 127: TypePointer Function 7(fvec4) + 133: TypePointer Output 7(fvec4) +134(ps_output.color): 133(ptr) Variable Output +137(g_tex_explicit[0]): 41(ptr) Variable UniformConstant +138(g_tex_explicit[1]): 41(ptr) Variable UniformConstant +139(g_tex_explicit[2]): 41(ptr) Variable UniformConstant +140(g_samp_explicit[0]): 44(ptr) Variable UniformConstant +141(g_samp_explicit[1]): 44(ptr) Variable UniformConstant +142(g_samp_explicit[2]): 44(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 123(ps_output): 25(ptr) Variable Function - 124(param): 25(ptr) Variable Function + 129(ps_output): 25(ptr) Variable Function + 130(param): 25(ptr) Variable Function Store 34(not_flattened_a) 40 - 125: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 124(param) - 126:24(PS_OUTPUT) Load 124(param) - Store 123(ps_output) 126 - 129: 121(ptr) AccessChain 123(ps_output) 62 - 130: 7(fvec4) Load 129 - Store 128(ps_output.color) 130 + 131: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 130(param) + 132:24(PS_OUTPUT) Load 130(param) + Store 129(ps_output) 132 + 135: 127(ptr) AccessChain 129(ps_output) 64 + 136: 7(fvec4) Load 135 + Store 134(ps_output.color) 136 Return FunctionEnd 9(TestFn1(): 7(fvec4) Function None 8 @@ -511,72 +511,82 @@ gl_FragCoord origin is upper left 20(l_tex): 15(ptr) FunctionParameter 21(l_samp): 18(ptr) FunctionParameter 23: Label - 53: 41(ptr) AccessChain 20(l_tex) 36 - 54: 11 Load 53 - 55: 44(ptr) AccessChain 21(l_samp) 36 - 56: 16 Load 55 - 57: 47 SampledImage 54 56 - 58: 7(fvec4) ImageSampleImplicitLod 57 49 - ReturnValue 58 + 54: 53(ptr) AccessChain 20(l_tex) 36 + 55: 11 Load 54 + 57: 56(ptr) AccessChain 21(l_samp) 36 + 58: 16 Load 57 + 59: 47 SampledImage 55 58 + 60: 7(fvec4) ImageSampleImplicitLod 59 49 + ReturnValue 60 FunctionEnd 28(@main(struct-PS_OUTPUT-vf41;): 2 Function None 26 27(ps_output): 25(ptr) FunctionParameter 29: Label -83(local_float_array): 82(ptr) Variable Function - 64: 16 Load 63(g_samp[0]) - 65: 44(ptr) AccessChain 61(local_sampler_array) 62 - Store 65 64 - 66: 16 Load 45(g_samp[1]) - 67: 44(ptr) AccessChain 61(local_sampler_array) 35 +63(local_sampler_array): 18(ptr) Variable Function +73(local_texture_array): 15(ptr) Variable Function +85(local_float_array): 84(ptr) Variable Function + 107(aggShadow): 15(ptr) Variable Function + 114(aggShadow): 18(ptr) Variable Function + 121(param): 15(ptr) Variable Function + 123(param): 18(ptr) Variable Function + 66: 16 Load 65(g_samp[0]) + 67: 56(ptr) AccessChain 63(local_sampler_array) 64 Store 67 66 - 69: 16 Load 68(g_samp[2]) - 70: 44(ptr) AccessChain 61(local_sampler_array) 36 - Store 70 69 - 73: 11 Load 72(g_tex[0]) - 74: 41(ptr) AccessChain 71(local_texture_array) 62 - Store 74 73 - 75: 11 Load 42(g_tex[1]) - 76: 41(ptr) AccessChain 71(local_texture_array) 35 + 68: 16 Load 45(g_samp[1]) + 69: 56(ptr) AccessChain 63(local_sampler_array) 35 + Store 69 68 + 71: 16 Load 70(g_samp[2]) + 72: 56(ptr) AccessChain 63(local_sampler_array) 36 + Store 72 71 + 75: 11 Load 74(g_tex[0]) + 76: 53(ptr) AccessChain 73(local_texture_array) 64 Store 76 75 - 78: 11 Load 77(g_tex[2]) - 79: 41(ptr) AccessChain 71(local_texture_array) 36 - Store 79 78 - 93: 92(ptr) AccessChain 91 36 - 94: 88 Load 93 - 95: 6(float) CompositeExtract 94 0 - 97: 96(ptr) AccessChain 83(local_float_array) 62 - Store 97 95 - 98: 6(float) CompositeExtract 94 1 - 99: 96(ptr) AccessChain 83(local_float_array) 35 - Store 99 98 - 100: 6(float) CompositeExtract 94 2 - 101: 96(ptr) AccessChain 83(local_float_array) 36 + 77: 11 Load 42(g_tex[1]) + 78: 53(ptr) AccessChain 73(local_texture_array) 35 + Store 78 77 + 80: 11 Load 79(g_tex[2]) + 81: 53(ptr) AccessChain 73(local_texture_array) 36 + Store 81 80 + 95: 94(ptr) AccessChain 93 36 + 96: 90 Load 95 + 97: 6(float) CompositeExtract 96 0 + 99: 98(ptr) AccessChain 85(local_float_array) 64 + Store 99 97 + 100: 6(float) CompositeExtract 96 1 + 101: 98(ptr) AccessChain 85(local_float_array) 35 Store 101 100 - 102: 6(float) CompositeExtract 94 3 - 103: 96(ptr) AccessChain 83(local_float_array) 37 + 102: 6(float) CompositeExtract 96 2 + 103: 98(ptr) AccessChain 85(local_float_array) 36 Store 103 102 - 104: 7(fvec4) FunctionCall 9(TestFn1() - 106: 11 Load 72(g_tex[0]) - 107: 41(ptr) AccessChain 105(aggShadow) 62 - Store 107 106 - 108: 11 Load 42(g_tex[1]) - 109: 41(ptr) AccessChain 105(aggShadow) 35 + 104: 6(float) CompositeExtract 96 3 + 105: 98(ptr) AccessChain 85(local_float_array) 37 + Store 105 104 + 106: 7(fvec4) FunctionCall 9(TestFn1() + 108: 11 Load 74(g_tex[0]) + 109: 53(ptr) AccessChain 107(aggShadow) 64 Store 109 108 - 110: 11 Load 77(g_tex[2]) - 111: 41(ptr) AccessChain 105(aggShadow) 36 + 110: 11 Load 42(g_tex[1]) + 111: 53(ptr) AccessChain 107(aggShadow) 35 Store 111 110 - 113: 16 Load 63(g_samp[0]) - 114: 44(ptr) AccessChain 112(aggShadow) 62 - Store 114 113 - 115: 16 Load 45(g_samp[1]) - 116: 44(ptr) AccessChain 112(aggShadow) 35 + 112: 11 Load 79(g_tex[2]) + 113: 53(ptr) AccessChain 107(aggShadow) 36 + Store 113 112 + 115: 16 Load 65(g_samp[0]) + 116: 56(ptr) AccessChain 114(aggShadow) 64 Store 116 115 - 117: 16 Load 68(g_samp[2]) - 118: 44(ptr) AccessChain 112(aggShadow) 36 + 117: 16 Load 45(g_samp[1]) + 118: 56(ptr) AccessChain 114(aggShadow) 35 Store 118 117 - 119: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 105(aggShadow) 112(aggShadow) - 120: 7(fvec4) FAdd 104 119 - 122: 121(ptr) AccessChain 27(ps_output) 62 - Store 122 120 + 119: 16 Load 70(g_samp[2]) + 120: 56(ptr) AccessChain 114(aggShadow) 36 + Store 120 119 + 122: 14 Load 107(aggShadow) + Store 121(param) 122 + 124: 17 Load 114(aggShadow) + Store 123(param) 124 + 125: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 121(param) 123(param) + 126: 7(fvec4) FAdd 106 125 + 128: 127(ptr) AccessChain 27(ps_output) 64 + Store 128 126 Return FunctionEnd diff --git a/Test/baseResults/hlsl.flattenOpaque.frag.out b/Test/baseResults/hlsl.flattenOpaque.frag.out index aa721248..08504d44 100755 --- a/Test/baseResults/hlsl.flattenOpaque.frag.out +++ b/Test/baseResults/hlsl.flattenOpaque.frag.out @@ -179,12 +179,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 85 +// Id's are bound by 99 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 83 + EntryPoint Fragment 4 "main" 97 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -201,22 +201,28 @@ gl_FragCoord origin is upper left Name 30 "s.tex" Name 31 "f2" Name 35 "@main(" - Name 37 "tex" - Name 68 "s.s2D" - Name 70 "param" - Name 73 "s2.s2D" - Name 74 "s2.tex" - Name 77 "param" - Name 83 "@entryPointOutput" - Decorate 37(tex) DescriptorSet 0 - Decorate 68(s.s2D) DescriptorSet 0 - Decorate 73(s2.s2D) DescriptorSet 0 - Decorate 74(s2.tex) DescriptorSet 0 - Decorate 83(@entryPointOutput) Location 0 + Name 38 "tex" + Name 70 "s.s2D" + Name 71 "param" + Name 74 "param" + Name 76 "param" + Name 79 "s2.s2D" + Name 80 "s2.tex" + Name 81 "param" + Name 83 "param" + Name 87 "param" + Name 89 "param" + Name 91 "param" + Name 97 "@entryPointOutput" + Decorate 38(tex) DescriptorSet 0 + Decorate 70(s.s2D) DescriptorSet 0 + Decorate 79(s2.s2D) DescriptorSet 0 + Decorate 80(s2.tex) DescriptorSet 0 + Decorate 97(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler - 7: TypePointer UniformConstant 6 + 7: TypePointer Function 6 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) @@ -224,80 +230,100 @@ gl_FragCoord origin is upper left 15: TypePointer Function 14(fvec2) 16: TypeFunction 9(fvec4) 7(ptr) 15(ptr) 21: TypeImage 8(float) 2D sampled format:Unknown - 22: TypePointer UniformConstant 21 + 22: TypePointer Function 21 23: TypeFunction 9(fvec4) 7(ptr) 22(ptr) 28: TypeFunction 9(fvec4) 7(ptr) 22(ptr) 15(ptr) 34: TypeFunction 9(fvec4) - 37(tex): 22(ptr) Variable UniformConstant - 40: TypeSampledImage 21 - 42: 8(float) Constant 1045220557 - 43: 8(float) Constant 1050253722 - 44: 14(fvec2) ConstantComposite 42 43 - 68(s.s2D): 7(ptr) Variable UniformConstant - 73(s2.s2D): 7(ptr) Variable UniformConstant - 74(s2.tex): 22(ptr) Variable UniformConstant - 82: TypePointer Output 9(fvec4) -83(@entryPointOutput): 82(ptr) Variable Output + 37: TypePointer UniformConstant 21 + 38(tex): 37(ptr) Variable UniformConstant + 41: TypeSampledImage 21 + 43: 8(float) Constant 1045220557 + 44: 8(float) Constant 1050253722 + 45: 14(fvec2) ConstantComposite 43 44 + 69: TypePointer UniformConstant 6 + 70(s.s2D): 69(ptr) Variable UniformConstant + 79(s2.s2D): 69(ptr) Variable UniformConstant + 80(s2.tex): 37(ptr) Variable UniformConstant + 96: TypePointer Output 9(fvec4) +97(@entryPointOutput): 96(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 84: 9(fvec4) FunctionCall 35(@main() - Store 83(@entryPointOutput) 84 + 98: 9(fvec4) FunctionCall 35(@main() + Store 97(@entryPointOutput) 98 Return FunctionEnd 12(osCall1(struct-os-p11;): 9(fvec4) Function None 10 11(s.s2D): 7(ptr) FunctionParameter 13: Label - 38: 21 Load 37(tex) - 39: 6 Load 11(s.s2D) - 41: 40 SampledImage 38 39 - 45: 9(fvec4) ImageSampleImplicitLod 41 44 - ReturnValue 45 + 39: 21 Load 38(tex) + 40: 6 Load 11(s.s2D) + 42: 41 SampledImage 39 40 + 46: 9(fvec4) ImageSampleImplicitLod 42 45 + ReturnValue 46 FunctionEnd 19(osCall2(struct-os-p11;vf2;): 9(fvec4) Function None 16 17(s.s2D): 7(ptr) FunctionParameter 18(f2): 15(ptr) FunctionParameter 20: Label - 48: 21 Load 37(tex) - 49: 6 Load 17(s.s2D) - 50: 40 SampledImage 48 49 - 51: 14(fvec2) Load 18(f2) - 52: 9(fvec4) ImageSampleImplicitLod 50 51 - ReturnValue 52 + 49: 21 Load 38(tex) + 50: 6 Load 17(s.s2D) + 51: 41 SampledImage 49 50 + 52: 14(fvec2) Load 18(f2) + 53: 9(fvec4) ImageSampleImplicitLod 51 52 + ReturnValue 53 FunctionEnd 26(os2Call1(struct-os2-p1-t211;): 9(fvec4) Function None 23 24(s.s2D): 7(ptr) FunctionParameter 25(s.tex): 22(ptr) FunctionParameter 27: Label - 55: 21 Load 25(s.tex) - 56: 6 Load 24(s.s2D) - 57: 40 SampledImage 55 56 - 58: 9(fvec4) ImageSampleImplicitLod 57 44 - ReturnValue 58 + 56: 21 Load 25(s.tex) + 57: 6 Load 24(s.s2D) + 58: 41 SampledImage 56 57 + 59: 9(fvec4) ImageSampleImplicitLod 58 45 + ReturnValue 59 FunctionEnd 32(os2Call2(struct-os2-p1-t211;vf2;): 9(fvec4) Function None 28 29(s.s2D): 7(ptr) FunctionParameter 30(s.tex): 22(ptr) FunctionParameter 31(f2): 15(ptr) FunctionParameter 33: Label - 61: 21 Load 30(s.tex) - 62: 6 Load 29(s.s2D) - 63: 40 SampledImage 61 62 - 64: 14(fvec2) Load 31(f2) - 65: 9(fvec4) ImageSampleImplicitLod 63 64 - ReturnValue 65 + 62: 21 Load 30(s.tex) + 63: 6 Load 29(s.s2D) + 64: 41 SampledImage 62 63 + 65: 14(fvec2) Load 31(f2) + 66: 9(fvec4) ImageSampleImplicitLod 64 65 + ReturnValue 66 FunctionEnd 35(@main(): 9(fvec4) Function None 34 36: Label - 70(param): 15(ptr) Variable Function - 77(param): 15(ptr) Variable Function - 69: 9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 68(s.s2D) - Store 70(param) 44 - 71: 9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 68(s.s2D) 70(param) - 72: 9(fvec4) FAdd 69 71 - 75: 9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 73(s2.s2D) 74(s2.tex) - 76: 9(fvec4) FAdd 72 75 - Store 77(param) 44 - 78: 9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 73(s2.s2D) 74(s2.tex) 77(param) - 79: 9(fvec4) FAdd 76 78 - ReturnValue 79 + 71(param): 7(ptr) Variable Function + 74(param): 7(ptr) Variable Function + 76(param): 15(ptr) Variable Function + 81(param): 7(ptr) Variable Function + 83(param): 22(ptr) Variable Function + 87(param): 7(ptr) Variable Function + 89(param): 22(ptr) Variable Function + 91(param): 15(ptr) Variable Function + 72: 6 Load 70(s.s2D) + Store 71(param) 72 + 73: 9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 71(param) + 75: 6 Load 70(s.s2D) + Store 74(param) 75 + Store 76(param) 45 + 77: 9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 74(param) 76(param) + 78: 9(fvec4) FAdd 73 77 + 82: 6 Load 79(s2.s2D) + Store 81(param) 82 + 84: 21 Load 80(s2.tex) + Store 83(param) 84 + 85: 9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 81(param) 83(param) + 86: 9(fvec4) FAdd 78 85 + 88: 6 Load 79(s2.s2D) + Store 87(param) 88 + 90: 21 Load 80(s2.tex) + Store 89(param) 90 + Store 91(param) 45 + 92: 9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 87(param) 89(param) 91(param) + 93: 9(fvec4) FAdd 86 92 + ReturnValue 93 FunctionEnd diff --git a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out index f42d583b..dee2808d 100755 --- a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out +++ b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out @@ -166,12 +166,12 @@ Shader version: 500 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 74 +// Id's are bound by 80 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 72 + EntryPoint Vertex 4 "main" 78 Source HLSL 500 Name 4 "main" Name 15 "lookUp(struct-FxaaTex-p1-t211;" @@ -183,27 +183,29 @@ Shader version: 500 Name 19 "fillOpaque(" Name 22 "@main(" Name 36 "t.smpl" - Name 37 "g_tInputTexture_sampler" - Name 39 "t.tex" - Name 40 "g_tInputTexture" - Name 43 "t" - Name 47 "flattenTemp" - Name 51 "tex1.smpl" - Name 56 "tex1.tex" - Name 60 "flattenTemp" - Name 62 "tex2.smpl" - Name 65 "tex2.tex" - Name 72 "@entryPointOutput" - Decorate 37(g_tInputTexture_sampler) DescriptorSet 0 - Decorate 40(g_tInputTexture) DescriptorSet 0 - Decorate 72(@entryPointOutput) Location 0 + Name 38 "g_tInputTexture_sampler" + Name 40 "t.tex" + Name 42 "g_tInputTexture" + Name 45 "t" + Name 49 "flattenTemp" + Name 53 "tex1.smpl" + Name 58 "tex1.tex" + Name 62 "flattenTemp" + Name 64 "tex2.smpl" + Name 67 "tex2.tex" + Name 70 "param" + Name 72 "param" + Name 78 "@entryPointOutput" + Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 + Decorate 42(g_tInputTexture) DescriptorSet 0 + Decorate 78(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler - 7: TypePointer UniformConstant 6 + 7: TypePointer Function 6 8: TypeFloat 32 9: TypeImage 8(float) 2D sampled format:Unknown - 10: TypePointer UniformConstant 9 + 10: TypePointer Function 9 11: TypeVector 8(float) 4 12: TypeFunction 11(fvec4) 7(ptr) 10(ptr) 17(FxaaTex): TypeStruct 6 9 @@ -215,27 +217,20 @@ Shader version: 500 30: 8(float) Constant 1053609165 31: 28(fvec2) ConstantComposite 29 30 32: 8(float) Constant 0 - 36(t.smpl): 7(ptr) Variable UniformConstant -37(g_tInputTexture_sampler): 7(ptr) Variable UniformConstant - 39(t.tex): 10(ptr) Variable UniformConstant -40(g_tInputTexture): 10(ptr) Variable UniformConstant - 42: TypePointer UniformConstant 17(FxaaTex) - 43(t): 42(ptr) Variable UniformConstant - 47(flattenTemp): 42(ptr) Variable UniformConstant - 51(tex1.smpl): 7(ptr) Variable UniformConstant - 52: TypeInt 32 1 - 53: 52(int) Constant 0 - 56(tex1.tex): 10(ptr) Variable UniformConstant - 57: 52(int) Constant 1 - 60(flattenTemp): 42(ptr) Variable UniformConstant - 62(tex2.smpl): 7(ptr) Variable UniformConstant - 65(tex2.tex): 10(ptr) Variable UniformConstant - 71: TypePointer Output 11(fvec4) -72(@entryPointOutput): 71(ptr) Variable Output + 37: TypePointer UniformConstant 6 +38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant + 41: TypePointer UniformConstant 9 +42(g_tInputTexture): 41(ptr) Variable UniformConstant + 44: TypePointer Function 17(FxaaTex) + 54: TypeInt 32 1 + 55: 54(int) Constant 0 + 59: 54(int) Constant 1 + 77: TypePointer Output 11(fvec4) +78(@entryPointOutput): 77(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 73: 11(fvec4) FunctionCall 22(@main() - Store 72(@entryPointOutput) 73 + 79: 11(fvec4) FunctionCall 22(@main() + Store 78(@entryPointOutput) 79 Return FunctionEnd 15(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12 @@ -250,33 +245,48 @@ Shader version: 500 FunctionEnd 19(fillOpaque(): 17(FxaaTex) Function None 18 20: Label - 38: 6 Load 37(g_tInputTexture_sampler) - Store 36(t.smpl) 38 - 41: 9 Load 40(g_tInputTexture) - Store 39(t.tex) 41 - 44: 17(FxaaTex) Load 43(t) - ReturnValue 44 + 36(t.smpl): 7(ptr) Variable Function + 40(t.tex): 10(ptr) Variable Function + 45(t): 44(ptr) Variable Function + 39: 6 Load 38(g_tInputTexture_sampler) + Store 36(t.smpl) 39 + 43: 9 Load 42(g_tInputTexture) + Store 40(t.tex) 43 + 46: 17(FxaaTex) Load 45(t) + ReturnValue 46 FunctionEnd 22(@main(): 11(fvec4) Function None 21 23: Label - 48: 6 Load 37(g_tInputTexture_sampler) - 49: 9 Load 40(g_tInputTexture) - 50: 17(FxaaTex) CompositeConstruct 48 49 - Store 47(flattenTemp) 50 - 54: 7(ptr) AccessChain 47(flattenTemp) 53 - 55: 6 Load 54 - Store 51(tex1.smpl) 55 - 58: 10(ptr) AccessChain 47(flattenTemp) 57 - 59: 9 Load 58 - Store 56(tex1.tex) 59 - 61: 17(FxaaTex) FunctionCall 19(fillOpaque() - Store 60(flattenTemp) 61 - 63: 7(ptr) AccessChain 60(flattenTemp) 53 - 64: 6 Load 63 - Store 62(tex2.smpl) 64 - 66: 10(ptr) AccessChain 60(flattenTemp) 57 - 67: 9 Load 66 - Store 65(tex2.tex) 67 - 68: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 51(tex1.smpl) 56(tex1.tex) - ReturnValue 68 + 49(flattenTemp): 44(ptr) Variable Function + 53(tex1.smpl): 7(ptr) Variable Function + 58(tex1.tex): 10(ptr) Variable Function + 62(flattenTemp): 44(ptr) Variable Function + 64(tex2.smpl): 7(ptr) Variable Function + 67(tex2.tex): 10(ptr) Variable Function + 70(param): 7(ptr) Variable Function + 72(param): 10(ptr) Variable Function + 50: 6 Load 38(g_tInputTexture_sampler) + 51: 9 Load 42(g_tInputTexture) + 52: 17(FxaaTex) CompositeConstruct 50 51 + 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 + 63: 17(FxaaTex) FunctionCall 19(fillOpaque() + Store 62(flattenTemp) 63 + 65: 7(ptr) AccessChain 62(flattenTemp) 55 + 66: 6 Load 65 + Store 64(tex2.smpl) 66 + 68: 10(ptr) AccessChain 62(flattenTemp) 59 + 69: 9 Load 68 + Store 67(tex2.tex) 69 + 71: 6 Load 53(tex1.smpl) + Store 70(param) 71 + 73: 9 Load 58(tex1.tex) + Store 72(param) 73 + 74: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 70(param) 72(param) + ReturnValue 74 FunctionEnd diff --git a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out index 237ab673..7487cf03 100755 --- a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out +++ b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out @@ -130,12 +130,12 @@ Shader version: 500 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 65 +// Id's are bound by 70 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 63 + EntryPoint Vertex 4 "main" 68 Source HLSL 500 Name 4 "main" Name 17 "lookUp(struct-FxaaTex-p1-t21-f11;" @@ -148,23 +148,25 @@ Shader version: 500 MemberName 34(FxaaTex) 1 "tex" MemberName 34(FxaaTex) 2 "f" Name 36 "flattenTemp" - Name 37 "g_tInputTexture_sampler" - Name 39 "g_tInputTexture" - Name 43 "tex.smpl" - Name 48 "tex.tex" - Name 52 "tex.f" - Name 57 "param" - Name 63 "@entryPointOutput" - Decorate 37(g_tInputTexture_sampler) DescriptorSet 0 - Decorate 39(g_tInputTexture) DescriptorSet 0 - Decorate 63(@entryPointOutput) Location 0 + Name 38 "g_tInputTexture_sampler" + Name 41 "g_tInputTexture" + Name 45 "tex.smpl" + Name 50 "tex.tex" + Name 54 "tex.f" + 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 3: TypeFunction 2 6: TypeSampler - 7: TypePointer UniformConstant 6 + 7: TypePointer Function 6 8: TypeFloat 32 9: TypeImage 8(float) 2D sampled format:Unknown - 10: TypePointer UniformConstant 9 + 10: TypePointer Function 9 11: TypePointer Function 8(float) 12: TypeVector 8(float) 4 13: TypeFunction 12(fvec4) 7(ptr) 10(ptr) 11(ptr) @@ -173,24 +175,22 @@ Shader version: 500 28: TypeVector 8(float) 2 30: 8(float) Constant 0 34(FxaaTex): TypeStruct 6 9 8(float) - 35: TypePointer UniformConstant 34(FxaaTex) - 36(flattenTemp): 35(ptr) Variable UniformConstant -37(g_tInputTexture_sampler): 7(ptr) Variable UniformConstant -39(g_tInputTexture): 10(ptr) Variable UniformConstant - 41: 8(float) Constant 1056964608 - 43(tex.smpl): 7(ptr) Variable UniformConstant - 44: TypeInt 32 1 - 45: 44(int) Constant 0 - 48(tex.tex): 10(ptr) Variable UniformConstant - 49: 44(int) Constant 1 - 53: 44(int) Constant 2 - 54: TypePointer UniformConstant 8(float) - 62: TypePointer Output 12(fvec4) -63(@entryPointOutput): 62(ptr) Variable Output + 35: TypePointer Function 34(FxaaTex) + 37: TypePointer UniformConstant 6 +38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant + 40: TypePointer UniformConstant 9 +41(g_tInputTexture): 40(ptr) Variable UniformConstant + 43: 8(float) Constant 1056964608 + 46: TypeInt 32 1 + 47: 46(int) Constant 0 + 51: 46(int) Constant 1 + 55: 46(int) Constant 2 + 67: TypePointer Output 12(fvec4) +68(@entryPointOutput): 67(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 64: 12(fvec4) FunctionCall 20(@main() - Store 63(@entryPointOutput) 64 + 69: 12(fvec4) FunctionCall 20(@main() + Store 68(@entryPointOutput) 69 Return FunctionEnd 17(lookUp(struct-FxaaTex-p1-t21-f11;): 12(fvec4) Function None 13 @@ -209,23 +209,32 @@ Shader version: 500 FunctionEnd 20(@main(): 12(fvec4) Function None 19 21: Label - 52(tex.f): 11(ptr) Variable Function - 57(param): 11(ptr) Variable Function - 38: 6 Load 37(g_tInputTexture_sampler) - 40: 9 Load 39(g_tInputTexture) - 42: 34(FxaaTex) CompositeConstruct 38 40 41 - Store 36(flattenTemp) 42 - 46: 7(ptr) AccessChain 36(flattenTemp) 45 - 47: 6 Load 46 - Store 43(tex.smpl) 47 - 50: 10(ptr) AccessChain 36(flattenTemp) 49 - 51: 9 Load 50 - Store 48(tex.tex) 51 - 55: 54(ptr) AccessChain 36(flattenTemp) 53 - 56: 8(float) Load 55 - Store 52(tex.f) 56 - 58: 8(float) Load 52(tex.f) - Store 57(param) 58 - 59: 12(fvec4) FunctionCall 17(lookUp(struct-FxaaTex-p1-t21-f11;) 43(tex.smpl) 48(tex.tex) 57(param) - ReturnValue 59 + 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 diff --git a/Test/baseResults/hlsl.opaque-type-bug.frag.out b/Test/baseResults/hlsl.opaque-type-bug.frag.out index 3eed7524..f57169e9 100644 --- a/Test/baseResults/hlsl.opaque-type-bug.frag.out +++ b/Test/baseResults/hlsl.opaque-type-bug.frag.out @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 26 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -68,44 +68,45 @@ gl_FragCoord origin is upper left ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" - Name 14 "TexFunc(t21;vf3;" - Name 12 "t2D" - Name 13 "RGB" - Name 16 "@main(" + Name 13 "TexFunc(t21;vf3;" + Name 11 "t2D" + Name 12 "RGB" + Name 15 "@main(" Name 20 "MyTexture" - Name 21 "final_RGB" - Name 22 "param" + Name 22 "final_RGB" + Name 23 "param" Decorate 20(MyTexture) DescriptorSet 0 Decorate 20(MyTexture) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9: TypeVector 6(float) 3 - 10: TypePointer Function 9(fvec3) - 11: TypeFunction 2 8(ptr) 10(ptr) - 18: 6(float) Constant 0 - 19: 9(fvec3) ConstantComposite 18 18 18 - 20(MyTexture): 8(ptr) Variable UniformConstant + 8: TypeVector 6(float) 3 + 9: TypePointer Function 8(fvec3) + 10: TypeFunction 2 7 9(ptr) + 17: 6(float) Constant 0 + 18: 8(fvec3) ConstantComposite 17 17 17 + 19: TypePointer UniformConstant 7 + 20(MyTexture): 19(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 25: 2 FunctionCall 16(@main() + 26: 2 FunctionCall 15(@main() Return FunctionEnd -14(TexFunc(t21;vf3;): 2 Function None 11 - 12(t2D): 8(ptr) FunctionParameter - 13(RGB): 10(ptr) FunctionParameter - 15: Label - Store 13(RGB) 19 +13(TexFunc(t21;vf3;): 2 Function None 10 + 11(t2D): 7 FunctionParameter + 12(RGB): 9(ptr) FunctionParameter + 14: Label + Store 12(RGB) 18 Return FunctionEnd - 16(@main(): 2 Function None 3 - 17: Label - 21(final_RGB): 10(ptr) Variable Function - 22(param): 10(ptr) Variable Function - 23: 2 FunctionCall 14(TexFunc(t21;vf3;) 20(MyTexture) 22(param) - 24: 9(fvec3) Load 22(param) - Store 21(final_RGB) 24 + 15(@main(): 2 Function None 3 + 16: Label + 22(final_RGB): 9(ptr) Variable Function + 23(param): 9(ptr) Variable Function + 21: 7 Load 20(MyTexture) + 24: 2 FunctionCall 13(TexFunc(t21;vf3;) 21 23(param) + 25: 8(fvec3) Load 23(param) + Store 22(final_RGB) 25 Return FunctionEnd diff --git a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out index 039d4e05..34a4ca84 100644 --- a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out +++ b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out @@ -151,12 +151,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 70 +// Id's are bound by 76 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 58 61 + EntryPoint Fragment 4 "main" 64 67 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -171,51 +171,55 @@ gl_FragCoord origin is upper left Name 18 "arg_c@count" Name 25 "@main(u1;" Name 24 "pos" - Name 49 "sbuf_a" - Name 50 "sbuf_a@count" - Name 51 "sbuf_c" - Name 52 "sbuf_c@count" - Name 56 "pos" - Name 58 "pos" - Name 61 "@entryPointOutput" - Name 62 "param" - Name 65 "sbuf_a@count" - MemberName 65(sbuf_a@count) 0 "@count" - Name 67 "sbuf_a@count" - Name 68 "sbuf_c@count" - Name 69 "sbuf_unused" + Name 50 "sbuf_a" + Name 52 "sbuf_a@count" + Name 53 "sbuf_c" + Name 54 "sbuf_c@count" + Name 55 "param" + Name 56 "param" + Name 57 "param" + Name 58 "param" + Name 62 "pos" + Name 64 "pos" + Name 67 "@entryPointOutput" + Name 68 "param" + Name 71 "sbuf_a@count" + MemberName 71(sbuf_a@count) 0 "@count" + Name 73 "sbuf_a@count" + Name 74 "sbuf_c@count" + Name 75 "sbuf_unused" Decorate 8 ArrayStride 16 MemberDecorate 9 0 Offset 0 Decorate 9 BufferBlock Decorate 12 BufferBlock - Decorate 49(sbuf_a) DescriptorSet 0 - Decorate 50(sbuf_a@count) DescriptorSet 0 - Decorate 51(sbuf_c) DescriptorSet 0 - Decorate 52(sbuf_c@count) DescriptorSet 0 - Decorate 58(pos) Flat - Decorate 58(pos) Location 0 - Decorate 61(@entryPointOutput) Location 0 - MemberDecorate 65(sbuf_a@count) 0 Offset 0 - Decorate 65(sbuf_a@count) BufferBlock - Decorate 67(sbuf_a@count) DescriptorSet 0 - Decorate 68(sbuf_c@count) DescriptorSet 0 - Decorate 69(sbuf_unused) DescriptorSet 0 + Decorate 50(sbuf_a) DescriptorSet 0 + Decorate 52(sbuf_a@count) DescriptorSet 0 + Decorate 53(sbuf_c) DescriptorSet 0 + Decorate 54(sbuf_c@count) DescriptorSet 0 + Decorate 64(pos) Flat + Decorate 64(pos) Location 0 + Decorate 67(@entryPointOutput) Location 0 + MemberDecorate 71(sbuf_a@count) 0 Offset 0 + Decorate 71(sbuf_a@count) BufferBlock + Decorate 73(sbuf_a@count) DescriptorSet 0 + Decorate 74(sbuf_c@count) DescriptorSet 0 + Decorate 75(sbuf_unused) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeRuntimeArray 7(fvec4) 9: TypeStruct 8 - 10: TypePointer Uniform 9(struct) + 10: TypePointer Function 9(struct) 11: TypeInt 32 1 12: TypeStruct 11(int) - 13: TypePointer Uniform 12(struct) + 13: TypePointer Function 12(struct) 14: TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr) 21: TypeInt 32 0 22: TypePointer Function 21(int) 23: TypeFunction 7(fvec4) 22(ptr) 27: 11(int) Constant 0 - 28: TypePointer Uniform 11(int) + 28: TypePointer Function 11(int) 30: 11(int) Constant 1 31: 21(int) Constant 1 32: 21(int) Constant 0 @@ -224,31 +228,33 @@ gl_FragCoord origin is upper left 36: 6(float) Constant 1077936128 37: 6(float) Constant 1082130432 38: 7(fvec4) ConstantComposite 34 35 36 37 - 39: TypePointer Uniform 7(fvec4) + 39: TypePointer Function 7(fvec4) 42: 11(int) Constant 4294967295 - 49(sbuf_a): 10(ptr) Variable Uniform -50(sbuf_a@count): 13(ptr) Variable Uniform - 51(sbuf_c): 10(ptr) Variable Uniform -52(sbuf_c@count): 13(ptr) Variable Uniform - 57: TypePointer Input 21(int) - 58(pos): 57(ptr) Variable Input - 60: TypePointer Output 7(fvec4) -61(@entryPointOutput): 60(ptr) Variable Output -65(sbuf_a@count): TypeStruct 11(int) - 66: TypePointer Uniform 65(sbuf_a@count) -67(sbuf_a@count): 66(ptr) Variable Uniform -68(sbuf_c@count): 66(ptr) Variable Uniform - 69(sbuf_unused): 10(ptr) Variable Uniform + 49: TypePointer Uniform 9(struct) + 50(sbuf_a): 49(ptr) Variable Uniform + 51: TypePointer Uniform 12(struct) +52(sbuf_a@count): 51(ptr) Variable Uniform + 53(sbuf_c): 49(ptr) Variable Uniform +54(sbuf_c@count): 51(ptr) Variable Uniform + 63: TypePointer Input 21(int) + 64(pos): 63(ptr) Variable Input + 66: TypePointer Output 7(fvec4) +67(@entryPointOutput): 66(ptr) Variable Output +71(sbuf_a@count): TypeStruct 11(int) + 72: TypePointer Uniform 71(sbuf_a@count) +73(sbuf_a@count): 72(ptr) Variable Uniform +74(sbuf_c@count): 72(ptr) Variable Uniform + 75(sbuf_unused): 49(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label - 56(pos): 22(ptr) Variable Function - 62(param): 22(ptr) Variable Function - 59: 21(int) Load 58(pos) - Store 56(pos) 59 - 63: 21(int) Load 56(pos) - Store 62(param) 63 - 64: 7(fvec4) FunctionCall 25(@main(u1;) 62(param) - Store 61(@entryPointOutput) 64 + 62(pos): 22(ptr) Variable Function + 68(param): 22(ptr) Variable Function + 65: 21(int) Load 64(pos) + Store 62(pos) 65 + 69: 21(int) Load 62(pos) + Store 68(param) 69 + 70: 7(fvec4) FunctionCall 25(@main(u1;) 68(param) + Store 67(@entryPointOutput) 70 Return FunctionEnd 19(Fn2(block--vf4[0]1;block--vf4[0]1;): 7(fvec4) Function None 14 @@ -271,6 +277,10 @@ gl_FragCoord origin is upper left 25(@main(u1;): 7(fvec4) Function None 23 24(pos): 22(ptr) FunctionParameter 26: Label - 53: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 49(sbuf_a) 50(sbuf_a@count) 51(sbuf_c) 52(sbuf_c@count) - ReturnValue 53 + 55(param): 10(ptr) Variable Function + 56(param): 13(ptr) Variable Function + 57(param): 10(ptr) Variable Function + 58(param): 13(ptr) Variable Function + 59: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 55(param) 56(param) 57(param) 58(param) + ReturnValue 59 FunctionEnd diff --git a/Test/baseResults/hlsl.structbuffer.fn.frag.out b/Test/baseResults/hlsl.structbuffer.fn.frag.out index 2e2a44fb..112a6899 100644 --- a/Test/baseResults/hlsl.structbuffer.fn.frag.out +++ b/Test/baseResults/hlsl.structbuffer.fn.frag.out @@ -139,12 +139,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 78 +// Id's are bound by 83 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 63 66 + EntryPoint Fragment 4 "main" 68 71 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -165,21 +165,24 @@ gl_FragCoord origin is upper left Name 35 "@main(u1;" Name 34 "pos" Name 47 "sbuf2" - Name 48 "sbuf2@count" - Name 50 "sbuf" - Name 52 "param" + Name 49 "sbuf2@count" + Name 52 "sbuf" Name 54 "param" Name 55 "param" - Name 61 "pos" - Name 63 "pos" - Name 66 "@entryPointOutput" - Name 67 "param" - Name 70 "sbuf2@count" - MemberName 70(sbuf2@count) 0 "@count" - Name 72 "sbuf2@count" - Name 75 "sbuf3" - MemberName 75(sbuf3) 0 "@data" - Name 77 "sbuf3" + Name 57 "param" + Name 58 "param" + Name 59 "param" + Name 60 "param" + Name 66 "pos" + Name 68 "pos" + Name 71 "@entryPointOutput" + Name 72 "param" + Name 75 "sbuf2@count" + MemberName 75(sbuf2@count) 0 "@count" + Name 77 "sbuf2@count" + Name 80 "sbuf3" + MemberName 80(sbuf3) 0 "@data" + Name 82 "sbuf3" Decorate 8 ArrayStride 16 MemberDecorate 9 0 NonWritable MemberDecorate 9 0 Offset 0 @@ -190,72 +193,74 @@ gl_FragCoord origin is upper left Decorate 18 BufferBlock Decorate 21 BufferBlock Decorate 47(sbuf2) DescriptorSet 0 - Decorate 48(sbuf2@count) DescriptorSet 0 - Decorate 50(sbuf) DescriptorSet 0 - Decorate 50(sbuf) Binding 10 - Decorate 63(pos) Flat - Decorate 63(pos) Location 0 - Decorate 66(@entryPointOutput) Location 0 - MemberDecorate 70(sbuf2@count) 0 Offset 0 - Decorate 70(sbuf2@count) BufferBlock - Decorate 72(sbuf2@count) DescriptorSet 0 - Decorate 74 ArrayStride 16 - MemberDecorate 75(sbuf3) 0 NonWritable - MemberDecorate 75(sbuf3) 0 Offset 0 - Decorate 75(sbuf3) BufferBlock - Decorate 77(sbuf3) DescriptorSet 0 - Decorate 77(sbuf3) Binding 12 + Decorate 49(sbuf2@count) DescriptorSet 0 + Decorate 52(sbuf) DescriptorSet 0 + Decorate 52(sbuf) Binding 10 + Decorate 68(pos) Flat + Decorate 68(pos) Location 0 + Decorate 71(@entryPointOutput) Location 0 + MemberDecorate 75(sbuf2@count) 0 Offset 0 + Decorate 75(sbuf2@count) BufferBlock + Decorate 77(sbuf2@count) DescriptorSet 0 + Decorate 79 ArrayStride 16 + MemberDecorate 80(sbuf3) 0 NonWritable + MemberDecorate 80(sbuf3) 0 Offset 0 + Decorate 80(sbuf3) BufferBlock + Decorate 82(sbuf3) DescriptorSet 0 + Decorate 82(sbuf3) Binding 12 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 4 8: TypeRuntimeArray 7(ivec4) 9: TypeStruct 8 - 10: TypePointer Uniform 9(struct) + 10: TypePointer Function 9(struct) 11: TypePointer Function 6(int) 12: TypeFunction 7(ivec4) 10(ptr) 11(ptr) 17: TypeRuntimeArray 7(ivec4) 18: TypeStruct 17 - 19: TypePointer Uniform 18(struct) + 19: TypePointer Function 18(struct) 20: TypeInt 32 1 21: TypeStruct 20(int) - 22: TypePointer Uniform 21(struct) + 22: TypePointer Function 21(struct) 23: TypePointer Function 7(ivec4) 24: TypeFunction 2 19(ptr) 22(ptr) 11(ptr) 23(ptr) 31: TypeFloat 32 32: TypeVector 31(float) 4 33: TypeFunction 32(fvec4) 11(ptr) 37: 20(int) Constant 0 - 39: TypePointer Uniform 7(ivec4) - 47(sbuf2): 19(ptr) Variable Uniform - 48(sbuf2@count): 22(ptr) Variable Uniform - 49: 6(int) Constant 2 - 50(sbuf): 10(ptr) Variable Uniform - 51: 6(int) Constant 3 - 57: 31(float) Constant 0 - 58: 32(fvec4) ConstantComposite 57 57 57 57 - 62: TypePointer Input 6(int) - 63(pos): 62(ptr) Variable Input - 65: TypePointer Output 32(fvec4) -66(@entryPointOutput): 65(ptr) Variable Output - 70(sbuf2@count): TypeStruct 20(int) - 71: TypePointer Uniform 70(sbuf2@count) - 72(sbuf2@count): 71(ptr) Variable Uniform - 73: TypeVector 6(int) 3 - 74: TypeRuntimeArray 73(ivec3) - 75(sbuf3): TypeStruct 74 - 76: TypePointer Uniform 75(sbuf3) - 77(sbuf3): 76(ptr) Variable Uniform + 46: TypePointer Uniform 18(struct) + 47(sbuf2): 46(ptr) Variable Uniform + 48: TypePointer Uniform 21(struct) + 49(sbuf2@count): 48(ptr) Variable Uniform + 50: 6(int) Constant 2 + 51: TypePointer Uniform 9(struct) + 52(sbuf): 51(ptr) Variable Uniform + 53: 6(int) Constant 3 + 62: 31(float) Constant 0 + 63: 32(fvec4) ConstantComposite 62 62 62 62 + 67: TypePointer Input 6(int) + 68(pos): 67(ptr) Variable Input + 70: TypePointer Output 32(fvec4) +71(@entryPointOutput): 70(ptr) Variable Output + 75(sbuf2@count): TypeStruct 20(int) + 76: TypePointer Uniform 75(sbuf2@count) + 77(sbuf2@count): 76(ptr) Variable Uniform + 78: TypeVector 6(int) 3 + 79: TypeRuntimeArray 78(ivec3) + 80(sbuf3): TypeStruct 79 + 81: TypePointer Uniform 80(sbuf3) + 82(sbuf3): 81(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label - 61(pos): 11(ptr) Variable Function - 67(param): 11(ptr) Variable Function - 64: 6(int) Load 63(pos) - Store 61(pos) 64 - 68: 6(int) Load 61(pos) - Store 67(param) 68 - 69: 32(fvec4) FunctionCall 35(@main(u1;) 67(param) - Store 66(@entryPointOutput) 69 + 66(pos): 11(ptr) Variable Function + 72(param): 11(ptr) Variable Function + 69: 6(int) Load 68(pos) + Store 66(pos) 69 + 73: 6(int) Load 66(pos) + Store 72(param) 73 + 74: 32(fvec4) FunctionCall 35(@main(u1;) 72(param) + Store 71(@entryPointOutput) 74 Return FunctionEnd 15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12 @@ -263,9 +268,9 @@ gl_FragCoord origin is upper left 14(bufferOffset): 11(ptr) FunctionParameter 16: Label 38: 6(int) Load 14(bufferOffset) - 40: 39(ptr) AccessChain 13(sb) 37 38 - 41: 7(ivec4) Load 40 - ReturnValue 41 + 39: 23(ptr) AccessChain 13(sb) 37 38 + 40: 7(ivec4) Load 39 + ReturnValue 40 FunctionEnd 29(set(block--vu4[0]1;u1;vu4;): 2 Function None 24 25(sb): 19(ptr) FunctionParameter @@ -273,22 +278,25 @@ gl_FragCoord origin is upper left 27(bufferOffset): 11(ptr) FunctionParameter 28(data): 23(ptr) FunctionParameter 30: Label - 44: 6(int) Load 27(bufferOffset) - 45: 7(ivec4) Load 28(data) - 46: 39(ptr) AccessChain 25(sb) 37 44 - Store 46 45 + 43: 6(int) Load 27(bufferOffset) + 44: 7(ivec4) Load 28(data) + 45: 23(ptr) AccessChain 25(sb) 37 43 + Store 45 44 Return FunctionEnd 35(@main(u1;): 32(fvec4) Function None 33 34(pos): 11(ptr) FunctionParameter 36: Label - 52(param): 11(ptr) Variable Function - 54(param): 11(ptr) Variable Function - 55(param): 23(ptr) Variable Function - Store 52(param) 51 - 53: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param) - Store 54(param) 49 + 54(param): 10(ptr) Variable Function + 55(param): 11(ptr) Variable Function + 57(param): 19(ptr) Variable Function + 58(param): 22(ptr) Variable Function + 59(param): 11(ptr) Variable Function + 60(param): 23(ptr) Variable Function Store 55(param) 53 - 56: 2 FunctionCall 29(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) - ReturnValue 58 + 56: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 54(param) 55(param) + Store 59(param) 50 + Store 60(param) 56 + 61: 2 FunctionCall 29(set(block--vu4[0]1;u1;vu4;) 57(param) 58(param) 59(param) 60(param) + ReturnValue 63 FunctionEnd diff --git a/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/Test/baseResults/hlsl.structbuffer.fn2.comp.out index efe5fe3c..96374cdb 100644 --- a/Test/baseResults/hlsl.structbuffer.fn2.comp.out +++ b/Test/baseResults/hlsl.structbuffer.fn2.comp.out @@ -135,14 +135,14 @@ local_size = (256, 1, 1) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 61 +// Id's are bound by 62 Capability Shader Capability ImageBuffer Capability StorageImageExtendedFormats 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 56 + EntryPoint GLCompute 4 "main" 57 ExecutionMode 4 LocalSize 256 1 1 Source HLSL 500 Name 4 "main" @@ -155,13 +155,14 @@ local_size = (256, 1, 1) Name 18 "dispatchId" Name 22 "result" Name 25 "byteAddrTemp" - Name 43 "result" + Name 42 "result" Name 44 "g_input" Name 45 "param" - Name 50 "g_output" - Name 54 "dispatchId" - Name 56 "dispatchId" - Name 58 "param" + Name 47 "param" + Name 51 "g_output" + Name 55 "dispatchId" + Name 57 "dispatchId" + Name 59 "param" Decorate 8 ArrayStride 4 MemberDecorate 9 0 NonWritable MemberDecorate 9 0 Offset 0 @@ -169,16 +170,16 @@ local_size = (256, 1, 1) Decorate 14(buffer) NonWritable Decorate 44(g_input) DescriptorSet 0 Decorate 44(g_input) Binding 0 - Decorate 50(g_output) DescriptorSet 0 - Decorate 50(g_output) Binding 1 - Decorate 56(dispatchId) BuiltIn GlobalInvocationId + Decorate 51(g_output) DescriptorSet 0 + Decorate 51(g_output) Binding 1 + Decorate 57(dispatchId) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 8: TypeRuntimeArray 6(int) 9: TypeStruct 8 - 10: TypePointer Uniform 9(struct) + 10: TypePointer Function 9(struct) 11: TypeVector 6(int) 2 12: TypeFunction 11(ivec2) 7(ptr) 10(ptr) 17: TypeFunction 2 7(ptr) @@ -187,23 +188,23 @@ local_size = (256, 1, 1) 24: TypePointer Function 23(int) 27: 23(int) Constant 2 29: 23(int) Constant 0 - 31: TypePointer Uniform 6(int) - 35: 23(int) Constant 1 - 44(g_input): 10(ptr) Variable Uniform - 48: TypeImage 6(int) Buffer nonsampled format:Rg32ui - 49: TypePointer UniformConstant 48 - 50(g_output): 49(ptr) Variable UniformConstant - 55: TypePointer Input 6(int) - 56(dispatchId): 55(ptr) Variable Input + 34: 23(int) Constant 1 + 43: TypePointer Uniform 9(struct) + 44(g_input): 43(ptr) Variable Uniform + 49: TypeImage 6(int) Buffer nonsampled format:Rg32ui + 50: TypePointer UniformConstant 49 + 51(g_output): 50(ptr) Variable UniformConstant + 56: TypePointer Input 6(int) + 57(dispatchId): 56(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 54(dispatchId): 7(ptr) Variable Function - 58(param): 7(ptr) Variable Function - 57: 6(int) Load 56(dispatchId) - Store 54(dispatchId) 57 - 59: 6(int) Load 54(dispatchId) - Store 58(param) 59 - 60: 2 FunctionCall 19(@main(u1;) 58(param) + 55(dispatchId): 7(ptr) Variable Function + 59(param): 7(ptr) Variable Function + 58: 6(int) Load 57(dispatchId) + Store 55(dispatchId) 58 + 60: 6(int) Load 55(dispatchId) + Store 59(param) 60 + 61: 2 FunctionCall 19(@main(u1;) 59(param) Return FunctionEnd 15(testLoad(u1;block--u1[0]1;): 11(ivec2) Function None 12 @@ -216,29 +217,30 @@ local_size = (256, 1, 1) 28: 23(int) ShiftRightLogical 26 27 Store 25(byteAddrTemp) 28 30: 23(int) Load 25(byteAddrTemp) - 32: 31(ptr) AccessChain 14(buffer) 29 30 - 33: 6(int) Load 32 - 34: 23(int) Load 25(byteAddrTemp) - 36: 23(int) IAdd 34 35 - 37: 31(ptr) AccessChain 14(buffer) 29 36 - 38: 6(int) Load 37 - 39: 11(ivec2) CompositeConstruct 33 38 - Store 22(result) 39 - 40: 11(ivec2) Load 22(result) - ReturnValue 40 + 31: 7(ptr) AccessChain 14(buffer) 29 30 + 32: 6(int) Load 31 + 33: 23(int) Load 25(byteAddrTemp) + 35: 23(int) IAdd 33 34 + 36: 7(ptr) AccessChain 14(buffer) 29 35 + 37: 6(int) Load 36 + 38: 11(ivec2) CompositeConstruct 32 37 + Store 22(result) 38 + 39: 11(ivec2) Load 22(result) + ReturnValue 39 FunctionEnd 19(@main(u1;): 2 Function None 17 18(dispatchId): 7(ptr) FunctionParameter 20: Label - 43(result): 21(ptr) Variable Function + 42(result): 21(ptr) Variable Function 45(param): 7(ptr) Variable Function + 47(param): 10(ptr) Variable Function 46: 6(int) Load 18(dispatchId) Store 45(param) 46 - 47: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 44(g_input) - Store 43(result) 47 - 51: 48 Load 50(g_output) - 52: 6(int) Load 18(dispatchId) - 53: 11(ivec2) Load 43(result) - ImageWrite 51 52 53 + 48: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 47(param) + Store 42(result) 48 + 52: 49 Load 51(g_output) + 53: 6(int) Load 18(dispatchId) + 54: 11(ivec2) Load 42(result) + ImageWrite 52 53 54 Return FunctionEnd diff --git a/Test/baseResults/hlsl.texture.struct.frag.out b/Test/baseResults/hlsl.texture.struct.frag.out index 09af4515..f532c9f5 100644 --- a/Test/baseResults/hlsl.texture.struct.frag.out +++ b/Test/baseResults/hlsl.texture.struct.frag.out @@ -839,12 +839,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 233 +// Id's are bound by 240 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 231 + EntryPoint Fragment 4 "main" 238 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -867,52 +867,55 @@ gl_FragCoord origin is upper left Name 71 "@sampleStructTemp" Name 87 "s1" Name 88 "@sampleResultShadow" - Name 89 "g_tTex2s1" - Name 97 "@sampleStructTemp" - Name 111 "s2" - Name 112 "@sampleResultShadow" - Name 113 "g_tTex2s2" - Name 121 "@sampleStructTemp" - Name 135 "s3_t" - MemberName 135(s3_t) 0 "c0" - MemberName 135(s3_t) 1 "c1" - Name 137 "s3" - Name 138 "@sampleResultShadow" - Name 139 "g_tTex2s3" - Name 147 "@sampleStructTemp" - Name 159 "s4_t" - MemberName 159(s4_t) 0 "c0" - MemberName 159(s4_t) 1 "c1" - MemberName 159(s4_t) 2 "c2" - Name 161 "s4" - Name 164 "@sampleResultShadow" - Name 167 "g_tTex2s4" - Name 176 "@sampleStructTemp" - Name 193 "s5_t" - MemberName 193(s5_t) 0 "c0" - MemberName 193(s5_t) 1 "c1" - Name 195 "s5" - Name 198 "@sampleResultShadow" - Name 201 "g_tTex2s5" - Name 210 "@sampleStructTemp" - Name 219 "r0" - Name 221 "r1" - Name 223 "r2" - Name 224 "g_tTex2s1a" - Name 231 "@entryPointOutput" + Name 90 "g_tTex2s1" + Name 98 "@sampleStructTemp" + Name 112 "s2" + Name 113 "@sampleResultShadow" + Name 114 "g_tTex2s2" + Name 122 "@sampleStructTemp" + Name 136 "s3_t" + MemberName 136(s3_t) 0 "c0" + MemberName 136(s3_t) 1 "c1" + Name 138 "s3" + Name 139 "@sampleResultShadow" + Name 140 "g_tTex2s3" + Name 148 "@sampleStructTemp" + Name 160 "s4_t" + MemberName 160(s4_t) 0 "c0" + MemberName 160(s4_t) 1 "c1" + MemberName 160(s4_t) 2 "c2" + Name 162 "s4" + Name 165 "@sampleResultShadow" + Name 168 "g_tTex2s4" + Name 177 "@sampleStructTemp" + Name 194 "s5_t" + MemberName 194(s5_t) 0 "c0" + MemberName 194(s5_t) 1 "c1" + Name 196 "s5" + Name 199 "@sampleResultShadow" + Name 202 "g_tTex2s5" + Name 211 "@sampleStructTemp" + Name 220 "r0" + Name 221 "param" + Name 224 "r1" + Name 225 "param" + Name 228 "r2" + Name 229 "g_tTex2s1a" + Name 230 "param" + Name 238 "@entryPointOutput" Decorate 30(g_sSamp) DescriptorSet 0 - Decorate 89(g_tTex2s1) DescriptorSet 0 - Decorate 113(g_tTex2s2) DescriptorSet 0 - Decorate 139(g_tTex2s3) DescriptorSet 0 - Decorate 167(g_tTex2s4) DescriptorSet 0 - Decorate 201(g_tTex2s5) DescriptorSet 0 - Decorate 224(g_tTex2s1a) DescriptorSet 0 - Decorate 231(@entryPointOutput) Location 0 + Decorate 90(g_tTex2s1) DescriptorSet 0 + Decorate 114(g_tTex2s2) DescriptorSet 0 + Decorate 140(g_tTex2s3) DescriptorSet 0 + Decorate 168(g_tTex2s4) DescriptorSet 0 + Decorate 202(g_tTex2s5) DescriptorSet 0 + Decorate 229(g_tTex2s1a) DescriptorSet 0 + Decorate 238(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypePointer UniformConstant 7 + 8: TypePointer Function 7 9: TypeVector 6(float) 2 10(s1_t): TypeStruct 6(float) 9(fvec2) 6(float) 11: TypeFunction 10(s1_t) 8(ptr) @@ -941,54 +944,55 @@ gl_FragCoord origin is upper left 57: 40(int) Constant 2 58: 42(int) Constant 3 70: TypePointer Function 16(s2_t) - 89(g_tTex2s1): 8(ptr) Variable UniformConstant - 93: 6(float) Constant 1036831949 - 94: 6(float) Constant 1038174126 - 95: 9(fvec2) ConstantComposite 93 94 - 113(g_tTex2s2): 8(ptr) Variable UniformConstant - 117: 6(float) Constant 1045220557 - 118: 6(float) Constant 1045891645 - 119: 9(fvec2) ConstantComposite 117 118 - 135(s3_t): TypeStruct 9(fvec2) 6(float) - 136: TypePointer Function 135(s3_t) - 139(g_tTex2s3): 8(ptr) Variable UniformConstant - 143: 6(float) Constant 1050253722 - 144: 6(float) Constant 1050589266 - 145: 9(fvec2) ConstantComposite 143 144 - 158: TypeVector 40(int) 2 - 159(s4_t): TypeStruct 40(int) 158(ivec2) 40(int) - 160: TypePointer Function 159(s4_t) - 162: TypeVector 40(int) 4 - 163: TypePointer Function 162(ivec4) - 165: TypeImage 40(int) 2D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex2s4): 166(ptr) Variable UniformConstant - 170: TypeSampledImage 165 - 172: 6(float) Constant 1053609165 - 173: 6(float) Constant 1053944709 - 174: 9(fvec2) ConstantComposite 172 173 - 177: TypePointer Function 40(int) - 193(s5_t): TypeStruct 42(int) 42(int) - 194: TypePointer Function 193(s5_t) - 196: TypeVector 42(int) 4 - 197: TypePointer Function 196(ivec4) - 199: TypeImage 42(int) 2D sampled format:Unknown - 200: TypePointer UniformConstant 199 - 201(g_tTex2s5): 200(ptr) Variable UniformConstant - 204: TypeSampledImage 199 - 206: 6(float) Constant 1056964608 - 207: 6(float) Constant 1057132380 - 208: 9(fvec2) ConstantComposite 206 207 - 211: TypePointer Function 42(int) - 224(g_tTex2s1a): 8(ptr) Variable UniformConstant - 226: 6(float) Constant 0 - 227: 21(fvec4) ConstantComposite 226 226 226 226 - 230: TypePointer Output 21(fvec4) -231(@entryPointOutput): 230(ptr) Variable Output + 89: TypePointer UniformConstant 7 + 90(g_tTex2s1): 89(ptr) Variable UniformConstant + 94: 6(float) Constant 1036831949 + 95: 6(float) Constant 1038174126 + 96: 9(fvec2) ConstantComposite 94 95 + 114(g_tTex2s2): 89(ptr) Variable UniformConstant + 118: 6(float) Constant 1045220557 + 119: 6(float) Constant 1045891645 + 120: 9(fvec2) ConstantComposite 118 119 + 136(s3_t): TypeStruct 9(fvec2) 6(float) + 137: TypePointer Function 136(s3_t) + 140(g_tTex2s3): 89(ptr) Variable UniformConstant + 144: 6(float) Constant 1050253722 + 145: 6(float) Constant 1050589266 + 146: 9(fvec2) ConstantComposite 144 145 + 159: TypeVector 40(int) 2 + 160(s4_t): TypeStruct 40(int) 159(ivec2) 40(int) + 161: TypePointer Function 160(s4_t) + 163: TypeVector 40(int) 4 + 164: TypePointer Function 163(ivec4) + 166: TypeImage 40(int) 2D sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTex2s4): 167(ptr) Variable UniformConstant + 171: TypeSampledImage 166 + 173: 6(float) Constant 1053609165 + 174: 6(float) Constant 1053944709 + 175: 9(fvec2) ConstantComposite 173 174 + 178: TypePointer Function 40(int) + 194(s5_t): TypeStruct 42(int) 42(int) + 195: TypePointer Function 194(s5_t) + 197: TypeVector 42(int) 4 + 198: TypePointer Function 197(ivec4) + 200: TypeImage 42(int) 2D sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTex2s5): 201(ptr) Variable UniformConstant + 205: TypeSampledImage 200 + 207: 6(float) Constant 1056964608 + 208: 6(float) Constant 1057132380 + 209: 9(fvec2) ConstantComposite 207 208 + 212: TypePointer Function 42(int) + 229(g_tTex2s1a): 89(ptr) Variable UniformConstant + 233: 6(float) Constant 0 + 234: 21(fvec4) ConstantComposite 233 233 233 233 + 237: TypePointer Output 21(fvec4) +238(@entryPointOutput): 237(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 232: 21(fvec4) FunctionCall 23(@main() - Store 231(@entryPointOutput) 232 + 239: 21(fvec4) FunctionCall 23(@main() + Store 238(@entryPointOutput) 239 Return FunctionEnd 13(fn1(t2-tx-struct0-1;): 10(s1_t) Function None 11 @@ -1053,132 +1057,141 @@ gl_FragCoord origin is upper left 24: Label 87(s1): 38(ptr) Variable Function 88(@sampleResultShadow): 25(ptr) Variable Function -97(@sampleStructTemp): 38(ptr) Variable Function - 111(s2): 70(ptr) Variable Function -112(@sampleResultShadow): 25(ptr) Variable Function -121(@sampleStructTemp): 70(ptr) Variable Function - 137(s3): 136(ptr) Variable Function -138(@sampleResultShadow): 25(ptr) Variable Function -147(@sampleStructTemp): 136(ptr) Variable Function - 161(s4): 160(ptr) Variable Function -164(@sampleResultShadow): 163(ptr) Variable Function -176(@sampleStructTemp): 160(ptr) Variable Function - 195(s5): 194(ptr) Variable Function -198(@sampleResultShadow): 197(ptr) Variable Function -210(@sampleStructTemp): 194(ptr) Variable Function - 219(r0): 38(ptr) Variable Function - 221(r1): 70(ptr) Variable Function - 223(r2): 38(ptr) Variable Function - 90: 7 Load 89(g_tTex2s1) - 91: 28 Load 30(g_sSamp) - 92: 32 SampledImage 90 91 - 96: 21(fvec4) ImageSampleImplicitLod 92 95 - Store 88(@sampleResultShadow) 96 - 98: 44(ptr) AccessChain 88(@sampleResultShadow) 43 - 99: 6(float) Load 98 - 100: 44(ptr) AccessChain 97(@sampleStructTemp) 41 - Store 100 99 - 101: 44(ptr) AccessChain 88(@sampleResultShadow) 49 - 102: 6(float) Load 101 - 103: 44(ptr) AccessChain 97(@sampleStructTemp) 48 43 - Store 103 102 - 104: 44(ptr) AccessChain 88(@sampleResultShadow) 53 - 105: 6(float) Load 104 - 106: 44(ptr) AccessChain 97(@sampleStructTemp) 48 49 - Store 106 105 - 107: 44(ptr) AccessChain 88(@sampleResultShadow) 58 - 108: 6(float) Load 107 - 109: 44(ptr) AccessChain 97(@sampleStructTemp) 57 - Store 109 108 - 110: 10(s1_t) Load 97(@sampleStructTemp) - Store 87(s1) 110 - 114: 7 Load 113(g_tTex2s2) - 115: 28 Load 30(g_sSamp) - 116: 32 SampledImage 114 115 - 120: 21(fvec4) ImageSampleImplicitLod 116 119 - Store 112(@sampleResultShadow) 120 - 122: 44(ptr) AccessChain 112(@sampleResultShadow) 43 - 123: 6(float) Load 122 - 124: 44(ptr) AccessChain 121(@sampleStructTemp) 41 - Store 124 123 - 125: 44(ptr) AccessChain 112(@sampleResultShadow) 49 - 126: 6(float) Load 125 - 127: 44(ptr) AccessChain 121(@sampleStructTemp) 48 43 - Store 127 126 - 128: 44(ptr) AccessChain 112(@sampleResultShadow) 53 - 129: 6(float) Load 128 - 130: 44(ptr) AccessChain 121(@sampleStructTemp) 48 49 - Store 130 129 - 131: 44(ptr) AccessChain 112(@sampleResultShadow) 58 - 132: 6(float) Load 131 - 133: 44(ptr) AccessChain 121(@sampleStructTemp) 48 53 - Store 133 132 - 134: 16(s2_t) Load 121(@sampleStructTemp) - Store 111(s2) 134 - 140: 7 Load 139(g_tTex2s3) - 141: 28 Load 30(g_sSamp) - 142: 32 SampledImage 140 141 - 146: 21(fvec4) ImageSampleImplicitLod 142 145 - Store 138(@sampleResultShadow) 146 - 148: 44(ptr) AccessChain 138(@sampleResultShadow) 43 - 149: 6(float) Load 148 - 150: 44(ptr) AccessChain 147(@sampleStructTemp) 41 43 - Store 150 149 - 151: 44(ptr) AccessChain 138(@sampleResultShadow) 49 - 152: 6(float) Load 151 - 153: 44(ptr) AccessChain 147(@sampleStructTemp) 41 49 - Store 153 152 - 154: 44(ptr) AccessChain 138(@sampleResultShadow) 53 - 155: 6(float) Load 154 - 156: 44(ptr) AccessChain 147(@sampleStructTemp) 48 - Store 156 155 - 157: 135(s3_t) Load 147(@sampleStructTemp) - Store 137(s3) 157 - 168: 165 Load 167(g_tTex2s4) - 169: 28 Load 30(g_sSamp) - 171: 170 SampledImage 168 169 - 175: 162(ivec4) ImageSampleImplicitLod 171 174 - Store 164(@sampleResultShadow) 175 - 178: 177(ptr) AccessChain 164(@sampleResultShadow) 43 - 179: 40(int) Load 178 - 180: 177(ptr) AccessChain 176(@sampleStructTemp) 41 - Store 180 179 - 181: 177(ptr) AccessChain 164(@sampleResultShadow) 49 - 182: 40(int) Load 181 - 183: 6(float) ConvertSToF 182 - 184: 177(ptr) AccessChain 176(@sampleStructTemp) 48 43 - Store 184 183 - 185: 177(ptr) AccessChain 164(@sampleResultShadow) 53 - 186: 40(int) Load 185 - 187: 6(float) ConvertSToF 186 - 188: 177(ptr) AccessChain 176(@sampleStructTemp) 48 49 - Store 188 187 - 189: 177(ptr) AccessChain 164(@sampleResultShadow) 58 - 190: 40(int) Load 189 - 191: 177(ptr) AccessChain 176(@sampleStructTemp) 57 - Store 191 190 - 192: 159(s4_t) Load 176(@sampleStructTemp) - Store 161(s4) 192 - 202: 199 Load 201(g_tTex2s5) - 203: 28 Load 30(g_sSamp) - 205: 204 SampledImage 202 203 - 209: 196(ivec4) ImageSampleImplicitLod 205 208 - Store 198(@sampleResultShadow) 209 - 212: 211(ptr) AccessChain 198(@sampleResultShadow) 43 - 213: 42(int) Load 212 - 214: 211(ptr) AccessChain 210(@sampleStructTemp) 41 - Store 214 213 - 215: 211(ptr) AccessChain 198(@sampleResultShadow) 49 - 216: 42(int) Load 215 - 217: 211(ptr) AccessChain 210(@sampleStructTemp) 48 - Store 217 216 - 218: 193(s5_t) Load 210(@sampleStructTemp) - Store 195(s5) 218 - 220: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 89(g_tTex2s1) - Store 219(r0) 220 - 222: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 113(g_tTex2s2) - Store 221(r1) 222 - 225: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 224(g_tTex2s1a) - Store 223(r2) 225 - ReturnValue 227 +98(@sampleStructTemp): 38(ptr) Variable Function + 112(s2): 70(ptr) Variable Function +113(@sampleResultShadow): 25(ptr) Variable Function +122(@sampleStructTemp): 70(ptr) Variable Function + 138(s3): 137(ptr) Variable Function +139(@sampleResultShadow): 25(ptr) Variable Function +148(@sampleStructTemp): 137(ptr) Variable Function + 162(s4): 161(ptr) Variable Function +165(@sampleResultShadow): 164(ptr) Variable Function +177(@sampleStructTemp): 161(ptr) Variable Function + 196(s5): 195(ptr) Variable Function +199(@sampleResultShadow): 198(ptr) Variable Function +211(@sampleStructTemp): 195(ptr) Variable Function + 220(r0): 38(ptr) Variable Function + 221(param): 8(ptr) Variable Function + 224(r1): 70(ptr) Variable Function + 225(param): 8(ptr) Variable Function + 228(r2): 38(ptr) Variable Function + 230(param): 8(ptr) Variable Function + 91: 7 Load 90(g_tTex2s1) + 92: 28 Load 30(g_sSamp) + 93: 32 SampledImage 91 92 + 97: 21(fvec4) ImageSampleImplicitLod 93 96 + Store 88(@sampleResultShadow) 97 + 99: 44(ptr) AccessChain 88(@sampleResultShadow) 43 + 100: 6(float) Load 99 + 101: 44(ptr) AccessChain 98(@sampleStructTemp) 41 + Store 101 100 + 102: 44(ptr) AccessChain 88(@sampleResultShadow) 49 + 103: 6(float) Load 102 + 104: 44(ptr) AccessChain 98(@sampleStructTemp) 48 43 + Store 104 103 + 105: 44(ptr) AccessChain 88(@sampleResultShadow) 53 + 106: 6(float) Load 105 + 107: 44(ptr) AccessChain 98(@sampleStructTemp) 48 49 + Store 107 106 + 108: 44(ptr) AccessChain 88(@sampleResultShadow) 58 + 109: 6(float) Load 108 + 110: 44(ptr) AccessChain 98(@sampleStructTemp) 57 + Store 110 109 + 111: 10(s1_t) Load 98(@sampleStructTemp) + Store 87(s1) 111 + 115: 7 Load 114(g_tTex2s2) + 116: 28 Load 30(g_sSamp) + 117: 32 SampledImage 115 116 + 121: 21(fvec4) ImageSampleImplicitLod 117 120 + Store 113(@sampleResultShadow) 121 + 123: 44(ptr) AccessChain 113(@sampleResultShadow) 43 + 124: 6(float) Load 123 + 125: 44(ptr) AccessChain 122(@sampleStructTemp) 41 + Store 125 124 + 126: 44(ptr) AccessChain 113(@sampleResultShadow) 49 + 127: 6(float) Load 126 + 128: 44(ptr) AccessChain 122(@sampleStructTemp) 48 43 + Store 128 127 + 129: 44(ptr) AccessChain 113(@sampleResultShadow) 53 + 130: 6(float) Load 129 + 131: 44(ptr) AccessChain 122(@sampleStructTemp) 48 49 + Store 131 130 + 132: 44(ptr) AccessChain 113(@sampleResultShadow) 58 + 133: 6(float) Load 132 + 134: 44(ptr) AccessChain 122(@sampleStructTemp) 48 53 + Store 134 133 + 135: 16(s2_t) Load 122(@sampleStructTemp) + Store 112(s2) 135 + 141: 7 Load 140(g_tTex2s3) + 142: 28 Load 30(g_sSamp) + 143: 32 SampledImage 141 142 + 147: 21(fvec4) ImageSampleImplicitLod 143 146 + Store 139(@sampleResultShadow) 147 + 149: 44(ptr) AccessChain 139(@sampleResultShadow) 43 + 150: 6(float) Load 149 + 151: 44(ptr) AccessChain 148(@sampleStructTemp) 41 43 + Store 151 150 + 152: 44(ptr) AccessChain 139(@sampleResultShadow) 49 + 153: 6(float) Load 152 + 154: 44(ptr) AccessChain 148(@sampleStructTemp) 41 49 + Store 154 153 + 155: 44(ptr) AccessChain 139(@sampleResultShadow) 53 + 156: 6(float) Load 155 + 157: 44(ptr) AccessChain 148(@sampleStructTemp) 48 + Store 157 156 + 158: 136(s3_t) Load 148(@sampleStructTemp) + Store 138(s3) 158 + 169: 166 Load 168(g_tTex2s4) + 170: 28 Load 30(g_sSamp) + 172: 171 SampledImage 169 170 + 176: 163(ivec4) ImageSampleImplicitLod 172 175 + Store 165(@sampleResultShadow) 176 + 179: 178(ptr) AccessChain 165(@sampleResultShadow) 43 + 180: 40(int) Load 179 + 181: 178(ptr) AccessChain 177(@sampleStructTemp) 41 + Store 181 180 + 182: 178(ptr) AccessChain 165(@sampleResultShadow) 49 + 183: 40(int) Load 182 + 184: 6(float) ConvertSToF 183 + 185: 178(ptr) AccessChain 177(@sampleStructTemp) 48 43 + Store 185 184 + 186: 178(ptr) AccessChain 165(@sampleResultShadow) 53 + 187: 40(int) Load 186 + 188: 6(float) ConvertSToF 187 + 189: 178(ptr) AccessChain 177(@sampleStructTemp) 48 49 + Store 189 188 + 190: 178(ptr) AccessChain 165(@sampleResultShadow) 58 + 191: 40(int) Load 190 + 192: 178(ptr) AccessChain 177(@sampleStructTemp) 57 + Store 192 191 + 193: 160(s4_t) Load 177(@sampleStructTemp) + Store 162(s4) 193 + 203: 200 Load 202(g_tTex2s5) + 204: 28 Load 30(g_sSamp) + 206: 205 SampledImage 203 204 + 210: 197(ivec4) ImageSampleImplicitLod 206 209 + Store 199(@sampleResultShadow) 210 + 213: 212(ptr) AccessChain 199(@sampleResultShadow) 43 + 214: 42(int) Load 213 + 215: 212(ptr) AccessChain 211(@sampleStructTemp) 41 + Store 215 214 + 216: 212(ptr) AccessChain 199(@sampleResultShadow) 49 + 217: 42(int) Load 216 + 218: 212(ptr) AccessChain 211(@sampleStructTemp) 48 + Store 218 217 + 219: 194(s5_t) Load 211(@sampleStructTemp) + Store 196(s5) 219 + 222: 7 Load 90(g_tTex2s1) + Store 221(param) 222 + 223: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 221(param) + Store 220(r0) 223 + 226: 7 Load 114(g_tTex2s2) + Store 225(param) 226 + 227: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 225(param) + Store 224(r1) 227 + 231: 7 Load 229(g_tTex2s1a) + Store 230(param) 231 + 232: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 230(param) + Store 228(r2) 232 + ReturnValue 234 FunctionEnd diff --git a/Test/baseResults/hlsl.tx.overload.frag.out b/Test/baseResults/hlsl.tx.overload.frag.out index 3dafcd92..8a3ed0a7 100644 --- a/Test/baseResults/hlsl.tx.overload.frag.out +++ b/Test/baseResults/hlsl.tx.overload.frag.out @@ -135,12 +135,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 62 +// Id's are bound by 73 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 60 + EntryPoint Fragment 4 "main" 71 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -153,44 +153,51 @@ gl_FragCoord origin is upper left Name 28 "Func(I21;" Name 27 "DummyTex" Name 31 "@main(" - Name 44 "tf1" - Name 46 "tf4" - Name 50 "twf1" - Name 54 "twf4" - Name 60 "@entryPointOutput" - Decorate 44(tf1) DescriptorSet 0 - Decorate 46(tf4) DescriptorSet 0 - Decorate 50(twf1) DescriptorSet 0 - Decorate 54(twf4) DescriptorSet 0 - Decorate 60(@entryPointOutput) Location 0 + Name 45 "tf1" + Name 46 "param" + Name 49 "tf4" + Name 50 "param" + Name 56 "twf1" + Name 57 "param" + Name 63 "twf4" + Name 64 "param" + Name 71 "@entryPointOutput" + Decorate 45(tf1) DescriptorSet 0 + Decorate 49(tf4) DescriptorSet 0 + Decorate 56(twf1) DescriptorSet 0 + Decorate 63(twf4) DescriptorSet 0 + Decorate 71(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypePointer UniformConstant 7 + 8: TypePointer Function 7 9: TypeFunction 6(float) 8(ptr) 13: TypeVector 6(float) 4 14: TypeFunction 13(fvec4) 8(ptr) 18: TypeImage 6(float) 2D nonsampled format:R32f - 19: TypePointer UniformConstant 18 + 19: TypePointer Function 18 20: TypeFunction 6(float) 19(ptr) 24: TypeImage 6(float) 2D nonsampled format:Rgba32f - 25: TypePointer UniformConstant 24 + 25: TypePointer Function 24 26: TypeFunction 13(fvec4) 25(ptr) 30: TypeFunction 13(fvec4) 33: 6(float) Constant 1065353216 36: 6(float) Constant 0 37: 13(fvec4) ConstantComposite 36 36 36 36 - 44(tf1): 8(ptr) Variable UniformConstant - 46(tf4): 8(ptr) Variable UniformConstant - 50(twf1): 19(ptr) Variable UniformConstant - 54(twf4): 25(ptr) Variable UniformConstant - 59: TypePointer Output 13(fvec4) -60(@entryPointOutput): 59(ptr) Variable Output + 44: TypePointer UniformConstant 7 + 45(tf1): 44(ptr) Variable UniformConstant + 49(tf4): 44(ptr) Variable UniformConstant + 55: TypePointer UniformConstant 18 + 56(twf1): 55(ptr) Variable UniformConstant + 62: TypePointer UniformConstant 24 + 63(twf4): 62(ptr) Variable UniformConstant + 70: TypePointer Output 13(fvec4) +71(@entryPointOutput): 70(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 61: 13(fvec4) FunctionCall 31(@main() - Store 60(@entryPointOutput) 61 + 72: 13(fvec4) FunctionCall 31(@main() + Store 71(@entryPointOutput) 72 Return FunctionEnd 11(Func(t211;): 6(float) Function None 9 @@ -215,14 +222,26 @@ gl_FragCoord origin is upper left FunctionEnd 31(@main(): 13(fvec4) Function None 30 32: Label - 45: 6(float) FunctionCall 11(Func(t211;) 44(tf1) - 47: 13(fvec4) FunctionCall 16(Func(t21;) 46(tf4) - 48: 13(fvec4) CompositeConstruct 45 45 45 45 - 49: 13(fvec4) FAdd 48 47 - 51: 6(float) FunctionCall 22(Func(I211;) 50(twf1) - 52: 13(fvec4) CompositeConstruct 51 51 51 51 - 53: 13(fvec4) FAdd 49 52 - 55: 13(fvec4) FunctionCall 28(Func(I21;) 54(twf4) - 56: 13(fvec4) FAdd 53 55 - ReturnValue 56 + 46(param): 8(ptr) Variable Function + 50(param): 8(ptr) Variable Function + 57(param): 19(ptr) Variable Function + 64(param): 25(ptr) Variable Function + 47: 7 Load 45(tf1) + Store 46(param) 47 + 48: 6(float) FunctionCall 11(Func(t211;) 46(param) + 51: 7 Load 49(tf4) + Store 50(param) 51 + 52: 13(fvec4) FunctionCall 16(Func(t21;) 50(param) + 53: 13(fvec4) CompositeConstruct 48 48 48 48 + 54: 13(fvec4) FAdd 53 52 + 58: 18 Load 56(twf1) + Store 57(param) 58 + 59: 6(float) FunctionCall 22(Func(I211;) 57(param) + 60: 13(fvec4) CompositeConstruct 59 59 59 59 + 61: 13(fvec4) FAdd 54 60 + 65: 24 Load 63(twf4) + Store 64(param) 65 + 66: 13(fvec4) FunctionCall 28(Func(I21;) 64(param) + 67: 13(fvec4) FAdd 61 66 + ReturnValue 67 FunctionEnd