diff --git a/Test/baseResults/hlsl.sample.basicarraydx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.basicarraydx10.frag.out rename to Test/baseResults/hlsl.sample.array.dx10.frag.out index de92747ae..99784de35 100644 --- a/Test/baseResults/hlsl.sample.basicarraydx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.basicarraydx10.frag +hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence diff --git a/Test/baseResults/hlsl.sample.basicdx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.basicdx10.frag.out rename to Test/baseResults/hlsl.sample.basic.dx10.frag.out index 9c64bdf69..234e3888d 100644 --- a/Test/baseResults/hlsl.sample.basicdx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.basicdx10.frag +hlsl.sample.basic.dx10.frag WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 diff --git a/Test/baseResults/hlsl.sample.offsetdx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.offsetdx10.frag.out rename to Test/baseResults/hlsl.sample.offset.dx10.frag.out index d75de25bc..09e94a7a4 100644 --- a/Test/baseResults/hlsl.sample.offsetdx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.offsetdx10.frag +hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence diff --git a/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.offsetarraydx10.frag.out rename to Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 40e3ecd94..38119f760 100644 --- a/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.offsetarraydx10.frag +hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out new file mode 100644 index 000000000..96d9be7c9 --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -0,0 +1,482 @@ +hlsl.samplebias.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 texture (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.500000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 texture (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.500000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 texture (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.500000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.500000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 texture (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.500000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 texture (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.500000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 texture (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.500000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.500000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 129 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 65 "txval21" + Name 68 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 87 "txval40" + Name 90 "g_tTexcdf4" + Name 97 "txval41" + Name 100 "g_tTexcdi4" + Name 107 "txval42" + Name 110 "g_tTexcdu4" + Name 120 "PS_OUTPUT" + MemberName 120(PS_OUTPUT) 0 "Color" + MemberName 120(PS_OUTPUT) 1 "Depth" + Name 122 "psout" + Name 128 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 68(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 110(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 128(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1056964608 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 26(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1053609165 + 52: 20(fvec2) ConstantComposite 37 51 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 3 + 63: 62(fvec3) ConstantComposite 21 22 37 + 66: TypeImage 26(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2di4): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 62(fvec3) ConstantComposite 37 51 24 + 76: TypeImage 40(int) 2D array sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1058642330 + 84: 6(float) Constant 1060320051 + 85: 62(fvec3) ConstantComposite 24 83 84 + 88: TypeImage 6(float) Cube array sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 7(fvec4) ConstantComposite 21 22 37 51 + 98: TypeImage 26(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 7(fvec4) ConstantComposite 51 24 83 84 + 108: TypeImage 40(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTexcdu4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1061997773 + 116: 6(float) Constant 1063675494 + 117: 6(float) Constant 1065353216 + 118: 7(fvec4) ConstantComposite 84 115 116 117 + 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 121: TypePointer Function 120(PS_OUTPUT) + 123: 26(int) Constant 1 + 124: TypePointer Function 6(float) +128(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 54(txval20): 8(ptr) Variable Function + 65(txval21): 28(ptr) Variable Function + 75(txval22): 42(ptr) Variable Function + 87(txval40): 8(ptr) Variable Function + 97(txval41): 28(ptr) Variable Function + 107(txval42): 42(ptr) Variable Function + 122(psout): 121(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleImplicitLod 19 23 Bias 24 + Store 9(txval10) 25 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 39: 27(ivec4) ImageSampleImplicitLod 36 38 Bias 24 + Store 29(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 53: 41(ivec4) ImageSampleImplicitLod 50 52 Bias 24 + Store 43(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 14 Load 16(g_sSamp) + 61: 60 SampledImage 58 59 + 64: 7(fvec4) ImageSampleImplicitLod 61 63 Bias 24 + Store 54(txval20) 64 + 69: 66 Load 68(g_tTex2di4) + 70: 14 Load 16(g_sSamp) + 72: 71 SampledImage 69 70 + 74: 27(ivec4) ImageSampleImplicitLod 72 73 Bias 24 + Store 65(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 41(ivec4) ImageSampleImplicitLod 82 85 Bias 24 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 14 Load 16(g_sSamp) + 94: 93 SampledImage 91 92 + 96: 7(fvec4) ImageSampleImplicitLod 94 95 Bias 24 + Store 87(txval40) 96 + 101: 98 Load 100(g_tTexcdi4) + 102: 14 Load 16(g_sSamp) + 104: 103 SampledImage 101 102 + 106: 27(ivec4) ImageSampleImplicitLod 104 105 Bias 24 + Store 97(txval41) 106 + 111: 108 Load 110(g_tTexcdu4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 24 + Store 107(txval42) 119 + 125: 124(ptr) AccessChain 122(psout) 123 + Store 125 117 + 126:120(PS_OUTPUT) Load 122(psout) + ReturnValue 126 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out new file mode 100644 index 000000000..3fb36ee5a --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -0,0 +1,583 @@ +hlsl.samplebias.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 texture (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 texture (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 texture (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 texture (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:43 Constant: +0:43 0.500000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 texture (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:44 Constant: +0:44 0.500000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 texture (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 Constant: +0:45 0.500000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 texture (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 texture (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 texture (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 texture (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:43 Constant: +0:43 0.500000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 texture (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:44 Constant: +0:44 0.500000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 texture (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 Constant: +0:45 0.500000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 153 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 82 "txval30" + Name 85 "g_tTex3df4" + Name 93 "txval31" + Name 96 "g_tTex3di4" + Name 103 "txval32" + Name 106 "g_tTex3du4" + Name 116 "txval40" + Name 119 "g_tTexcdf4" + Name 125 "txval41" + Name 128 "g_tTexcdi4" + Name 134 "txval42" + Name 137 "g_tTexcdu4" + Name 143 "PS_OUTPUT" + MemberName 143(PS_OUTPUT) 0 "Color" + MemberName 143(PS_OUTPUT) 1 "Depth" + Name 145 "psout" + Name 152 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 85(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 119(g_tTexcdf4) DescriptorSet 0 + Decorate 128(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 152(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1056964608 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1058642330 + 80: 57(fvec2) ConstantComposite 21 79 + 83: TypeImage 6(float) 3D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex3df4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: TypeVector 6(float) 3 + 91: 90(fvec3) ConstantComposite 20 34 47 + 94: TypeImage 23(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 99: TypeSampledImage 94 + 101: 90(fvec3) ConstantComposite 68 21 79 + 104: TypeImage 36(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 6(float) Constant 1060320051 + 112: 6(float) Constant 1061997773 + 113: 6(float) Constant 1063675494 + 114: 90(fvec3) ConstantComposite 111 112 113 + 117: TypeImage 6(float) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdf4): 118(ptr) Variable UniformConstant + 122: TypeSampledImage 117 + 126: TypeImage 23(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdi4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 135: TypeImage 36(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 140: TypeSampledImage 135 + 143(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 144: TypePointer Function 143(PS_OUTPUT) + 146: 23(int) Constant 1 + 147: 6(float) Constant 1065353216 + 148: TypePointer Function 6(float) +152(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 82(txval30): 8(ptr) Variable Function + 93(txval31): 25(ptr) Variable Function + 103(txval32): 38(ptr) Variable Function + 116(txval40): 8(ptr) Variable Function + 125(txval41): 25(ptr) Variable Function + 134(txval42): 38(ptr) Variable Function + 145(psout): 144(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleImplicitLod 19 20 Bias 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleImplicitLod 33 34 Bias 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleImplicitLod 46 47 Bias 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleImplicitLod 56 58 Bias 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleImplicitLod 67 69 Bias 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 81: 37(ivec4) ImageSampleImplicitLod 78 80 Bias 21 + Store 71(txval22) 81 + 86: 83 Load 85(g_tTex3df4) + 87: 14 Load 16(g_sSamp) + 89: 88 SampledImage 86 87 + 92: 7(fvec4) ImageSampleImplicitLod 89 91 Bias 21 + Store 82(txval30) 92 + 97: 94 Load 96(g_tTex3di4) + 98: 14 Load 16(g_sSamp) + 100: 99 SampledImage 97 98 + 102: 24(ivec4) ImageSampleImplicitLod 100 101 Bias 21 + Store 93(txval31) 102 + 107: 104 Load 106(g_tTex3du4) + 108: 14 Load 16(g_sSamp) + 110: 109 SampledImage 107 108 + 115: 37(ivec4) ImageSampleImplicitLod 110 114 Bias 21 + Store 103(txval32) 115 + 120: 117 Load 119(g_tTexcdf4) + 121: 14 Load 16(g_sSamp) + 123: 122 SampledImage 120 121 + 124: 7(fvec4) ImageSampleImplicitLod 123 91 Bias 21 + Store 116(txval40) 124 + 129: 126 Load 128(g_tTexcdi4) + 130: 14 Load 16(g_sSamp) + 132: 131 SampledImage 129 130 + 133: 24(ivec4) ImageSampleImplicitLod 132 101 Bias 21 + Store 125(txval41) 133 + 138: 135 Load 137(g_tTexcdu4) + 139: 14 Load 16(g_sSamp) + 141: 140 SampledImage 138 139 + 142: 37(ivec4) ImageSampleImplicitLod 141 114 Bias 21 + Store 134(txval42) 142 + 149: 148(ptr) AccessChain 145(psout) 146 + Store 149 147 + 150:143(PS_OUTPUT) Load 145(psout) + ReturnValue 150 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out new file mode 100644 index 000000000..8faab19d5 --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -0,0 +1,545 @@ +hlsl.samplebias.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 113 "txval32" + Name 116 "g_tTex3du4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 135 "g_tTex1df4a" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 116(g_tTex3du4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 135(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1056964608 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 25: TypeVector 22(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 22(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: TypeVector 22(int) 2 + 61: 22(int) Constant 0 + 62: 60(ivec2) ConstantComposite 23 61 + 65: TypeImage 22(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 58(fvec2) ConstantComposite 48 72 + 74: 60(ivec2) ConstantComposite 23 23 + 77: TypeImage 37(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1058642330 + 85: 58(fvec2) ConstantComposite 21 84 + 86: 22(int) Constant 4294967295 + 87: 60(ivec2) ConstantComposite 23 86 + 90: TypeImage 6(float) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3df4): 91(ptr) Variable UniformConstant + 95: TypeSampledImage 90 + 97: TypeVector 6(float) 3 + 98: 97(fvec3) ConstantComposite 20 35 48 + 99: TypeVector 22(int) 3 + 100: 99(ivec3) ConstantComposite 23 61 23 + 103: TypeImage 22(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 72 21 84 + 111: 99(ivec3) ConstantComposite 23 23 23 + 114: TypeImage 37(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3du4): 115(ptr) Variable UniformConstant + 119: TypeSampledImage 114 + 121: 6(float) Constant 1060320051 + 122: 6(float) Constant 1061997773 + 123: 6(float) Constant 1063675494 + 124: 97(fvec3) ConstantComposite 121 122 123 + 125: 99(ivec3) ConstantComposite 23 61 86 + 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 6(float) Constant 1065353216 + 131: TypePointer Function 6(float) +135(g_tTex1df4a): 11(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 22(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 37(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 64(txval21): 26(ptr) Variable Function + 76(txval22): 39(ptr) Variable Function + 89(txval30): 8(ptr) Variable Function + 102(txval31): 26(ptr) Variable Function + 113(txval32): 39(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 20 Bias ConstOffset 23 21 + Store 9(txval10) 24 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleImplicitLod 34 35 Bias ConstOffset 23 21 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleImplicitLod 47 48 Bias ConstOffset 23 21 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 63: 7(fvec4) ImageSampleImplicitLod 57 59 Bias ConstOffset 62 21 + Store 50(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 75: 25(ivec4) ImageSampleImplicitLod 71 73 Bias ConstOffset 74 21 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 88: 38(ivec4) ImageSampleImplicitLod 83 85 Bias ConstOffset 87 21 + Store 76(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 14 Load 16(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleImplicitLod 96 98 Bias ConstOffset 100 21 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 14 Load 16(g_sSamp) + 109: 108 SampledImage 106 107 + 112: 25(ivec4) ImageSampleImplicitLod 109 110 Bias ConstOffset 111 21 + Store 102(txval31) 112 + 117: 114 Load 116(g_tTex3du4) + 118: 14 Load 16(g_sSamp) + 120: 119 SampledImage 117 118 + 126: 38(ivec4) ImageSampleImplicitLod 120 124 Bias ConstOffset 125 21 + Store 113(txval32) 126 + 132: 131(ptr) AccessChain 129(psout) 23 + Store 132 130 + 133:127(PS_OUTPUT) Load 129(psout) + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out new file mode 100644 index 000000000..51f61235a --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -0,0 +1,382 @@ +hlsl.samplebias.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.500000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.500000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.500000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.500000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.500000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.500000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 102 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 101 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 101(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1056964608 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1050253722 + 39: 20(fvec2) ConstantComposite 22 38 + 40: 25(int) Constant 1 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1053609165 + 54: 20(fvec2) ConstantComposite 38 53 + 55: 25(int) Constant 2 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: TypeVector 6(float) 3 + 66: 65(fvec3) ConstantComposite 21 22 38 + 67: TypeVector 25(int) 2 + 68: 67(ivec2) ConstantComposite 26 26 + 71: TypeImage 25(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 65(fvec3) ConstantComposite 38 53 24 + 81: TypeImage 42(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 6(float) Constant 1060320051 + 90: 65(fvec3) ConstantComposite 24 88 89 + 91: 67(ivec2) ConstantComposite 26 40 + 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 6(float) Constant 1065353216 + 97: TypePointer Function 6(float) +101(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 57(txval20): 8(ptr) Variable Function + 70(txval21): 29(ptr) Variable Function + 80(txval22): 44(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageSampleImplicitLod 19 23 Bias ConstOffset 26 24 + Store 9(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageSampleImplicitLod 37 39 Bias ConstOffset 40 24 + Store 30(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageSampleImplicitLod 52 54 Bias ConstOffset 55 24 + Store 45(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 69: 7(fvec4) ImageSampleImplicitLod 64 66 Bias ConstOffset 68 24 + Store 57(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 14 Load 16(g_sSamp) + 77: 76 SampledImage 74 75 + 79: 28(ivec4) ImageSampleImplicitLod 77 78 Bias ConstOffset 68 24 + Store 70(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 14 Load 16(g_sSamp) + 87: 86 SampledImage 84 85 + 92: 43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24 + Store 80(txval22) 92 + 98: 97(ptr) AccessChain 95(psout) 40 + Store 98 96 + 99:93(PS_OUTPUT) Load 95(psout) + ReturnValue 99 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out new file mode 100644 index 000000000..4d3a096b8 --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -0,0 +1,548 @@ +hlsl.samplegrad.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGrad (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGrad (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGrad (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGrad (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGrad (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGrad (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 123 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 42 "txval12" + Name 45 "g_tTex1du4" + Name 51 "txval20" + Name 54 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 82 "txval40" + Name 85 "g_tTexcdf4" + Name 95 "txval41" + Name 98 "g_tTexcdi4" + Name 104 "txval42" + Name 107 "g_tTexcdu4" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 122 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 85(g_tTexcdf4) DescriptorSet 0 + Decorate 98(g_tTexcdi4) DescriptorSet 0 + Decorate 107(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 122(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1066192077 + 25: 6(float) Constant 1067030938 + 27: TypeInt 32 1 + 28: TypeVector 27(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 27(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 52: TypeImage 6(float) 2D array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: TypeVector 6(float) 3 + 60: 6(float) Constant 1050253722 + 61: 59(fvec3) ConstantComposite 21 22 60 + 62: 20(fvec2) ConstantComposite 24 25 + 65: TypeImage 27(int) 2D array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 74: TypeImage 39(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 83: TypeImage 6(float) Cube array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTexcdf4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: 6(float) Constant 1053609165 + 91: 7(fvec4) ConstantComposite 21 22 60 90 + 92: 6(float) Constant 1067869798 + 93: 59(fvec3) ConstantComposite 24 25 92 + 96: TypeImage 27(int) Cube array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTexcdi4): 97(ptr) Variable UniformConstant + 101: TypeSampledImage 96 + 105: TypeImage 39(int) Cube array sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdu4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 113(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 27(int) Constant 1 + 117: 6(float) Constant 1065353216 + 118: TypePointer Function 6(float) +122(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 42(txval12): 41(ptr) Variable Function + 51(txval20): 8(ptr) Variable Function + 64(txval21): 29(ptr) Variable Function + 73(txval22): 41(ptr) Variable Function + 82(txval40): 8(ptr) Variable Function + 95(txval41): 29(ptr) Variable Function + 104(txval42): 41(ptr) Variable Function + 115(psout): 114(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageSampleExplicitLod 19 23 Grad 24 25 + Store 9(txval10) 26 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 38: 28(ivec4) ImageSampleExplicitLod 37 23 Grad 24 25 + Store 30(txval11) 38 + 46: 43 Load 45(g_tTex1du4) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 50: 40(ivec4) ImageSampleExplicitLod 49 23 Grad 24 25 + Store 42(txval12) 50 + 55: 52 Load 54(g_tTex2df4) + 56: 14 Load 16(g_sSamp) + 58: 57 SampledImage 55 56 + 63: 7(fvec4) ImageSampleExplicitLod 58 61 Grad 62 62 + Store 51(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 72: 28(ivec4) ImageSampleExplicitLod 71 61 Grad 62 62 + Store 64(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 81: 40(ivec4) ImageSampleExplicitLod 80 61 Grad 62 62 + Store 73(txval22) 81 + 86: 83 Load 85(g_tTexcdf4) + 87: 14 Load 16(g_sSamp) + 89: 88 SampledImage 86 87 + 94: 7(fvec4) ImageSampleExplicitLod 89 91 Grad 93 93 + Store 82(txval40) 94 + 99: 96 Load 98(g_tTexcdi4) + 100: 14 Load 16(g_sSamp) + 102: 101 SampledImage 99 100 + 103: 28(ivec4) ImageSampleExplicitLod 102 91 Grad 93 93 + Store 95(txval41) 103 + 108: 105 Load 107(g_tTexcdu4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 112: 40(ivec4) ImageSampleExplicitLod 111 91 Grad 93 93 + Store 104(txval42) 112 + 119: 118(ptr) AccessChain 115(psout) 116 + Store 119 117 + 120:113(PS_OUTPUT) Load 115(psout) + ReturnValue 120 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out new file mode 100644 index 000000000..ac5442e6e --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -0,0 +1,696 @@ +hlsl.samplegrad.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGrad (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGrad (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGrad (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 textureGrad (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 textureGrad (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 textureGrad (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGrad (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGrad (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGrad (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 textureGrad (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 textureGrad (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 textureGrad (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 158 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 62 "txval21" + Name 65 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 85 "txval30" + Name 88 "g_tTex3df4" + Name 98 "txval31" + Name 101 "g_tTex3di4" + Name 108 "txval32" + Name 111 "g_tTex3du4" + Name 121 "txval40" + Name 124 "g_tTexcdf4" + Name 130 "txval41" + Name 133 "g_tTexcdi4" + Name 139 "txval42" + Name 142 "g_tTexcdu4" + Name 148 "PS_OUTPUT" + MemberName 148(PS_OUTPUT) 0 "Color" + MemberName 148(PS_OUTPUT) 1 "Depth" + Name 150 "psout" + Name 157 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 65(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 88(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 133(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 157(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 24(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: 58(fvec2) ConstantComposite 21 22 + 63: TypeImage 24(int) 2D sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2di4): 64(ptr) Variable UniformConstant + 68: TypeSampledImage 63 + 70: 6(float) Constant 1053609165 + 71: 58(fvec2) ConstantComposite 48 70 + 74: TypeImage 37(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 6(float) Constant 1058642330 + 83: 58(fvec2) ConstantComposite 81 82 + 86: TypeImage 6(float) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3df4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: TypeVector 6(float) 3 + 94: 93(fvec3) ConstantComposite 20 35 48 + 95: 6(float) Constant 1067869798 + 96: 93(fvec3) ConstantComposite 21 22 95 + 99: TypeImage 24(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 93(fvec3) ConstantComposite 70 81 82 + 109: TypeImage 37(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1060320051 + 117: 6(float) Constant 1061997773 + 118: 6(float) Constant 1063675494 + 119: 93(fvec3) ConstantComposite 116 117 118 + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 131: TypeImage 24(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 37(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 149: TypePointer Function 148(PS_OUTPUT) + 151: 24(int) Constant 1 + 152: 6(float) Constant 1065353216 + 153: TypePointer Function 6(float) +157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 62(txval21): 26(ptr) Variable Function + 73(txval22): 39(ptr) Variable Function + 85(txval30): 8(ptr) Variable Function + 98(txval31): 26(ptr) Variable Function + 108(txval32): 39(ptr) Variable Function + 121(txval40): 8(ptr) Variable Function + 130(txval41): 26(ptr) Variable Function + 139(txval42): 39(ptr) Variable Function + 150(psout): 149(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 + Store 9(txval10) 23 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 + Store 50(txval20) 61 + 66: 63 Load 65(g_tTex2di4) + 67: 14 Load 16(g_sSamp) + 69: 68 SampledImage 66 67 + 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 + Store 62(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 + Store 73(txval22) 84 + 89: 86 Load 88(g_tTex3df4) + 90: 14 Load 16(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 + Store 85(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 14 Load 16(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 14 Load 16(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 + Store 139(txval42) 147 + 154: 153(ptr) AccessChain 150(psout) 151 + Store 154 152 + 155:148(PS_OUTPUT) Load 150(psout) + ReturnValue 155 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out new file mode 100644 index 000000000..7b4cbde92 --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -0,0 +1,698 @@ +hlsl.samplegrad.basic.dx10.vert +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureGrad (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 1.100000 +0:30 Constant: +0:30 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureGrad (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureGrad (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureGrad (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureGrad (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureGrad (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureGrad (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureGrad (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureGrad (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureGrad (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureGrad (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureGrad (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureGrad (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 1.100000 +0:30 Constant: +0:30 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureGrad (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureGrad (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureGrad (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureGrad (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureGrad (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureGrad (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureGrad (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureGrad (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureGrad (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureGrad (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureGrad (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 158 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 62 "txval21" + Name 65 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 85 "txval30" + Name 88 "g_tTex3df4" + Name 98 "txval31" + Name 101 "g_tTex3di4" + Name 108 "txval32" + Name 111 "g_tTex3du4" + Name 121 "txval40" + Name 124 "g_tTexcdf4" + Name 130 "txval41" + Name 133 "g_tTexcdi4" + Name 139 "txval42" + Name 142 "g_tTexcdu4" + Name 148 "VS_OUTPUT" + MemberName 148(VS_OUTPUT) 0 "Pos" + Name 150 "vsout" + Name 157 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 65(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 88(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 133(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 157(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 24(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: 58(fvec2) ConstantComposite 21 22 + 63: TypeImage 24(int) 2D sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2di4): 64(ptr) Variable UniformConstant + 68: TypeSampledImage 63 + 70: 6(float) Constant 1053609165 + 71: 58(fvec2) ConstantComposite 48 70 + 74: TypeImage 37(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 6(float) Constant 1058642330 + 83: 58(fvec2) ConstantComposite 81 82 + 86: TypeImage 6(float) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3df4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: TypeVector 6(float) 3 + 94: 93(fvec3) ConstantComposite 20 35 48 + 95: 6(float) Constant 1067869798 + 96: 93(fvec3) ConstantComposite 21 22 95 + 99: TypeImage 24(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 93(fvec3) ConstantComposite 70 81 82 + 109: TypeImage 37(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1060320051 + 117: 6(float) Constant 1061997773 + 118: 6(float) Constant 1063675494 + 119: 93(fvec3) ConstantComposite 116 117 118 + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 131: TypeImage 24(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 37(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148(VS_OUTPUT): TypeStruct 7(fvec4) + 149: TypePointer Function 148(VS_OUTPUT) + 151: 24(int) Constant 0 + 152: 6(float) Constant 0 + 153: 7(fvec4) ConstantComposite 152 152 152 152 +157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 62(txval21): 26(ptr) Variable Function + 73(txval22): 39(ptr) Variable Function + 85(txval30): 8(ptr) Variable Function + 98(txval31): 26(ptr) Variable Function + 108(txval32): 39(ptr) Variable Function + 121(txval40): 8(ptr) Variable Function + 130(txval41): 26(ptr) Variable Function + 139(txval42): 39(ptr) Variable Function + 150(vsout): 149(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 + Store 9(txval10) 23 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 + Store 50(txval20) 61 + 66: 63 Load 65(g_tTex2di4) + 67: 14 Load 16(g_sSamp) + 69: 68 SampledImage 66 67 + 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 + Store 62(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 + Store 73(txval22) 84 + 89: 86 Load 88(g_tTex3df4) + 90: 14 Load 16(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 + Store 85(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 14 Load 16(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 14 Load 16(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 + Store 139(txval42) 147 + 154: 8(ptr) AccessChain 150(vsout) 151 + Store 154 153 + 155:148(VS_OUTPUT) Load 150(vsout) + ReturnValue 155 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out new file mode 100644 index 000000000..30f5d06d3 --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -0,0 +1,622 @@ +hlsl.samplegrad.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGradOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGradOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGradOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGradOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGradOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGradOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGradOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGradOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGradOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGradOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGradOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGradOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 28 "txval11" + Name 31 "g_tTex1di4" + Name 41 "txval12" + Name 44 "g_tTex1du4" + Name 51 "txval20" + Name 54 "g_tTex2df4" + Name 66 "txval21" + Name 69 "g_tTex2di4" + Name 78 "txval22" + Name 81 "g_tTex2du4" + Name 92 "txval30" + Name 95 "g_tTex3df4" + Name 107 "txval31" + Name 110 "g_tTex3di4" + Name 118 "txval32" + Name 121 "g_tTex3du4" + Name 132 "PS_OUTPUT" + MemberName 132(PS_OUTPUT) 0 "Color" + MemberName 132(PS_OUTPUT) 1 "Depth" + Name 134 "psout" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 69(g_tTex2di4) DescriptorSet 0 + Decorate 81(g_tTex2du4) DescriptorSet 0 + Decorate 95(g_tTex3df4) DescriptorSet 0 + Decorate 110(g_tTex3di4) DescriptorSet 0 + Decorate 121(g_tTex3du4) DescriptorSet 0 + MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 23: TypeInt 32 1 + 24: 23(int) Constant 1 + 26: TypeVector 23(int) 4 + 27: TypePointer Function 26(ivec4) + 29: TypeImage 23(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeSampledImage 29 + 36: 6(float) Constant 1045220557 + 38: TypeInt 32 0 + 39: TypeVector 38(int) 4 + 40: TypePointer Function 39(ivec4) + 42: TypeImage 38(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeSampledImage 42 + 49: 6(float) Constant 1050253722 + 52: TypeImage 6(float) 2D sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: TypeVector 6(float) 2 + 60: 59(fvec2) ConstantComposite 20 36 + 61: 59(fvec2) ConstantComposite 21 22 + 62: TypeVector 23(int) 2 + 63: 23(int) Constant 0 + 64: 62(ivec2) ConstantComposite 24 63 + 67: TypeImage 23(int) 2D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex2di4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 6(float) Constant 1053609165 + 75: 59(fvec2) ConstantComposite 49 74 + 76: 62(ivec2) ConstantComposite 24 24 + 79: TypeImage 38(int) 2D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex2du4): 80(ptr) Variable UniformConstant + 84: TypeSampledImage 79 + 86: 6(float) Constant 1056964608 + 87: 6(float) Constant 1058642330 + 88: 59(fvec2) ConstantComposite 86 87 + 89: 23(int) Constant 4294967295 + 90: 62(ivec2) ConstantComposite 24 89 + 93: TypeImage 6(float) 3D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex3df4): 94(ptr) Variable UniformConstant + 98: TypeSampledImage 93 + 100: TypeVector 6(float) 3 + 101: 100(fvec3) ConstantComposite 20 36 49 + 102: 6(float) Constant 1067869798 + 103: 100(fvec3) ConstantComposite 21 22 102 + 104: TypeVector 23(int) 3 + 105: 104(ivec3) ConstantComposite 24 63 24 + 108: TypeImage 23(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3di4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 100(fvec3) ConstantComposite 74 86 87 + 116: 104(ivec3) ConstantComposite 24 24 24 + 119: TypeImage 38(int) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex3du4): 120(ptr) Variable UniformConstant + 124: TypeSampledImage 119 + 126: 6(float) Constant 1060320051 + 127: 6(float) Constant 1061997773 + 128: 6(float) Constant 1063675494 + 129: 100(fvec3) ConstantComposite 126 127 128 + 130: 104(ivec3) ConstantComposite 24 63 89 + 132(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 133: TypePointer Function 132(PS_OUTPUT) + 135: 6(float) Constant 1065353216 + 136: TypePointer Function 6(float) +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 23(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 38(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 28(txval11): 27(ptr) Variable Function + 41(txval12): 40(ptr) Variable Function + 51(txval20): 8(ptr) Variable Function + 66(txval21): 27(ptr) Variable Function + 78(txval22): 40(ptr) Variable Function + 92(txval30): 8(ptr) Variable Function + 107(txval31): 27(ptr) Variable Function + 118(txval32): 40(ptr) Variable Function + 134(psout): 133(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleExplicitLod 19 20 Grad ConstOffset 21 22 24 + Store 9(txval10) 25 + 32: 29 Load 31(g_tTex1di4) + 33: 14 Load 16(g_sSamp) + 35: 34 SampledImage 32 33 + 37: 26(ivec4) ImageSampleExplicitLod 35 36 Grad ConstOffset 21 22 24 + Store 28(txval11) 37 + 45: 42 Load 44(g_tTex1du4) + 46: 14 Load 16(g_sSamp) + 48: 47 SampledImage 45 46 + 50: 39(ivec4) ImageSampleExplicitLod 48 49 Grad ConstOffset 21 22 24 + Store 41(txval12) 50 + 55: 52 Load 54(g_tTex2df4) + 56: 14 Load 16(g_sSamp) + 58: 57 SampledImage 55 56 + 65: 7(fvec4) ImageSampleExplicitLod 58 60 Grad ConstOffset 60 61 64 + Store 51(txval20) 65 + 70: 67 Load 69(g_tTex2di4) + 71: 14 Load 16(g_sSamp) + 73: 72 SampledImage 70 71 + 77: 26(ivec4) ImageSampleExplicitLod 73 75 Grad ConstOffset 60 61 76 + Store 66(txval21) 77 + 82: 79 Load 81(g_tTex2du4) + 83: 14 Load 16(g_sSamp) + 85: 84 SampledImage 82 83 + 91: 39(ivec4) ImageSampleExplicitLod 85 88 Grad ConstOffset 60 61 90 + Store 78(txval22) 91 + 96: 93 Load 95(g_tTex3df4) + 97: 14 Load 16(g_sSamp) + 99: 98 SampledImage 96 97 + 106: 7(fvec4) ImageSampleExplicitLod 99 101 Grad ConstOffset 103 103 105 + Store 92(txval30) 106 + 111: 108 Load 110(g_tTex3di4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 117: 26(ivec4) ImageSampleExplicitLod 114 115 Grad ConstOffset 103 103 116 + Store 107(txval31) 117 + 122: 119 Load 121(g_tTex3du4) + 123: 14 Load 16(g_sSamp) + 125: 124 SampledImage 122 123 + 131: 39(ivec4) ImageSampleExplicitLod 125 129 Grad ConstOffset 103 103 130 + Store 118(txval32) 131 + 137: 136(ptr) AccessChain 134(psout) 24 + Store 137 135 + 138:132(PS_OUTPUT) Load 134(psout) + ReturnValue 138 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out new file mode 100644 index 000000000..e568f44bf --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -0,0 +1,433 @@ +hlsl.samplegrad.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGradOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:27 Constant: +0:27 1 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGradOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGradOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:29 Constant: +0:29 1 (const int) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 move second child to first child (temp float) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.000000 +0:38 Branch: Return with expression +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGradOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:27 Constant: +0:27 1 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGradOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGradOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:29 Constant: +0:29 1 (const int) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 move second child to first child (temp float) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.000000 +0:38 Branch: Return with expression +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 104 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 52 "txval20" + Name 55 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 77 "txval22" + Name 80 "g_tTex2du4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "psout" + Name 94 "g_tTex1df4a" + Name 97 "g_tTexcdf4" + Name 100 "g_tTexcdi4" + Name 103 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 80(g_tTex2du4) DescriptorSet 0 + MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 94(g_tTex1df4a) DescriptorSet 0 + Decorate 97(g_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 103(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1066192077 + 25: 6(float) Constant 1067030938 + 26: TypeInt 32 1 + 27: 26(int) Constant 1 + 29: TypeVector 26(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 26(int) 1D array sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 53: TypeImage 6(float) 2D array sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 60: TypeVector 6(float) 3 + 61: 6(float) Constant 1050253722 + 62: 60(fvec3) ConstantComposite 21 22 61 + 63: 20(fvec2) ConstantComposite 24 25 + 64: TypeVector 26(int) 2 + 65: 26(int) Constant 0 + 66: 64(ivec2) ConstantComposite 27 65 + 69: TypeImage 26(int) 2D array sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 78: TypeImage 40(int) 2D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 86(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 87: TypePointer Function 86(PS_OUTPUT) + 89: 6(float) Constant 1065353216 + 90: TypePointer Function 6(float) + 94(g_tTex1df4a): 11(ptr) Variable UniformConstant + 95: TypeImage 6(float) Cube array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTexcdf4): 96(ptr) Variable UniformConstant + 98: TypeImage 26(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 101: TypeImage 40(int) Cube array sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTexcdu4): 102(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 52(txval20): 8(ptr) Variable Function + 68(txval21): 30(ptr) Variable Function + 77(txval22): 42(ptr) Variable Function + 88(psout): 87(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 28: 7(fvec4) ImageSampleExplicitLod 19 23 Grad ConstOffset 24 25 27 + Store 9(txval10) 28 + 35: 32 Load 34(g_tTex1di4) + 36: 14 Load 16(g_sSamp) + 38: 37 SampledImage 35 36 + 39: 29(ivec4) ImageSampleExplicitLod 38 23 Grad ConstOffset 24 25 27 + Store 31(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 51: 41(ivec4) ImageSampleExplicitLod 50 23 Grad ConstOffset 24 25 27 + Store 43(txval12) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 14 Load 16(g_sSamp) + 59: 58 SampledImage 56 57 + 67: 7(fvec4) ImageSampleExplicitLod 59 62 Grad ConstOffset 63 63 66 + Store 52(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 14 Load 16(g_sSamp) + 75: 74 SampledImage 72 73 + 76: 29(ivec4) ImageSampleExplicitLod 75 62 Grad ConstOffset 63 63 66 + Store 68(txval21) 76 + 81: 78 Load 80(g_tTex2du4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 85: 41(ivec4) ImageSampleExplicitLod 84 62 Grad ConstOffset 63 63 66 + Store 77(txval22) 85 + 91: 90(ptr) AccessChain 88(psout) 27 + Store 91 89 + 92:86(PS_OUTPUT) Load 88(psout) + ReturnValue 92 + FunctionEnd diff --git a/Test/hlsl.sample.basicarraydx10.frag b/Test/hlsl.sample.array.dx10.frag similarity index 100% rename from Test/hlsl.sample.basicarraydx10.frag rename to Test/hlsl.sample.array.dx10.frag diff --git a/Test/hlsl.sample.basicdx10.frag b/Test/hlsl.sample.basic.dx10.frag similarity index 100% rename from Test/hlsl.sample.basicdx10.frag rename to Test/hlsl.sample.basic.dx10.frag diff --git a/Test/hlsl.sample.offsetdx10.frag b/Test/hlsl.sample.offset.dx10.frag similarity index 100% rename from Test/hlsl.sample.offsetdx10.frag rename to Test/hlsl.sample.offset.dx10.frag diff --git a/Test/hlsl.sample.offsetarraydx10.frag b/Test/hlsl.sample.offsetarray.dx10.frag similarity index 100% rename from Test/hlsl.sample.offsetarraydx10.frag rename to Test/hlsl.sample.offsetarray.dx10.frag diff --git a/Test/hlsl.samplebias.array.dx10.frag b/Test/hlsl.samplebias.array.dx10.frag new file mode 100644 index 000000000..ba4e197f9 --- /dev/null +++ b/Test/hlsl.samplebias.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5); + + float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.5); + int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.5); + uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.5); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplebias.basic.dx10.frag b/Test/hlsl.samplebias.basic.dx10.frag new file mode 100644 index 000000000..091386168 --- /dev/null +++ b/Test/hlsl.samplebias.basic.dx10.frag @@ -0,0 +1,51 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5); + + float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); + uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); + + float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); + uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplebias.offset.dx10.frag b/Test/hlsl.samplebias.offset.dx10.frag new file mode 100644 index 000000000..6f2f94c8e --- /dev/null +++ b/Test/hlsl.samplebias.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5, 1); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5, 1); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5, 1); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5, int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5, int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5, int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplebias.offsetarray.dx10.frag b/Test/hlsl.samplebias.offsetarray.dx10.frag new file mode 100644 index 000000000..b5f629686 --- /dev/null +++ b/Test/hlsl.samplebias.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, 0); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5, 1); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, 2); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int2(0,0)); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5, int2(0,0)); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5, int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.array.dx10.frag b/Test/hlsl.samplegrad.array.dx10.frag new file mode 100644 index 000000000..c442b7f8e --- /dev/null +++ b/Test/hlsl.samplegrad.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.basic.dx10.frag b/Test/hlsl.samplegrad.basic.dx10.frag new file mode 100644 index 000000000..84236f2ab --- /dev/null +++ b/Test/hlsl.samplegrad.basic.dx10.frag @@ -0,0 +1,51 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.basic.dx10.vert b/Test/hlsl.samplegrad.basic.dx10.vert new file mode 100644 index 000000000..43ec62137 --- /dev/null +++ b/Test/hlsl.samplegrad.basic.dx10.vert @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/Test/hlsl.samplegrad.offset.dx10.frag b/Test/hlsl.samplegrad.offset.dx10.frag new file mode 100644 index 000000000..c643be252 --- /dev/null +++ b/Test/hlsl.samplegrad.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2, 1); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2, 1); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2, 1); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.offsetarray.dx10.frag b/Test/hlsl.samplegrad.offsetarray.dx10.frag new file mode 100644 index 000000000..3adcd1846 --- /dev/null +++ b/Test/hlsl.samplegrad.offsetarray.dx10.frag @@ -0,0 +1,39 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 29006aa45..a74b96e99 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -526,7 +526,18 @@ enum TOperator { EOpTextureBias, // HLSL texture bias: will be lowered to EOpTexture EOpAsDouble, // slightly different from EOpUint64BitsToDouble - EOpMethodSample, + EOpMethodSample, // Texture object methods. These are translated to existing + EOpMethodSampleBias, // AST methods, and exist to represent HLSL semantics until that + EOpMethodSampleCmp, // translation is performed. See HlslParseContext::decomposeSampleMethods(). + EOpMethodSampleCmpLevelZero, // ... + EOpMethodSampleGrad, // ... + EOpMethodSampleLevel, // ... + EOpMethodLoad, // ... + EOpMethodGetDimensions, // ... + EOpMethodGetSamplePosition, // ... + EOpMethodGather, // ... + EOpMethodCalculateLevelOfDetail, // ... + EOpMethodCalculateLevelOfDetailUnclamped, // ... }; class TIntermTraverser; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 59685c872..5a6be40d6 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -94,10 +94,19 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, - {"hlsl.sample.basicarraydx10.frag", "main"}, - {"hlsl.sample.basicdx10.frag", "main"}, - {"hlsl.sample.offsetdx10.frag", "main"}, - {"hlsl.sample.offsetarraydx10.frag", "main"}, + {"hlsl.sample.array.dx10.frag", "main"}, + {"hlsl.sample.basic.dx10.frag", "main"}, + {"hlsl.sample.offset.dx10.frag", "main"}, + {"hlsl.sample.offsetarray.dx10.frag", "main"}, + {"hlsl.samplebias.array.dx10.frag", "main"}, + {"hlsl.samplebias.basic.dx10.frag", "main"}, + {"hlsl.samplebias.offset.dx10.frag", "main"}, + {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, + {"hlsl.samplegrad.array.dx10.frag", "main"}, + {"hlsl.samplegrad.basic.dx10.frag", "main"}, + {"hlsl.samplegrad.basic.dx10.vert", "main"}, + {"hlsl.samplegrad.offset.dx10.frag", "main"}, + {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b3566da66..753fbfe69 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -814,9 +814,28 @@ TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, boo } // -// Change texture parameters to match AST & SPIR-V semantics +// Create a combined sampler/texture from separate sampler and texture. // -void HlslParseContext::textureParameters(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler) +{ + TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); + + txcombine->getSequence().push_back(argTex); + txcombine->getSequence().push_back(argSampler); + + TSampler samplerType = argTex->getType().getSampler(); + samplerType.combined = true; + + txcombine->setType(TType(samplerType, EvqTemporary)); + txcombine->setLoc(loc); + + return txcombine; +} + +// +// Decompose DX9 and DX10 sample intrinsics & object methods into AST +// +void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) { if (!node || !node->getAsOperator()) return; @@ -825,9 +844,10 @@ void HlslParseContext::textureParameters(const TSourceLoc& loc, TIntermTyped*& n const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; switch (op) { + // **** DX9 intrinsics: **** case EOpTexture: { - // Texture with ddx & ddy is really gradient form + // Texture with ddx & ddy is really gradient form in HLSL if (argAggregate->getSequence().size() == 4) { node->getAsAggregate()->setOperator(EOpTextureGrad); break; @@ -869,6 +889,81 @@ void HlslParseContext::textureParameters(const TSourceLoc& loc, TIntermTyped*& n break; } + // **** DX10 methods: **** + case EOpMethodSample: // fall through + case EOpMethodSampleBias: // ... + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argBias = nullptr; + TIntermTyped* argOffset = nullptr; + + int nextArg = 3; + + if (op == EOpMethodSampleBias) // SampleBias has a bias arg + argBias = argAggregate->getSequence()[nextArg++]->getAsTyped(); + + TOperator textureOp = EOpTexture; + + if (argAggregate->getSequence().size() == (nextArg+1)) { // last parameter is offset form + textureOp = EOpTextureOffset; + argOffset = argAggregate->getSequence()[nextArg++]->getAsTyped(); + } + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + + if (argBias != nullptr) + txsample->getSequence().push_back(argBias); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + + case EOpMethodSampleGrad: // ... + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argDDX = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argDDY = argAggregate->getSequence()[4]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + TOperator textureOp = EOpTextureGrad; + + if (argAggregate->getSequence().size() == 6) { // last parameter is offset form + textureOp = EOpTextureGradOffset; + argOffset = argAggregate->getSequence()[5]->getAsTyped(); + } + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->getSequence().push_back(argDDX); + txsample->getSequence().push_back(argDDY); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + default: break; // most pass through unchanged } @@ -1222,59 +1317,6 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& } } -// -// Decompose sample methods into AST -// -void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) -{ - if (!node || !node->getAsOperator()) - return; - - const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; - const TOperator op = node->getAsOperator()->getOp(); - - switch (op) { - case EOpMethodSample: - { - TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); - TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); - TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); - TIntermTyped* argOffset = nullptr; - - TOperator textureOp = EOpTexture; - - if (argAggregate->getSequence().size() == 4) { // 4th parameter is offset form - textureOp = EOpTextureOffset; - argOffset = argAggregate->getSequence()[3]->getAsTyped(); - } - - TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); - - txcombine->getSequence().push_back(argTex); - txcombine->getSequence().push_back(argSamp); - TSampler samplerType = argTex->getType().getSampler(); - samplerType.combined = true; - txcombine->setType(TType(samplerType, EvqTemporary)); - txcombine->setLoc(loc); - - TIntermAggregate* txsample = new TIntermAggregate(textureOp); - txsample->getSequence().push_back(txcombine); - txsample->getSequence().push_back(argCoord); - if (argOffset != nullptr) - txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; - - break; - } - - default: - break; // most pass through unchanged - } -} - - // // Handle seeing function call syntax in the grammar, which could be any of // - .length() method @@ -1380,7 +1422,6 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions - textureParameters(loc, result, arguments); // HLSL->AST texture intrinsics } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index fdb2afe86..f12813194 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -88,7 +88,6 @@ public: TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); - void textureParameters(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; @@ -96,6 +95,8 @@ public: TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TType& type, const TString& semantic); + TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); + bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); void assignError(const TSourceLoc&, const char* op, TString left, TString right); void unaryOpError(const TSourceLoc&, const char* op, TString operand); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 2bb3d8d7d..f6b85390f 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -67,23 +67,38 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } -bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } +bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } +bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } +bool IsTextureMS(const char argOrder) { return false; } // TODO: ... // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { const bool isArrayed = IsTextureArrayed(*argOrder); + const bool isMS = IsTextureMS(*argOrder); - if (isArrayed && dim0 == 3) // there are no 3D arrayed textures. + // there are no 3D arrayed textures, or 3D SampleCmp + if (dim0 == 3 && (isArrayed || name == "SampleCmp")) return true; const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; - // Reject invalid offset arrayed forms. + // Reject invalid offset arrayed forms with cubemaps if (isArrayed && dim0 == 4) { - if (name == "Sample" && numArgs == 4) + if ((name == "Sample" && numArgs >= 4) || + (name == "SampleBias" && numArgs >= 5) || + (name == "SampleCmp" && numArgs >= 5) || + (name == "SampleCmpLevelZero" && numArgs >= 4) || + (name == "SampleGrad" && numArgs >= 6) || + (name == "SampleLevel" && numArgs >= 5)) + return true; + } + + // Reject invalid Loads + if (name == "Load") { + if ((numArgs >= 3 && !isMS) || // Load with sampleindex requires multisample + (dim0 == 4)) // Load does not support any cubemaps, arrayed or not. return true; } @@ -103,6 +118,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isMatMul = (argOrder[0] == '#'); const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsTextureArrayed(argOrder[0]); + const bool isMS = IsTextureMS(argOrder[0]); char order = *argOrder; char type = *argType; @@ -187,14 +203,14 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons switch (order) { case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars - case 'V': s += ('0' + (char)dim0); break; + case 'V': s += ('0' + char(dim0)); break; case 'M': { if (!UseHlslTypes) // GLSL has column first for mat types std::swap(dim0, dim1); - s += ('0' + (char)dim0); + s += ('0' + char(dim0)); s += 'x'; - s += ('0' + (char)dim1); + s += ('0' + char(dim1)); break; } } @@ -517,10 +533,43 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // Texture object methods. Return type can be overridden by shader declaration. // !O = no offset, O = offset, !A = no array, A = array - { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, - { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + + { "SampleBias", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + { "SampleBias", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + { "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + { "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + + // { "SampleCmp", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleCmp", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + // { "SampleCmp", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleCmp", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + + // { "SampleCmpLevelZero", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, + // { "SampleCmpLevelZero", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + // { "SampleCmpLevelZero", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, + // { "SampleCmpLevelZero", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + + { "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, + { "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, + { "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, + { "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, + + // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + + // TODO: ... + // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangFragmentMask }, + // { "Load", /* +sampleidex*/ "V4", nullptr, "%V,V,S", "FIU,I,I", EShLangFragmentMask }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "%V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, + // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangFragmentMask }, + // { "Load", /* +sampleidex*/ "V4", nullptr, "@V,V,S", "FIU,I,I", EShLangFragmentMask }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "@V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, @@ -565,7 +614,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c continue; // Reject some forms of sample methods that don't exist. - if (isTexture && IsIllegalSample(s, argOrder, dim0)) + if (isTexture && IsIllegalSample(intrinsic.name, argOrder, dim0)) continue; AppendTypeName(s, retOrder, retType, dim0, dim1); // add return type @@ -796,6 +845,12 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil // Texture methods symbolTable.relateToOperator("Sample", EOpMethodSample); + symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias); + // symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); + // symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); + symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); + // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); + // symbolTable.relateToOperator("Load", EOpMethodLoad); } //