From a78b02941b26561b2d9d796b3eb385ef5efe3e8f Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Tue, 19 Jul 2016 14:28:05 -0600 Subject: [PATCH] HLSL: Add SampleCmp and SampleCmpLevelZero texture methods --- .../hlsl.samplecmp.array.dx10.frag.out | 588 ++++++++++++++++ .../hlsl.samplecmp.basic.dx10.frag.out | 568 ++++++++++++++++ .../hlsl.samplecmp.offset.dx10.frag.out | 482 ++++++++++++++ .../hlsl.samplecmp.offsetarray.dx10.frag.out | 500 ++++++++++++++ ...lsl.samplecmplevelzero.array.dx10.frag.out | 625 ++++++++++++++++++ ...lsl.samplecmplevelzero.basic.dx10.frag.out | 605 +++++++++++++++++ ...sl.samplecmplevelzero.offset.dx10.frag.out | 507 ++++++++++++++ ...mplecmplevelzero.offsetarray.dx10.frag.out | 525 +++++++++++++++ Test/hlsl.load.dx10.frag | 91 +++ Test/hlsl.samplecmp.array.dx10.frag | 60 ++ Test/hlsl.samplecmp.basic.dx10.frag | 61 ++ Test/hlsl.samplecmp.offset.dx10.frag | 66 ++ Test/hlsl.samplecmp.offsetarray.dx10.frag | 67 ++ Test/hlsl.samplecmplevelzero.array.dx10.frag | 60 ++ Test/hlsl.samplecmplevelzero.basic.dx10.frag | 61 ++ Test/hlsl.samplecmplevelzero.offset.dx10.frag | 66 ++ ...l.samplecmplevelzero.offsetarray.dx10.frag | 67 ++ gtests/Hlsl.FromFile.cpp | 8 + hlsl/hlslGrammar.cpp | 8 +- hlsl/hlslParseHelper.cpp | 61 ++ hlsl/hlslParseables.cpp | 116 ++-- 21 files changed, 5143 insertions(+), 49 deletions(-) create mode 100644 Test/baseResults/hlsl.samplecmp.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.load.dx10.frag create mode 100644 Test/hlsl.samplecmp.array.dx10.frag create mode 100644 Test/hlsl.samplecmp.basic.dx10.frag create mode 100644 Test/hlsl.samplecmp.offset.dx10.frag create mode 100644 Test/hlsl.samplecmp.offsetarray.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.array.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.basic.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.offset.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out new file mode 100644 index 000000000..da404c487 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -0,0 +1,588 @@ +hlsl.samplecmp.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 texture (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 texture (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 173 + + 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 8 "r10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 28 "r12" + Name 32 "g_tTex1di4a" + Name 41 "r14" + Name 45 "g_tTex1du4a" + Name 54 "r30" + Name 57 "g_tTex2df4a" + Name 69 "r32" + Name 72 "g_tTex2di4a" + Name 81 "r34" + Name 84 "g_tTex2du4a" + Name 93 "r60" + Name 96 "g_tTexcdf4a" + Name 107 "r62" + Name 110 "g_tTexcdi4a" + Name 118 "r64" + Name 121 "g_tTexcdu4a" + Name 129 "PS_OUTPUT" + MemberName 129(PS_OUTPUT) 0 "Color" + MemberName 129(PS_OUTPUT) 1 "Depth" + Name 131 "psout" + Name 139 "g_tTex1df4" + Name 142 "g_tTex1di4" + Name 145 "g_tTex1du4" + Name 148 "g_tTex2df4" + Name 151 "g_tTex2di4" + Name 154 "g_tTex2du4" + Name 157 "g_tTex3df4" + Name 160 "g_tTex3di4" + Name 163 "g_tTex3du4" + Name 166 "g_tTexcdf4" + Name 169 "g_tTexcdi4" + Name 172 "g_tTexcdu4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 45(g_tTex1du4a) DescriptorSet 0 + Decorate 57(g_tTex2df4a) DescriptorSet 0 + Decorate 72(g_tTex2di4a) DescriptorSet 0 + Decorate 84(g_tTex2du4a) DescriptorSet 0 + Decorate 96(g_tTexcdf4a) DescriptorSet 0 + Decorate 110(g_tTexcdi4a) DescriptorSet 0 + Decorate 121(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 139(g_tTex1df4) DescriptorSet 0 + Decorate 142(g_tTex1di4) DescriptorSet 0 + Decorate 145(g_tTex1du4) DescriptorSet 0 + Decorate 148(g_tTex2df4) DescriptorSet 0 + Decorate 151(g_tTex2di4) DescriptorSet 0 + Decorate 154(g_tTex2du4) DescriptorSet 0 + Decorate 157(g_tTex3df4) DescriptorSet 0 + Decorate 160(g_tTex3di4) DescriptorSet 0 + Decorate 163(g_tTex3du4) DescriptorSet 0 + Decorate 166(g_tTexcdf4) DescriptorSet 0 + Decorate 169(g_tTexcdi4) DescriptorSet 0 + Decorate 172(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 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 1061158912 + 29: TypeInt 32 1 + 30: TypeImage 29(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant + 35: TypeImage 29(int) 1D depth array sampled format:Unknown + 36: TypeSampledImage 35 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4a): 44(ptr) Variable UniformConstant + 48: TypeImage 42(int) 1D depth array sampled format:Unknown + 49: TypeSampledImage 48 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4a): 56(ptr) Variable UniformConstant + 60: TypeImage 6(float) 2D depth array sampled format:Unknown + 61: TypeSampledImage 60 + 63: TypeVector 6(float) 3 + 64: 6(float) Constant 1050253722 + 65: 63(fvec3) ConstantComposite 21 22 64 + 70: TypeImage 29(int) 2D array sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4a): 71(ptr) Variable UniformConstant + 75: TypeImage 29(int) 2D depth array sampled format:Unknown + 76: TypeSampledImage 75 + 82: TypeImage 42(int) 2D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2du4a): 83(ptr) Variable UniformConstant + 87: TypeImage 42(int) 2D depth array sampled format:Unknown + 88: TypeSampledImage 87 + 94: TypeImage 6(float) Cube array sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTexcdf4a): 95(ptr) Variable UniformConstant + 99: TypeImage 6(float) Cube depth array sampled format:Unknown + 100: TypeSampledImage 99 + 102: TypeVector 6(float) 4 + 103: 6(float) Constant 1053609165 + 104: 102(fvec4) ConstantComposite 21 22 64 103 + 108: TypeImage 29(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 +110(g_tTexcdi4a): 109(ptr) Variable UniformConstant + 113: TypeImage 29(int) Cube depth array sampled format:Unknown + 114: TypeSampledImage 113 + 119: TypeImage 42(int) Cube array sampled format:Unknown + 120: TypePointer UniformConstant 119 +121(g_tTexcdu4a): 120(ptr) Variable UniformConstant + 124: TypeImage 42(int) Cube depth array sampled format:Unknown + 125: TypeSampledImage 124 + 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 130: TypePointer Function 129(PS_OUTPUT) + 132: 29(int) Constant 1 + 133: 6(float) Constant 1065353216 + 137: TypeImage 6(float) 1D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex1df4): 138(ptr) Variable UniformConstant + 140: TypeImage 29(int) 1D sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTex1di4): 141(ptr) Variable UniformConstant + 143: TypeImage 42(int) 1D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex1du4): 144(ptr) Variable UniformConstant + 146: TypeImage 6(float) 2D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex2df4): 147(ptr) Variable UniformConstant + 149: TypeImage 29(int) 2D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex2di4): 150(ptr) Variable UniformConstant + 152: TypeImage 42(int) 2D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex2du4): 153(ptr) Variable UniformConstant + 155: TypeImage 6(float) 3D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex3df4): 156(ptr) Variable UniformConstant + 158: TypeImage 29(int) 3D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex3di4): 159(ptr) Variable UniformConstant + 161: TypeImage 42(int) 3D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex3du4): 162(ptr) Variable UniformConstant + 164: TypeImage 6(float) Cube sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTexcdf4): 165(ptr) Variable UniformConstant + 167: TypeImage 29(int) Cube sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTexcdi4): 168(ptr) Variable UniformConstant + 170: TypeImage 42(int) Cube sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTexcdu4): 171(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r10): 7(ptr) Variable Function + 28(r12): 7(ptr) Variable Function + 41(r14): 7(ptr) Variable Function + 54(r30): 7(ptr) Variable Function + 69(r32): 7(ptr) Variable Function + 81(r34): 7(ptr) Variable Function + 93(r60): 7(ptr) Variable Function + 107(r62): 7(ptr) Variable Function + 118(r64): 7(ptr) Variable Function + 131(psout): 130(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 26: 6(float) CompositeExtract 25 0 + 27: 6(float) ImageSampleDrefImplicitLod 19 25 26 + Store 8(r10) 27 + 33: 30 Load 32(g_tTex1di4a) + 34: 13 Load 15(g_sSamp) + 37: 36 SampledImage 33 34 + 38: 6(float) CompositeExtract 23 0 + 39: 6(float) CompositeExtract 38 0 + 40: 6(float) ImageSampleDrefImplicitLod 37 38 39 + Store 28(r12) 40 + 46: 43 Load 45(g_tTex1du4a) + 47: 13 Load 15(g_sSamp) + 50: 49 SampledImage 46 47 + 51: 6(float) CompositeExtract 23 0 + 52: 6(float) CompositeExtract 51 0 + 53: 6(float) ImageSampleDrefImplicitLod 50 51 52 + Store 41(r14) 53 + 58: 55 Load 57(g_tTex2df4a) + 59: 13 Load 15(g_sSamp) + 62: 61 SampledImage 58 59 + 66: 6(float) CompositeExtract 65 0 + 67: 6(float) CompositeExtract 66 0 + 68: 6(float) ImageSampleDrefImplicitLod 62 66 67 + Store 54(r30) 68 + 73: 70 Load 72(g_tTex2di4a) + 74: 13 Load 15(g_sSamp) + 77: 76 SampledImage 73 74 + 78: 6(float) CompositeExtract 65 0 + 79: 6(float) CompositeExtract 78 0 + 80: 6(float) ImageSampleDrefImplicitLod 77 78 79 + Store 69(r32) 80 + 85: 82 Load 84(g_tTex2du4a) + 86: 13 Load 15(g_sSamp) + 89: 88 SampledImage 85 86 + 90: 6(float) CompositeExtract 65 0 + 91: 6(float) CompositeExtract 90 0 + 92: 6(float) ImageSampleDrefImplicitLod 89 90 91 + Store 81(r34) 92 + 97: 94 Load 96(g_tTexcdf4a) + 98: 13 Load 15(g_sSamp) + 101: 100 SampledImage 97 98 + 105: 6(float) CompositeExtract 104 0 + 106: 6(float) ImageSampleDrefImplicitLod 101 105 24 + Store 93(r60) 106 + 111: 108 Load 110(g_tTexcdi4a) + 112: 13 Load 15(g_sSamp) + 115: 114 SampledImage 111 112 + 116: 6(float) CompositeExtract 104 0 + 117: 6(float) ImageSampleDrefImplicitLod 115 116 24 + Store 107(r62) 117 + 122: 119 Load 121(g_tTexcdu4a) + 123: 13 Load 15(g_sSamp) + 126: 125 SampledImage 122 123 + 127: 6(float) CompositeExtract 104 0 + 128: 6(float) ImageSampleDrefImplicitLod 126 127 24 + Store 118(r64) 128 + 134: 7(ptr) AccessChain 131(psout) 132 + Store 134 133 + 135:129(PS_OUTPUT) Load 131(psout) + ReturnValue 135 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out new file mode 100644 index 000000000..b4b60d99c --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -0,0 +1,568 @@ +hlsl.samplecmp.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 texture (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 texture (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 171 + + 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 8 "r00" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 24 "r02" + Name 28 "g_tTex1di4" + Name 36 "r04" + Name 40 "g_tTex1du4" + Name 48 "r20" + Name 51 "g_tTex2df4" + Name 63 "r22" + Name 66 "g_tTex2di4" + Name 75 "r24" + Name 78 "g_tTex2du4" + Name 87 "r50" + Name 90 "g_tTexcdf4" + Name 102 "r52" + Name 105 "g_tTexcdi4" + Name 114 "r54" + Name 117 "g_tTexcdu4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 137 "g_tTex3df4" + Name 140 "g_tTex3di4" + Name 143 "g_tTex3du4" + Name 146 "g_tTex1df4a" + Name 149 "g_tTex1di4a" + Name 152 "g_tTex1du4a" + Name 155 "g_tTex2df4a" + Name 158 "g_tTex2di4a" + Name 161 "g_tTex2du4a" + Name 164 "g_tTexcdf4a" + Name 167 "g_tTexcdi4a" + Name 170 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 28(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 51(g_tTex2df4) DescriptorSet 0 + Decorate 66(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTexcdf4) DescriptorSet 0 + Decorate 105(g_tTexcdi4) DescriptorSet 0 + Decorate 117(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 137(g_tTex3df4) DescriptorSet 0 + Decorate 140(g_tTex3di4) DescriptorSet 0 + Decorate 143(g_tTex3du4) DescriptorSet 0 + Decorate 146(g_tTex1df4a) DescriptorSet 0 + Decorate 149(g_tTex1di4a) DescriptorSet 0 + Decorate 152(g_tTex1du4a) DescriptorSet 0 + Decorate 155(g_tTex2df4a) DescriptorSet 0 + Decorate 158(g_tTex2di4a) DescriptorSet 0 + Decorate 161(g_tTex2du4a) DescriptorSet 0 + Decorate 164(g_tTexcdf4a) DescriptorSet 0 + Decorate 167(g_tTexcdi4a) DescriptorSet 0 + Decorate 170(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 25: TypeInt 32 1 + 26: TypeImage 25(int) 1D sampled format:Unknown + 27: TypePointer UniformConstant 26 + 28(g_tTex1di4): 27(ptr) Variable UniformConstant + 31: TypeImage 25(int) 1D depth sampled format:Unknown + 32: TypeSampledImage 31 + 37: TypeInt 32 0 + 38: TypeImage 37(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 43: TypeImage 37(int) 1D depth sampled format:Unknown + 44: TypeSampledImage 43 + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4): 50(ptr) Variable UniformConstant + 54: TypeImage 6(float) 2D depth sampled format:Unknown + 55: TypeSampledImage 54 + 57: TypeVector 6(float) 2 + 58: 6(float) Constant 1045220557 + 59: 57(fvec2) ConstantComposite 20 58 + 64: TypeImage 25(int) 2D sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4): 65(ptr) Variable UniformConstant + 69: TypeImage 25(int) 2D depth sampled format:Unknown + 70: TypeSampledImage 69 + 76: TypeImage 37(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeImage 37(int) 2D depth sampled format:Unknown + 82: TypeSampledImage 81 + 88: TypeImage 6(float) Cube sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube depth sampled format:Unknown + 94: TypeSampledImage 93 + 96: TypeVector 6(float) 3 + 97: 6(float) Constant 1050253722 + 98: 96(fvec3) ConstantComposite 20 58 97 + 103: TypeImage 25(int) Cube sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTexcdi4): 104(ptr) Variable UniformConstant + 108: TypeImage 25(int) Cube depth sampled format:Unknown + 109: TypeSampledImage 108 + 115: TypeImage 37(int) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdu4): 116(ptr) Variable UniformConstant + 120: TypeImage 37(int) Cube depth sampled format:Unknown + 121: TypeSampledImage 120 + 126: TypeVector 6(float) 4 + 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 25(int) Constant 1 + 131: 6(float) Constant 1065353216 + 135: TypeImage 6(float) 3D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex3df4): 136(ptr) Variable UniformConstant + 138: TypeImage 25(int) 3D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex3di4): 139(ptr) Variable UniformConstant + 141: TypeImage 37(int) 3D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex3du4): 142(ptr) Variable UniformConstant + 144: TypeImage 6(float) 1D array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTex1df4a): 145(ptr) Variable UniformConstant + 147: TypeImage 25(int) 1D array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTex1di4a): 148(ptr) Variable UniformConstant + 150: TypeImage 37(int) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1du4a): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex2df4a): 154(ptr) Variable UniformConstant + 156: TypeImage 25(int) 2D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex2di4a): 157(ptr) Variable UniformConstant + 159: TypeImage 37(int) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2du4a): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) Cube array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTexcdf4a): 163(ptr) Variable UniformConstant + 165: TypeImage 25(int) Cube array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTexcdi4a): 166(ptr) Variable UniformConstant + 168: TypeImage 37(int) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdu4a): 169(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 24(r02): 7(ptr) Variable Function + 36(r04): 7(ptr) Variable Function + 48(r20): 7(ptr) Variable Function + 63(r22): 7(ptr) Variable Function + 75(r24): 7(ptr) Variable Function + 87(r50): 7(ptr) Variable Function + 102(r52): 7(ptr) Variable Function + 114(r54): 7(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 22: 6(float) CompositeExtract 20 0 + 23: 6(float) ImageSampleDrefImplicitLod 19 20 22 + Store 8(r00) 23 + 29: 26 Load 28(g_tTex1di4) + 30: 13 Load 15(g_sSamp) + 33: 32 SampledImage 29 30 + 34: 6(float) CompositeExtract 20 0 + 35: 6(float) ImageSampleDrefImplicitLod 33 20 34 + Store 24(r02) 35 + 41: 38 Load 40(g_tTex1du4) + 42: 13 Load 15(g_sSamp) + 45: 44 SampledImage 41 42 + 46: 6(float) CompositeExtract 20 0 + 47: 6(float) ImageSampleDrefImplicitLod 45 20 46 + Store 36(r04) 47 + 52: 49 Load 51(g_tTex2df4) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 60: 6(float) CompositeExtract 59 0 + 61: 6(float) CompositeExtract 60 0 + 62: 6(float) ImageSampleDrefImplicitLod 56 60 61 + Store 48(r20) 62 + 67: 64 Load 66(g_tTex2di4) + 68: 13 Load 15(g_sSamp) + 71: 70 SampledImage 67 68 + 72: 6(float) CompositeExtract 59 0 + 73: 6(float) CompositeExtract 72 0 + 74: 6(float) ImageSampleDrefImplicitLod 71 72 73 + Store 63(r22) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 13 Load 15(g_sSamp) + 83: 82 SampledImage 79 80 + 84: 6(float) CompositeExtract 59 0 + 85: 6(float) CompositeExtract 84 0 + 86: 6(float) ImageSampleDrefImplicitLod 83 84 85 + Store 75(r24) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 13 Load 15(g_sSamp) + 95: 94 SampledImage 91 92 + 99: 6(float) CompositeExtract 98 0 + 100: 6(float) CompositeExtract 99 0 + 101: 6(float) ImageSampleDrefImplicitLod 95 99 100 + Store 87(r50) 101 + 106: 103 Load 105(g_tTexcdi4) + 107: 13 Load 15(g_sSamp) + 110: 109 SampledImage 106 107 + 111: 6(float) CompositeExtract 98 0 + 112: 6(float) CompositeExtract 111 0 + 113: 6(float) ImageSampleDrefImplicitLod 110 111 112 + Store 102(r52) 113 + 118: 115 Load 117(g_tTexcdu4) + 119: 13 Load 15(g_sSamp) + 122: 121 SampledImage 118 119 + 123: 6(float) CompositeExtract 98 0 + 124: 6(float) CompositeExtract 123 0 + 125: 6(float) ImageSampleDrefImplicitLod 122 123 124 + Store 114(r54) 125 + 132: 7(ptr) AccessChain 129(psout) 130 + Store 132 131 + 133:127(PS_OUTPUT) Load 129(psout) + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out new file mode 100644 index 000000000..e4cd0a413 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -0,0 +1,482 @@ +hlsl.samplecmp.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + 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 8 "r01" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 26 "r03" + Name 29 "g_tTex1di4" + Name 37 "r05" + Name 41 "g_tTex1du4" + Name 49 "r21" + Name 52 "g_tTex2df4" + Name 67 "r23" + Name 70 "g_tTex2di4" + Name 79 "r25" + Name 82 "g_tTex2du4" + Name 92 "PS_OUTPUT" + MemberName 92(PS_OUTPUT) 0 "Color" + MemberName 92(PS_OUTPUT) 1 "Depth" + Name 94 "psout" + Name 102 "g_tTex3df4" + Name 105 "g_tTex3di4" + Name 108 "g_tTex3du4" + Name 111 "g_tTexcdf4" + Name 114 "g_tTexcdi4" + Name 117 "g_tTexcdu4" + Name 120 "g_tTex1df4a" + Name 123 "g_tTex1di4a" + Name 126 "g_tTex1du4a" + Name 129 "g_tTex2df4a" + Name 132 "g_tTex2di4a" + Name 135 "g_tTex2du4a" + Name 138 "g_tTexcdf4a" + Name 141 "g_tTexcdi4a" + Name 144 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 41(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 70(g_tTex2di4) DescriptorSet 0 + Decorate 82(g_tTex2du4) DescriptorSet 0 + MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 102(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 108(g_tTex3du4) DescriptorSet 0 + Decorate 111(g_tTexcdf4) DescriptorSet 0 + Decorate 114(g_tTexcdi4) DescriptorSet 0 + Decorate 117(g_tTexcdu4) DescriptorSet 0 + Decorate 120(g_tTex1df4a) DescriptorSet 0 + Decorate 123(g_tTex1di4a) DescriptorSet 0 + Decorate 126(g_tTex1du4a) DescriptorSet 0 + Decorate 129(g_tTex2df4a) DescriptorSet 0 + Decorate 132(g_tTex2di4a) DescriptorSet 0 + Decorate 135(g_tTex2du4a) DescriptorSet 0 + Decorate 138(g_tTexcdf4a) DescriptorSet 0 + Decorate 141(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeInt 32 1 + 23: 22(int) Constant 2 + 27: TypeImage 22(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeImage 22(int) 1D depth sampled format:Unknown + 33: TypeSampledImage 32 + 38: TypeInt 32 0 + 39: TypeImage 38(int) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1du4): 40(ptr) Variable UniformConstant + 44: TypeImage 38(int) 1D depth sampled format:Unknown + 45: TypeSampledImage 44 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeImage 6(float) 2D depth sampled format:Unknown + 56: TypeSampledImage 55 + 58: TypeVector 6(float) 2 + 59: 6(float) Constant 1045220557 + 60: 58(fvec2) ConstantComposite 20 59 + 62: TypeVector 22(int) 2 + 63: 22(int) Constant 3 + 64: 62(ivec2) ConstantComposite 23 63 + 68: TypeImage 22(int) 2D sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTex2di4): 69(ptr) Variable UniformConstant + 73: TypeImage 22(int) 2D depth sampled format:Unknown + 74: TypeSampledImage 73 + 80: TypeImage 38(int) 2D sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2du4): 81(ptr) Variable UniformConstant + 85: TypeImage 38(int) 2D depth sampled format:Unknown + 86: TypeSampledImage 85 + 91: TypeVector 6(float) 4 + 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) + 93: TypePointer Function 92(PS_OUTPUT) + 95: 22(int) Constant 1 + 96: 6(float) Constant 1065353216 + 100: TypeImage 6(float) 3D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex3df4): 101(ptr) Variable UniformConstant + 103: TypeImage 22(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 106: TypeImage 38(int) 3D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex3du4): 107(ptr) Variable UniformConstant + 109: TypeImage 6(float) Cube sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTexcdf4): 110(ptr) Variable UniformConstant + 112: TypeImage 22(int) Cube sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTexcdi4): 113(ptr) Variable UniformConstant + 115: TypeImage 38(int) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdu4): 116(ptr) Variable UniformConstant + 118: TypeImage 6(float) 1D array sampled format:Unknown + 119: TypePointer UniformConstant 118 +120(g_tTex1df4a): 119(ptr) Variable UniformConstant + 121: TypeImage 22(int) 1D array sampled format:Unknown + 122: TypePointer UniformConstant 121 +123(g_tTex1di4a): 122(ptr) Variable UniformConstant + 124: TypeImage 38(int) 1D array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(g_tTex1du4a): 125(ptr) Variable UniformConstant + 127: TypeImage 6(float) 2D array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTex2df4a): 128(ptr) Variable UniformConstant + 130: TypeImage 22(int) 2D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex2di4a): 131(ptr) Variable UniformConstant + 133: TypeImage 38(int) 2D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex2du4a): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTexcdf4a): 137(ptr) Variable UniformConstant + 139: TypeImage 22(int) Cube array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTexcdi4a): 140(ptr) Variable UniformConstant + 142: TypeImage 38(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r01): 7(ptr) Variable Function + 26(r03): 7(ptr) Variable Function + 37(r05): 7(ptr) Variable Function + 49(r21): 7(ptr) Variable Function + 67(r23): 7(ptr) Variable Function + 79(r25): 7(ptr) Variable Function + 94(psout): 93(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 24: 6(float) CompositeExtract 20 0 + 25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23 + Store 8(r01) 25 + 30: 27 Load 29(g_tTex1di4) + 31: 13 Load 15(g_sSamp) + 34: 33 SampledImage 30 31 + 35: 6(float) CompositeExtract 20 0 + 36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23 + Store 26(r03) 36 + 42: 39 Load 41(g_tTex1du4) + 43: 13 Load 15(g_sSamp) + 46: 45 SampledImage 42 43 + 47: 6(float) CompositeExtract 20 0 + 48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23 + Store 37(r05) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 61: 6(float) CompositeExtract 60 0 + 65: 6(float) CompositeExtract 61 0 + 66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64 + Store 49(r21) 66 + 71: 68 Load 70(g_tTex2di4) + 72: 13 Load 15(g_sSamp) + 75: 74 SampledImage 71 72 + 76: 6(float) CompositeExtract 60 0 + 77: 6(float) CompositeExtract 76 0 + 78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64 + Store 67(r23) 78 + 83: 80 Load 82(g_tTex2du4) + 84: 13 Load 15(g_sSamp) + 87: 86 SampledImage 83 84 + 88: 6(float) CompositeExtract 60 0 + 89: 6(float) CompositeExtract 88 0 + 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64 + Store 79(r25) 90 + 97: 7(ptr) AccessChain 94(psout) 95 + Store 97 96 + 98:92(PS_OUTPUT) Load 94(psout) + ReturnValue 98 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out new file mode 100644 index 000000000..479be6a7d --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -0,0 +1,500 @@ +hlsl.samplecmp.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 151 + + 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 8 "r11" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 30 "r13" + Name 33 "g_tTex1di4a" + Name 42 "r15" + Name 46 "g_tTex1du4a" + Name 55 "r31" + Name 58 "g_tTex2df4a" + Name 73 "r33" + Name 76 "g_tTex2di4a" + Name 85 "r35" + Name 88 "g_tTex2du4a" + Name 98 "PS_OUTPUT" + MemberName 98(PS_OUTPUT) 0 "Color" + MemberName 98(PS_OUTPUT) 1 "Depth" + Name 100 "psout" + Name 108 "g_tTex1df4" + Name 111 "g_tTex1di4" + Name 114 "g_tTex1du4" + Name 117 "g_tTex2df4" + Name 120 "g_tTex2di4" + Name 123 "g_tTex2du4" + Name 126 "g_tTex3df4" + Name 129 "g_tTex3di4" + Name 132 "g_tTex3du4" + Name 135 "g_tTexcdf4" + Name 138 "g_tTexcdi4" + Name 141 "g_tTexcdu4" + Name 144 "g_tTexcdf4a" + Name 147 "g_tTexcdi4a" + Name 150 "g_tTexcdu4a" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 58(g_tTex2df4a) DescriptorSet 0 + Decorate 76(g_tTex2di4a) DescriptorSet 0 + Decorate 88(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 108(g_tTex1df4) DescriptorSet 0 + Decorate 111(g_tTex1di4) DescriptorSet 0 + Decorate 114(g_tTex1du4) DescriptorSet 0 + Decorate 117(g_tTex2df4) DescriptorSet 0 + Decorate 120(g_tTex2di4) DescriptorSet 0 + Decorate 123(g_tTex2du4) DescriptorSet 0 + Decorate 126(g_tTex3df4) DescriptorSet 0 + Decorate 129(g_tTex3di4) DescriptorSet 0 + Decorate 132(g_tTex3du4) DescriptorSet 0 + Decorate 135(g_tTexcdf4) DescriptorSet 0 + Decorate 138(g_tTexcdi4) DescriptorSet 0 + Decorate 141(g_tTexcdu4) DescriptorSet 0 + Decorate 144(g_tTexcdf4a) DescriptorSet 0 + Decorate 147(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 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 1061158912 + 26: TypeInt 32 1 + 27: 26(int) Constant 2 + 31: TypeImage 26(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4a): 32(ptr) Variable UniformConstant + 36: TypeImage 26(int) 1D depth array sampled format:Unknown + 37: TypeSampledImage 36 + 43: TypeInt 32 0 + 44: TypeImage 43(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant + 49: TypeImage 43(int) 1D depth array sampled format:Unknown + 50: TypeSampledImage 49 + 56: TypeImage 6(float) 2D array sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4a): 57(ptr) Variable UniformConstant + 61: TypeImage 6(float) 2D depth array sampled format:Unknown + 62: TypeSampledImage 61 + 64: TypeVector 6(float) 3 + 65: 6(float) Constant 1050253722 + 66: 64(fvec3) ConstantComposite 21 22 65 + 68: TypeVector 26(int) 2 + 69: 26(int) Constant 3 + 70: 68(ivec2) ConstantComposite 27 69 + 74: TypeImage 26(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4a): 75(ptr) Variable UniformConstant + 79: TypeImage 26(int) 2D depth array sampled format:Unknown + 80: TypeSampledImage 79 + 86: TypeImage 43(int) 2D array sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex2du4a): 87(ptr) Variable UniformConstant + 91: TypeImage 43(int) 2D depth array sampled format:Unknown + 92: TypeSampledImage 91 + 97: TypeVector 6(float) 4 + 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) + 99: TypePointer Function 98(PS_OUTPUT) + 101: 26(int) Constant 1 + 102: 6(float) Constant 1065353216 + 106: TypeImage 6(float) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1df4): 107(ptr) Variable UniformConstant + 109: TypeImage 26(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1di4): 110(ptr) Variable UniformConstant + 112: TypeImage 43(int) 1D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex1du4): 113(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex2df4): 116(ptr) Variable UniformConstant + 118: TypeImage 26(int) 2D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex2di4): 119(ptr) Variable UniformConstant + 121: TypeImage 43(int) 2D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex2du4): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3df4): 125(ptr) Variable UniformConstant + 127: TypeImage 26(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3di4): 128(ptr) Variable UniformConstant + 130: TypeImage 43(int) 3D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex3du4): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdf4): 134(ptr) Variable UniformConstant + 136: TypeImage 26(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdi4): 137(ptr) Variable UniformConstant + 139: TypeImage 43(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdu4): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdf4a): 143(ptr) Variable UniformConstant + 145: TypeImage 26(int) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdi4a): 146(ptr) Variable UniformConstant + 148: TypeImage 43(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r11): 7(ptr) Variable Function + 30(r13): 7(ptr) Variable Function + 42(r15): 7(ptr) Variable Function + 55(r31): 7(ptr) Variable Function + 73(r33): 7(ptr) Variable Function + 85(r35): 7(ptr) Variable Function + 100(psout): 99(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 28: 6(float) CompositeExtract 25 0 + 29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27 + Store 8(r11) 29 + 34: 31 Load 33(g_tTex1di4a) + 35: 13 Load 15(g_sSamp) + 38: 37 SampledImage 34 35 + 39: 6(float) CompositeExtract 23 0 + 40: 6(float) CompositeExtract 39 0 + 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27 + Store 30(r13) 41 + 47: 44 Load 46(g_tTex1du4a) + 48: 13 Load 15(g_sSamp) + 51: 50 SampledImage 47 48 + 52: 6(float) CompositeExtract 23 0 + 53: 6(float) CompositeExtract 52 0 + 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27 + Store 42(r15) 54 + 59: 56 Load 58(g_tTex2df4a) + 60: 13 Load 15(g_sSamp) + 63: 62 SampledImage 59 60 + 67: 6(float) CompositeExtract 66 0 + 71: 6(float) CompositeExtract 67 0 + 72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70 + Store 55(r31) 72 + 77: 74 Load 76(g_tTex2di4a) + 78: 13 Load 15(g_sSamp) + 81: 80 SampledImage 77 78 + 82: 6(float) CompositeExtract 66 0 + 83: 6(float) CompositeExtract 82 0 + 84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70 + Store 73(r33) 84 + 89: 86 Load 88(g_tTex2du4a) + 90: 13 Load 15(g_sSamp) + 93: 92 SampledImage 89 90 + 94: 6(float) CompositeExtract 66 0 + 95: 6(float) CompositeExtract 94 0 + 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70 + Store 85(r35) 96 + 103: 7(ptr) AccessChain 100(psout) 101 + Store 103 102 + 104:98(PS_OUTPUT) Load 100(psout) + ReturnValue 104 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out new file mode 100644 index 000000000..7f9b42e56 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -0,0 +1,625 @@ +hlsl.samplecmplevelzero.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 textureLod (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 textureLod (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 174 + + 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 8 "r10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 29 "r12" + Name 33 "g_tTex1di4a" + Name 42 "r14" + Name 46 "g_tTex1du4a" + Name 55 "r30" + Name 58 "g_tTex2df4a" + Name 70 "r32" + Name 73 "g_tTex2di4a" + Name 82 "r34" + Name 85 "g_tTex2du4a" + Name 94 "r60" + Name 97 "g_tTexcdf4a" + Name 108 "r62" + Name 111 "g_tTexcdi4a" + Name 119 "r64" + Name 122 "g_tTexcdu4a" + Name 130 "PS_OUTPUT" + MemberName 130(PS_OUTPUT) 0 "Color" + MemberName 130(PS_OUTPUT) 1 "Depth" + Name 132 "psout" + Name 140 "g_tTex1df4" + Name 143 "g_tTex1di4" + Name 146 "g_tTex1du4" + Name 149 "g_tTex2df4" + Name 152 "g_tTex2di4" + Name 155 "g_tTex2du4" + Name 158 "g_tTex3df4" + Name 161 "g_tTex3di4" + Name 164 "g_tTex3du4" + Name 167 "g_tTexcdf4" + Name 170 "g_tTexcdi4" + Name 173 "g_tTexcdu4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 58(g_tTex2df4a) DescriptorSet 0 + Decorate 73(g_tTex2di4a) DescriptorSet 0 + Decorate 85(g_tTex2du4a) DescriptorSet 0 + Decorate 97(g_tTexcdf4a) DescriptorSet 0 + Decorate 111(g_tTexcdi4a) DescriptorSet 0 + Decorate 122(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 140(g_tTex1df4) DescriptorSet 0 + Decorate 143(g_tTex1di4) DescriptorSet 0 + Decorate 146(g_tTex1du4) DescriptorSet 0 + Decorate 149(g_tTex2df4) DescriptorSet 0 + Decorate 152(g_tTex2di4) DescriptorSet 0 + Decorate 155(g_tTex2du4) DescriptorSet 0 + Decorate 158(g_tTex3df4) DescriptorSet 0 + Decorate 161(g_tTex3di4) DescriptorSet 0 + Decorate 164(g_tTex3du4) DescriptorSet 0 + Decorate 167(g_tTexcdf4) DescriptorSet 0 + Decorate 170(g_tTexcdi4) DescriptorSet 0 + Decorate 173(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 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 1061158912 + 26: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: TypeImage 30(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4a): 32(ptr) Variable UniformConstant + 36: TypeImage 30(int) 1D depth array sampled format:Unknown + 37: TypeSampledImage 36 + 43: TypeInt 32 0 + 44: TypeImage 43(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant + 49: TypeImage 43(int) 1D depth array sampled format:Unknown + 50: TypeSampledImage 49 + 56: TypeImage 6(float) 2D array sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4a): 57(ptr) Variable UniformConstant + 61: TypeImage 6(float) 2D depth array sampled format:Unknown + 62: TypeSampledImage 61 + 64: TypeVector 6(float) 3 + 65: 6(float) Constant 1050253722 + 66: 64(fvec3) ConstantComposite 21 22 65 + 71: TypeImage 30(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4a): 72(ptr) Variable UniformConstant + 76: TypeImage 30(int) 2D depth array sampled format:Unknown + 77: TypeSampledImage 76 + 83: TypeImage 43(int) 2D array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex2du4a): 84(ptr) Variable UniformConstant + 88: TypeImage 43(int) 2D depth array sampled format:Unknown + 89: TypeSampledImage 88 + 95: TypeImage 6(float) Cube array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTexcdf4a): 96(ptr) Variable UniformConstant + 100: TypeImage 6(float) Cube depth array sampled format:Unknown + 101: TypeSampledImage 100 + 103: TypeVector 6(float) 4 + 104: 6(float) Constant 1053609165 + 105: 103(fvec4) ConstantComposite 21 22 65 104 + 109: TypeImage 30(int) Cube array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTexcdi4a): 110(ptr) Variable UniformConstant + 114: TypeImage 30(int) Cube depth array sampled format:Unknown + 115: TypeSampledImage 114 + 120: TypeImage 43(int) Cube array sampled format:Unknown + 121: TypePointer UniformConstant 120 +122(g_tTexcdu4a): 121(ptr) Variable UniformConstant + 125: TypeImage 43(int) Cube depth array sampled format:Unknown + 126: TypeSampledImage 125 + 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) + 131: TypePointer Function 130(PS_OUTPUT) + 133: 30(int) Constant 1 + 134: 6(float) Constant 1065353216 + 138: TypeImage 6(float) 1D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex1df4): 139(ptr) Variable UniformConstant + 141: TypeImage 30(int) 1D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex1di4): 142(ptr) Variable UniformConstant + 144: TypeImage 43(int) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1du4): 145(ptr) Variable UniformConstant + 147: TypeImage 6(float) 2D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex2df4): 148(ptr) Variable UniformConstant + 150: TypeImage 30(int) 2D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex2di4): 151(ptr) Variable UniformConstant + 153: TypeImage 43(int) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2du4): 154(ptr) Variable UniformConstant + 156: TypeImage 6(float) 3D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex3df4): 157(ptr) Variable UniformConstant + 159: TypeImage 30(int) 3D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex3di4): 160(ptr) Variable UniformConstant + 162: TypeImage 43(int) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3du4): 163(ptr) Variable UniformConstant + 165: TypeImage 6(float) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdf4): 166(ptr) Variable UniformConstant + 168: TypeImage 30(int) Cube sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTexcdi4): 169(ptr) Variable UniformConstant + 171: TypeImage 43(int) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdu4): 172(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r10): 7(ptr) Variable Function + 29(r12): 7(ptr) Variable Function + 42(r14): 7(ptr) Variable Function + 55(r30): 7(ptr) Variable Function + 70(r32): 7(ptr) Variable Function + 82(r34): 7(ptr) Variable Function + 94(r60): 7(ptr) Variable Function + 108(r62): 7(ptr) Variable Function + 119(r64): 7(ptr) Variable Function + 132(psout): 131(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 25 0 + 28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26 + Store 8(r10) 28 + 34: 31 Load 33(g_tTex1di4a) + 35: 13 Load 15(g_sSamp) + 38: 37 SampledImage 34 35 + 39: 6(float) CompositeExtract 23 0 + 40: 6(float) CompositeExtract 39 0 + 41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26 + Store 29(r12) 41 + 47: 44 Load 46(g_tTex1du4a) + 48: 13 Load 15(g_sSamp) + 51: 50 SampledImage 47 48 + 52: 6(float) CompositeExtract 23 0 + 53: 6(float) CompositeExtract 52 0 + 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26 + Store 42(r14) 54 + 59: 56 Load 58(g_tTex2df4a) + 60: 13 Load 15(g_sSamp) + 63: 62 SampledImage 59 60 + 67: 6(float) CompositeExtract 66 0 + 68: 6(float) CompositeExtract 67 0 + 69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26 + Store 55(r30) 69 + 74: 71 Load 73(g_tTex2di4a) + 75: 13 Load 15(g_sSamp) + 78: 77 SampledImage 74 75 + 79: 6(float) CompositeExtract 66 0 + 80: 6(float) CompositeExtract 79 0 + 81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26 + Store 70(r32) 81 + 86: 83 Load 85(g_tTex2du4a) + 87: 13 Load 15(g_sSamp) + 90: 89 SampledImage 86 87 + 91: 6(float) CompositeExtract 66 0 + 92: 6(float) CompositeExtract 91 0 + 93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26 + Store 82(r34) 93 + 98: 95 Load 97(g_tTexcdf4a) + 99: 13 Load 15(g_sSamp) + 102: 101 SampledImage 98 99 + 106: 6(float) CompositeExtract 105 0 + 107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24 + Store 94(r60) 107 + 112: 109 Load 111(g_tTexcdi4a) + 113: 13 Load 15(g_sSamp) + 116: 115 SampledImage 112 113 + 117: 6(float) CompositeExtract 105 0 + 118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24 + Store 108(r62) 118 + 123: 120 Load 122(g_tTexcdu4a) + 124: 13 Load 15(g_sSamp) + 127: 126 SampledImage 123 124 + 128: 6(float) CompositeExtract 105 0 + 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24 + Store 119(r64) 129 + 135: 7(ptr) AccessChain 132(psout) 133 + Store 135 134 + 136:130(PS_OUTPUT) Load 132(psout) + ReturnValue 136 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out new file mode 100644 index 000000000..a9f573394 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -0,0 +1,605 @@ +hlsl.samplecmplevelzero.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 textureLod (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:55 Constant: +0:55 0.000000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 textureLod (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:55 Constant: +0:55 0.000000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 172 + + 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 8 "r00" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 25 "r02" + Name 29 "g_tTex1di4" + Name 37 "r04" + Name 41 "g_tTex1du4" + Name 49 "r20" + Name 52 "g_tTex2df4" + Name 64 "r22" + Name 67 "g_tTex2di4" + Name 76 "r24" + Name 79 "g_tTex2du4" + Name 88 "r50" + Name 91 "g_tTexcdf4" + Name 103 "r52" + Name 106 "g_tTexcdi4" + Name 115 "r54" + Name 118 "g_tTexcdu4" + Name 128 "PS_OUTPUT" + MemberName 128(PS_OUTPUT) 0 "Color" + MemberName 128(PS_OUTPUT) 1 "Depth" + Name 130 "psout" + Name 138 "g_tTex3df4" + Name 141 "g_tTex3di4" + Name 144 "g_tTex3du4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 41(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 91(g_tTexcdf4) DescriptorSet 0 + Decorate 106(g_tTexcdi4) DescriptorSet 0 + Decorate 118(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 138(g_tTex3df4) DescriptorSet 0 + Decorate 141(g_tTex3di4) DescriptorSet 0 + Decorate 144(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: 6(float) Constant 0 + 26: TypeInt 32 1 + 27: TypeImage 26(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeImage 26(int) 1D depth sampled format:Unknown + 33: TypeSampledImage 32 + 38: TypeInt 32 0 + 39: TypeImage 38(int) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1du4): 40(ptr) Variable UniformConstant + 44: TypeImage 38(int) 1D depth sampled format:Unknown + 45: TypeSampledImage 44 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeImage 6(float) 2D depth sampled format:Unknown + 56: TypeSampledImage 55 + 58: TypeVector 6(float) 2 + 59: 6(float) Constant 1045220557 + 60: 58(fvec2) ConstantComposite 20 59 + 65: TypeImage 26(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeImage 26(int) 2D depth sampled format:Unknown + 71: TypeSampledImage 70 + 77: TypeImage 38(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeImage 38(int) 2D depth sampled format:Unknown + 83: TypeSampledImage 82 + 89: TypeImage 6(float) Cube sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTexcdf4): 90(ptr) Variable UniformConstant + 94: TypeImage 6(float) Cube depth sampled format:Unknown + 95: TypeSampledImage 94 + 97: TypeVector 6(float) 3 + 98: 6(float) Constant 1050253722 + 99: 97(fvec3) ConstantComposite 20 59 98 + 104: TypeImage 26(int) Cube sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTexcdi4): 105(ptr) Variable UniformConstant + 109: TypeImage 26(int) Cube depth sampled format:Unknown + 110: TypeSampledImage 109 + 116: TypeImage 38(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdu4): 117(ptr) Variable UniformConstant + 121: TypeImage 38(int) Cube depth sampled format:Unknown + 122: TypeSampledImage 121 + 127: TypeVector 6(float) 4 + 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) + 129: TypePointer Function 128(PS_OUTPUT) + 131: 26(int) Constant 1 + 132: 6(float) Constant 1065353216 + 136: TypeImage 6(float) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3df4): 137(ptr) Variable UniformConstant + 139: TypeImage 26(int) 3D sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTex3di4): 140(ptr) Variable UniformConstant + 142: TypeImage 38(int) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3du4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 26(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 38(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 26(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 38(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 26(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 38(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 25(r02): 7(ptr) Variable Function + 37(r04): 7(ptr) Variable Function + 49(r20): 7(ptr) Variable Function + 64(r22): 7(ptr) Variable Function + 76(r24): 7(ptr) Variable Function + 88(r50): 7(ptr) Variable Function + 103(r52): 7(ptr) Variable Function + 115(r54): 7(ptr) Variable Function + 130(psout): 129(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 23: 6(float) CompositeExtract 20 0 + 24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22 + Store 8(r00) 24 + 30: 27 Load 29(g_tTex1di4) + 31: 13 Load 15(g_sSamp) + 34: 33 SampledImage 30 31 + 35: 6(float) CompositeExtract 20 0 + 36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22 + Store 25(r02) 36 + 42: 39 Load 41(g_tTex1du4) + 43: 13 Load 15(g_sSamp) + 46: 45 SampledImage 42 43 + 47: 6(float) CompositeExtract 20 0 + 48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22 + Store 37(r04) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 61: 6(float) CompositeExtract 60 0 + 62: 6(float) CompositeExtract 61 0 + 63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22 + Store 49(r20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 13 Load 15(g_sSamp) + 72: 71 SampledImage 68 69 + 73: 6(float) CompositeExtract 60 0 + 74: 6(float) CompositeExtract 73 0 + 75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22 + Store 64(r22) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 13 Load 15(g_sSamp) + 84: 83 SampledImage 80 81 + 85: 6(float) CompositeExtract 60 0 + 86: 6(float) CompositeExtract 85 0 + 87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22 + Store 76(r24) 87 + 92: 89 Load 91(g_tTexcdf4) + 93: 13 Load 15(g_sSamp) + 96: 95 SampledImage 92 93 + 100: 6(float) CompositeExtract 99 0 + 101: 6(float) CompositeExtract 100 0 + 102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22 + Store 88(r50) 102 + 107: 104 Load 106(g_tTexcdi4) + 108: 13 Load 15(g_sSamp) + 111: 110 SampledImage 107 108 + 112: 6(float) CompositeExtract 99 0 + 113: 6(float) CompositeExtract 112 0 + 114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22 + Store 103(r52) 114 + 119: 116 Load 118(g_tTexcdu4) + 120: 13 Load 15(g_sSamp) + 123: 122 SampledImage 119 120 + 124: 6(float) CompositeExtract 99 0 + 125: 6(float) CompositeExtract 124 0 + 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22 + Store 115(r54) 126 + 133: 7(ptr) AccessChain 130(psout) 131 + Store 133 132 + 134:128(PS_OUTPUT) Load 130(psout) + ReturnValue 134 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out new file mode 100644 index 000000000..4e2b3b544 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -0,0 +1,507 @@ +hlsl.samplecmplevelzero.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 146 + + 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 8 "r01" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 27 "r03" + Name 30 "g_tTex1di4" + Name 38 "r05" + Name 42 "g_tTex1du4" + Name 50 "r21" + Name 53 "g_tTex2df4" + Name 68 "r23" + Name 71 "g_tTex2di4" + Name 80 "r25" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 103 "g_tTex3df4" + Name 106 "g_tTex3di4" + Name 109 "g_tTex3du4" + Name 112 "g_tTexcdf4" + Name 115 "g_tTexcdi4" + Name 118 "g_tTexcdu4" + Name 121 "g_tTex1df4a" + Name 124 "g_tTex1di4a" + Name 127 "g_tTex1du4a" + Name 130 "g_tTex2df4a" + Name 133 "g_tTex2di4a" + Name 136 "g_tTex2du4a" + Name 139 "g_tTexcdf4a" + Name 142 "g_tTexcdi4a" + Name 145 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 103(g_tTex3df4) DescriptorSet 0 + Decorate 106(g_tTex3di4) DescriptorSet 0 + Decorate 109(g_tTex3du4) DescriptorSet 0 + Decorate 112(g_tTexcdf4) DescriptorSet 0 + Decorate 115(g_tTexcdi4) DescriptorSet 0 + Decorate 118(g_tTexcdu4) DescriptorSet 0 + Decorate 121(g_tTex1df4a) DescriptorSet 0 + Decorate 124(g_tTex1di4a) DescriptorSet 0 + Decorate 127(g_tTex1du4a) DescriptorSet 0 + Decorate 130(g_tTex2df4a) DescriptorSet 0 + Decorate 133(g_tTex2di4a) DescriptorSet 0 + Decorate 136(g_tTex2du4a) DescriptorSet 0 + Decorate 139(g_tTexcdf4a) DescriptorSet 0 + Decorate 142(g_tTexcdi4a) DescriptorSet 0 + Decorate 145(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: 6(float) Constant 0 + 23: TypeInt 32 1 + 24: 23(int) Constant 2 + 28: TypeImage 23(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeImage 23(int) 1D depth sampled format:Unknown + 34: TypeSampledImage 33 + 39: TypeInt 32 0 + 40: TypeImage 39(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeImage 39(int) 1D depth sampled format:Unknown + 46: TypeSampledImage 45 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeImage 6(float) 2D depth sampled format:Unknown + 57: TypeSampledImage 56 + 59: TypeVector 6(float) 2 + 60: 6(float) Constant 1045220557 + 61: 59(fvec2) ConstantComposite 20 60 + 63: TypeVector 23(int) 2 + 64: 23(int) Constant 3 + 65: 63(ivec2) ConstantComposite 24 64 + 69: TypeImage 23(int) 2D sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeImage 23(int) 2D depth sampled format:Unknown + 75: TypeSampledImage 74 + 81: TypeImage 39(int) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeImage 39(int) 2D depth sampled format:Unknown + 87: TypeSampledImage 86 + 92: TypeVector 6(float) 4 + 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 23(int) Constant 1 + 97: 6(float) Constant 1065353216 + 101: TypeImage 6(float) 3D sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTex3df4): 102(ptr) Variable UniformConstant + 104: TypeImage 23(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3di4): 105(ptr) Variable UniformConstant + 107: TypeImage 39(int) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3du4): 108(ptr) Variable UniformConstant + 110: TypeImage 6(float) Cube sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTexcdf4): 111(ptr) Variable UniformConstant + 113: TypeImage 23(int) Cube sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTexcdi4): 114(ptr) Variable UniformConstant + 116: TypeImage 39(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdu4): 117(ptr) Variable UniformConstant + 119: TypeImage 6(float) 1D array sampled format:Unknown + 120: TypePointer UniformConstant 119 +121(g_tTex1df4a): 120(ptr) Variable UniformConstant + 122: TypeImage 23(int) 1D array sampled format:Unknown + 123: TypePointer UniformConstant 122 +124(g_tTex1di4a): 123(ptr) Variable UniformConstant + 125: TypeImage 39(int) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1du4a): 126(ptr) Variable UniformConstant + 128: TypeImage 6(float) 2D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex2df4a): 129(ptr) Variable UniformConstant + 131: TypeImage 23(int) 2D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex2di4a): 132(ptr) Variable UniformConstant + 134: TypeImage 39(int) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2du4a): 135(ptr) Variable UniformConstant + 137: TypeImage 6(float) Cube array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTexcdf4a): 138(ptr) Variable UniformConstant + 140: TypeImage 23(int) Cube array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTexcdi4a): 141(ptr) Variable UniformConstant + 143: TypeImage 39(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r01): 7(ptr) Variable Function + 27(r03): 7(ptr) Variable Function + 38(r05): 7(ptr) Variable Function + 50(r21): 7(ptr) Variable Function + 68(r23): 7(ptr) Variable Function + 80(r25): 7(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 20 0 + 26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24 + Store 8(r01) 26 + 31: 28 Load 30(g_tTex1di4) + 32: 13 Load 15(g_sSamp) + 35: 34 SampledImage 31 32 + 36: 6(float) CompositeExtract 20 0 + 37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24 + Store 27(r03) 37 + 43: 40 Load 42(g_tTex1du4) + 44: 13 Load 15(g_sSamp) + 47: 46 SampledImage 43 44 + 48: 6(float) CompositeExtract 20 0 + 49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24 + Store 38(r05) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 13 Load 15(g_sSamp) + 58: 57 SampledImage 54 55 + 62: 6(float) CompositeExtract 61 0 + 66: 6(float) CompositeExtract 62 0 + 67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65 + Store 50(r21) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 13 Load 15(g_sSamp) + 76: 75 SampledImage 72 73 + 77: 6(float) CompositeExtract 61 0 + 78: 6(float) CompositeExtract 77 0 + 79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65 + Store 68(r23) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 13 Load 15(g_sSamp) + 88: 87 SampledImage 84 85 + 89: 6(float) CompositeExtract 61 0 + 90: 6(float) CompositeExtract 89 0 + 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65 + Store 80(r25) 91 + 98: 7(ptr) AccessChain 95(psout) 96 + Store 98 97 + 99:93(PS_OUTPUT) Load 95(psout) + ReturnValue 99 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out new file mode 100644 index 000000000..16aac5785 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -0,0 +1,525 @@ +hlsl.samplecmplevelzero.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +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) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 152 + + 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 8 "r11" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 31 "r13" + Name 34 "g_tTex1di4a" + Name 43 "r15" + Name 47 "g_tTex1du4a" + Name 56 "r31" + Name 59 "g_tTex2df4a" + Name 74 "r33" + Name 77 "g_tTex2di4a" + Name 86 "r35" + Name 89 "g_tTex2du4a" + Name 99 "PS_OUTPUT" + MemberName 99(PS_OUTPUT) 0 "Color" + MemberName 99(PS_OUTPUT) 1 "Depth" + Name 101 "psout" + Name 109 "g_tTex1df4" + Name 112 "g_tTex1di4" + Name 115 "g_tTex1du4" + Name 118 "g_tTex2df4" + Name 121 "g_tTex2di4" + Name 124 "g_tTex2du4" + Name 127 "g_tTex3df4" + Name 130 "g_tTex3di4" + Name 133 "g_tTex3du4" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 34(g_tTex1di4a) DescriptorSet 0 + Decorate 47(g_tTex1du4a) DescriptorSet 0 + Decorate 59(g_tTex2df4a) DescriptorSet 0 + Decorate 77(g_tTex2di4a) DescriptorSet 0 + Decorate 89(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 109(g_tTex1df4) DescriptorSet 0 + Decorate 112(g_tTex1di4) DescriptorSet 0 + Decorate 115(g_tTex1du4) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 121(g_tTex2di4) DescriptorSet 0 + Decorate 124(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 130(g_tTex3di4) DescriptorSet 0 + Decorate 133(g_tTex3du4) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 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 1061158912 + 26: 6(float) Constant 0 + 27: TypeInt 32 1 + 28: 27(int) Constant 2 + 32: TypeImage 27(int) 1D array sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4a): 33(ptr) Variable UniformConstant + 37: TypeImage 27(int) 1D depth array sampled format:Unknown + 38: TypeSampledImage 37 + 44: TypeInt 32 0 + 45: TypeImage 44(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4a): 46(ptr) Variable UniformConstant + 50: TypeImage 44(int) 1D depth array sampled format:Unknown + 51: TypeSampledImage 50 + 57: TypeImage 6(float) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2df4a): 58(ptr) Variable UniformConstant + 62: TypeImage 6(float) 2D depth array sampled format:Unknown + 63: TypeSampledImage 62 + 65: TypeVector 6(float) 3 + 66: 6(float) Constant 1050253722 + 67: 65(fvec3) ConstantComposite 21 22 66 + 69: TypeVector 27(int) 2 + 70: 27(int) Constant 3 + 71: 69(ivec2) ConstantComposite 28 70 + 75: TypeImage 27(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4a): 76(ptr) Variable UniformConstant + 80: TypeImage 27(int) 2D depth array sampled format:Unknown + 81: TypeSampledImage 80 + 87: TypeImage 44(int) 2D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex2du4a): 88(ptr) Variable UniformConstant + 92: TypeImage 44(int) 2D depth array sampled format:Unknown + 93: TypeSampledImage 92 + 98: TypeVector 6(float) 4 + 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) + 100: TypePointer Function 99(PS_OUTPUT) + 102: 27(int) Constant 1 + 103: 6(float) Constant 1065353216 + 107: TypeImage 6(float) 1D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex1df4): 108(ptr) Variable UniformConstant + 110: TypeImage 27(int) 1D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex1di4): 111(ptr) Variable UniformConstant + 113: TypeImage 44(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 119: TypeImage 27(int) 2D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex2di4): 120(ptr) Variable UniformConstant + 122: TypeImage 44(int) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 128: TypeImage 27(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3di4): 129(ptr) Variable UniformConstant + 131: TypeImage 44(int) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3du4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 27(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 44(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 27(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 44(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r11): 7(ptr) Variable Function + 31(r13): 7(ptr) Variable Function + 43(r15): 7(ptr) Variable Function + 56(r31): 7(ptr) Variable Function + 74(r33): 7(ptr) Variable Function + 86(r35): 7(ptr) Variable Function + 101(psout): 100(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 29: 6(float) CompositeExtract 25 0 + 30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28 + Store 8(r11) 30 + 35: 32 Load 34(g_tTex1di4a) + 36: 13 Load 15(g_sSamp) + 39: 38 SampledImage 35 36 + 40: 6(float) CompositeExtract 23 0 + 41: 6(float) CompositeExtract 40 0 + 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28 + Store 31(r13) 42 + 48: 45 Load 47(g_tTex1du4a) + 49: 13 Load 15(g_sSamp) + 52: 51 SampledImage 48 49 + 53: 6(float) CompositeExtract 23 0 + 54: 6(float) CompositeExtract 53 0 + 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28 + Store 43(r15) 55 + 60: 57 Load 59(g_tTex2df4a) + 61: 13 Load 15(g_sSamp) + 64: 63 SampledImage 60 61 + 68: 6(float) CompositeExtract 67 0 + 72: 6(float) CompositeExtract 68 0 + 73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71 + Store 56(r31) 73 + 78: 75 Load 77(g_tTex2di4a) + 79: 13 Load 15(g_sSamp) + 82: 81 SampledImage 78 79 + 83: 6(float) CompositeExtract 67 0 + 84: 6(float) CompositeExtract 83 0 + 85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71 + Store 74(r33) 85 + 90: 87 Load 89(g_tTex2du4a) + 91: 13 Load 15(g_sSamp) + 94: 93 SampledImage 90 91 + 95: 6(float) CompositeExtract 67 0 + 96: 6(float) CompositeExtract 95 0 + 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71 + Store 86(r35) 97 + 104: 7(ptr) AccessChain 101(psout) 102 + Store 104 103 + 105:99(PS_OUTPUT) Load 101(psout) + ReturnValue 105 + FunctionEnd diff --git a/Test/hlsl.load.dx10.frag b/Test/hlsl.load.dx10.frag new file mode 100644 index 000000000..39c99e351 --- /dev/null +++ b/Test/hlsl.load.dx10.frag @@ -0,0 +1,91 @@ +SamplerState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Load, no offset + g_tTex1df4.Load(int2(1,2)); + g_tTex1di4.Load(int2(1,2)); + g_tTex1du4.Load(int2(1,2)); + + g_tTex2df4.Load(int3(1,2,3)); + g_tTex2di4.Load(int3(1,2,3)); + g_tTex2du4.Load(int3(1,2,3)); + + g_tTex3df4.Load(int4(1,2,3,4)); + g_tTex3di4.Load(int4(1,2,3,4)); + g_tTex3du4.Load(int4(1,2,3,4)); + + g_tTex1df4a.Load(int3(1,2,3)); + g_tTex1di4a.Load(int3(1,2,3)); + g_tTex1du4a.Load(int3(1,2,3)); + + g_tTex2df4a.Load(int4(1,2,3,4)); + g_tTex2di4a.Load(int4(1,2,3,4)); + g_tTex2du4a.Load(int4(1,2,3,4)); + + // Load, offset + g_tTex1df4.Load(int2(1,2), 3); + g_tTex1di4.Load(int2(1,2), 3); + g_tTex1du4.Load(int2(1,2), 3); + + g_tTex2df4.Load(int3(1,2,3), int2(4,5)); + g_tTex2di4.Load(int3(1,2,3), int2(4,5)); + g_tTex2du4.Load(int3(1,2,3), int2(4,5)); + + g_tTex3df4.Load(int4(1,2,3,4), int3(5,6,7)); + g_tTex3di4.Load(int4(1,2,3,4), int3(5,6,7)); + g_tTex3du4.Load(int4(1,2,3,4), int3(5,6,7)); + + g_tTex1df4a.Load(int3(1,2,3), 4); + g_tTex1di4a.Load(int3(1,2,3), 4); + g_tTex1du4a.Load(int3(1,2,3), 4); + + g_tTex2df4a.Load(int4(1,2,3,4), int2(4,5)); + g_tTex2di4a.Load(int4(1,2,3,4), int2(4,5)); + g_tTex2du4a.Load(int4(1,2,3,4), int2(4,5)); + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.array.dx10.frag b/Test/hlsl.samplecmp.array.dx10.frag new file mode 100644 index 000000000..f0e0a3dcf --- /dev/null +++ b/Test/hlsl.samplecmp.array.dx10.frag @@ -0,0 +1,60 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r10 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r12 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r14 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + + // 2DArray + float r30 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r32 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r34 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + // CubeArray + float r60 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r62 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r64 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.basic.dx10.frag b/Test/hlsl.samplecmp.basic.dx10.frag new file mode 100644 index 000000000..cb73e14f6 --- /dev/null +++ b/Test/hlsl.samplecmp.basic.dx10.frag @@ -0,0 +1,61 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r00 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75); + float r02 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75); + float r04 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75); + + // 2D + float r20 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r22 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r24 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + + // *** There's no SampleCmp on 3D textures + + float r50 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r52 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r54 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.offset.dx10.frag b/Test/hlsl.samplecmp.offset.dx10.frag new file mode 100644 index 000000000..444dac8e6 --- /dev/null +++ b/Test/hlsl.samplecmp.offset.dx10.frag @@ -0,0 +1,66 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r01 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + float r03 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + float r05 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + + // 2D + float r21 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r23 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r25 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + + // *** There's no SampleCmp on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + // Cube + // float r51 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + // float r53 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + // float r55 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.offsetarray.dx10.frag b/Test/hlsl.samplecmp.offsetarray.dx10.frag new file mode 100644 index 000000000..319d5cddb --- /dev/null +++ b/Test/hlsl.samplecmp.offsetarray.dx10.frag @@ -0,0 +1,67 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r11 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r13 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r15 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + + // 2DArray + float r31 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r33 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r35 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + // *** There's no SampleCmp on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + + // CubeArray + // float r61 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r63 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r65 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.array.dx10.frag b/Test/hlsl.samplecmplevelzero.array.dx10.frag new file mode 100644 index 000000000..41b6a793a --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.array.dx10.frag @@ -0,0 +1,60 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r10 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r12 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r14 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + + // 2DArray + float r30 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r32 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r34 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + // CubeArray + float r60 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r62 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r64 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.basic.dx10.frag b/Test/hlsl.samplecmplevelzero.basic.dx10.frag new file mode 100644 index 000000000..841530a1d --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.basic.dx10.frag @@ -0,0 +1,61 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r00 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + float r02 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + float r04 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + + // 2D + float r20 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r22 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r24 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + + // *** There's no SampleCmpLevelZero on 3D textures + + float r50 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r52 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r54 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.offset.dx10.frag b/Test/hlsl.samplecmplevelzero.offset.dx10.frag new file mode 100644 index 000000000..290774e27 --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.offset.dx10.frag @@ -0,0 +1,66 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r01 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + float r03 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + float r05 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + + // 2D + float r21 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r23 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r25 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + + // *** There's no SampleCmpLevelZero on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + // Cube + // float r51 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + // float r53 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + // float r55 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag b/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag new file mode 100644 index 000000000..b57502eaa --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag @@ -0,0 +1,67 @@ +SamplerComparisonState g_sSamp : register(s0); + +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; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r11 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r13 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r15 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + + // 2DArray + float r31 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r33 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r35 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + // *** There's no SampleCmpLevelZero on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + + // CubeArray + // float r61 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r63 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r65 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index c1bfcb9ef..2923112c2 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -104,6 +104,14 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplebias.basic.dx10.frag", "main"}, {"hlsl.samplebias.offset.dx10.frag", "main"}, {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, + {"hlsl.samplecmp.array.dx10.frag", "main"}, + {"hlsl.samplecmp.basic.dx10.frag", "main"}, + {"hlsl.samplecmp.offset.dx10.frag", "main"}, + {"hlsl.samplecmp.offsetarray.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.array.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.basic.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.offset.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"}, {"hlsl.samplegrad.array.dx10.frag", "main"}, {"hlsl.samplegrad.basic.dx10.frag", "main"}, {"hlsl.samplegrad.basic.dx10.vert", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 61fe8f588..fc8360c84 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -661,8 +661,11 @@ bool HlslGrammar::acceptSamplerType(TType& type) // read sampler type const EHlslTokenClass samplerType = peek(); + // TODO: for DX9 // TSamplerDim dim = EsdNone; + bool isShadow = false; + switch (samplerType) { case EHTokSampler: break; case EHTokSampler1d: /*dim = Esd1D*/; break; @@ -670,7 +673,7 @@ bool HlslGrammar::acceptSamplerType(TType& type) case EHTokSampler3d: /*dim = Esd3D*/; break; case EHTokSamplerCube: /*dim = EsdCube*/; break; case EHTokSamplerState: break; - case EHTokSamplerComparisonState: break; + case EHTokSamplerComparisonState: isShadow = true; break; default: return false; // not a sampler declaration } @@ -678,10 +681,9 @@ bool HlslGrammar::acceptSamplerType(TType& type) advanceToken(); // consume the sampler type keyword TArraySizes* arraySizes = nullptr; // TODO: array - bool shadow = false; // TODO: shadow TSampler sampler; - sampler.setPureSampler(shadow); + sampler.setPureSampler(isShadow); type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 25dd74536..9c62a1c57 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -825,6 +825,7 @@ TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc TSampler samplerType = argTex->getType().getSampler(); samplerType.combined = true; + samplerType.shadow = argSampler->getType().getSampler().shadow; txcombine->setType(TType(samplerType, EvqTemporary)); txcombine->setLoc(loc); @@ -1063,6 +1064,66 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodSampleCmp: // fall through... + case EOpMethodSampleCmpLevelZero: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argCmpVal = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + // optional offset value + if (argAggregate->getSequence().size() > 4) + argOffset = argAggregate->getSequence()[4]->getAsTyped(); + + const int coordDimWithCmpVal = argCoord->getType().getVectorSize() + 1; // +1 for cmp + + // AST wants comparison value as one of the texture coordinates + TOperator constructOp = EOpNull; + switch (coordDimWithCmpVal) { + // 1D can't happen: there's always at least 1 coordinate dimension + 1 cmp val + case 2: constructOp = EOpConstructVec2; break; + case 3: constructOp = EOpConstructVec3; break; + case 4: constructOp = EOpConstructVec4; break; + case 5: constructOp = EOpConstructVec4; break; // cubeArrayShadow, cmp value is separate arg. + default: assert(0); break; + } + + TIntermAggregate* coordWithCmp = new TIntermAggregate(constructOp); + coordWithCmp->getSequence().push_back(argCoord); + if (coordDimWithCmpVal != 5) // cube array shadow is special. + coordWithCmp->getSequence().push_back(argCmpVal); + coordWithCmp->setLoc(loc); + + TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); + if (argOffset != nullptr) + textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLodOffset : EOpTextureOffset); + + // Create combined sampler & texture op + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(coordWithCmp); + + if (coordDimWithCmpVal == 5) // cube array shadow is special: cmp val follows coord. + txsample->getSequence().push_back(argCmpVal); + + // the LevelZero form uses 0 as an explicit LOD + if (op == EOpMethodSampleCmpLevelZero) + txsample->getSequence().push_back(intermediate.addConstantUnion(0.0, EbtFloat, loc, true)); + + // Add offset if present + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index d318a865b..06d28aa91 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -69,7 +69,7 @@ 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 IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... +bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. @@ -78,33 +78,47 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim const bool isArrayed = IsTextureArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); - // there are no 3D arrayed textures, or 3D SampleCmp - if (dim0 == 3 && (isArrayed || name == "SampleCmp")) + // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) + if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) return true; const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; - // Reject invalid offset arrayed forms with cubemaps - if (isArrayed && dim0 == 4) { + // Reject invalid offset forms with cubemaps + if (dim0 == 4) { if ((name == "Sample" && numArgs >= 4) || (name == "SampleBias" && numArgs >= 5) || (name == "SampleCmp" && numArgs >= 5) || - (name == "SampleCmpLevelZero" && numArgs >= 4) || + (name == "SampleCmpLevelZero" && numArgs >= 5) || (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; - } + if (name == "Load" && dim0 == 4) + return true; // Load does not support any cubemaps, arrayed or not. return false; } - + +// Return the number of the coordinate arg, if any +int CoordinateArgPos(const glslang::TString& name, bool isTexture) +{ + if (!isTexture || (name == "GetDimensions")) + return -1; // has none + else if (name == "Load") + return 1; + else + return 2; // other texture methods are 2 +} + +// Some texture methods use an addition coordinate dimension for the mip +bool HasMipInCoord(const glslang::TString& name) +{ + return name == "Load"; +} + // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. // @@ -141,17 +155,18 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (UseHlslTypes) { switch (type) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 'T': s += "Texture"; break; - case 'i': s += "Texture "; break; - case 'u': s += "Texture "; break; - default: s += "UNKNOWN_TYPE"; break; + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 's': s += "SamplerComparisonState"; break; + case 'T': s += "Texture"; break; + case 'i': s += "Texture "; break; + case 'u': s += "Texture "; break; + default: s += "UNKNOWN_TYPE"; break; } } else { switch (type) { @@ -162,6 +177,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; case 'S': s += "sampler"; break; + case 's': s += "samplerShadow"; break; case 'T': // fall through case 'i': // ... case 'u': // ... @@ -369,7 +385,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // orderKey can be: // S = scalar, V = vector, M = matrix, - = void // typekey can be: - // D = double, F = float, U = uint, I = int, B = bool, S = sampler + // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter @@ -555,33 +571,35 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "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 }, + // TODO: FXC accepts int/uint samplers here. unclear what that means. + { "SampleCmp", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmp", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmp", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmp", /* O A*/ "S", "F", "@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 }, + // TODO: FXC accepts int/uint samplers here. unclear what that means. + { "SampleCmpLevelZero", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmpLevelZero", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmpLevelZero", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmpLevelZero", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,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 }, + // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangAll }, + // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, + // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll }, + // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, - // 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 }, + // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, + // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, + // { "Load", /* offset*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, + // { "Load", /* offset*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, + // TODO: MS variants of Load + // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx // @@ -660,7 +678,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... const bool isTexture = IsTextureType(*argOrder); const bool isArrayed = IsTextureArrayed(*argOrder); + const bool mipInCoord = HasMipInCoord(intrinsic.name); const int fixedVecSize = FixedVecSize(argOrder); + const int coordArg = CoordinateArgPos(intrinsic.name, isTexture); // calculate min and max vector and matrix dimensions int dim0Min = 1; @@ -701,7 +721,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0; // arrayed textures have one extra coordinate dimension - if (isArrayed && arg == 2) + if (isArrayed && arg == coordArg) + argDim0++; + + // Some texture methods use an addition arg dimension to hold mip + if (arg == coordArg && mipInCoord) argDim0++; // For textures, the 1D case isn't a 1-vector, but a scalar. @@ -916,8 +940,8 @@ 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("SampleCmp", EOpMethodSampleCmp); + symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); // symbolTable.relateToOperator("Load", EOpMethodLoad);