From 3ef7852ef6ae372bb1ec1ab4ea9bd6a2bf2a8996 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Thu, 21 Jul 2016 15:02:16 -0600 Subject: [PATCH] HLSL: Add SampleLevel method --- .../hlsl.samplelevel.array.dx10.frag.out | 483 ++++++++++++++ .../hlsl.samplelevel.basic.dx10.frag.out | 589 ++++++++++++++++++ .../hlsl.samplelevel.basic.dx10.vert.out | 586 +++++++++++++++++ .../hlsl.samplelevel.offset.dx10.frag.out | 546 ++++++++++++++++ ...hlsl.samplelevel.offsetarray.dx10.frag.out | 383 ++++++++++++ Test/hlsl.samplelevel.array.dx10.frag | 43 ++ Test/hlsl.samplelevel.basic.dx10.frag | 52 ++ Test/hlsl.samplelevel.basic.dx10.vert | 49 ++ Test/hlsl.samplelevel.offset.dx10.frag | 49 ++ Test/hlsl.samplelevel.offsetarray.dx10.frag | 37 ++ gtests/Hlsl.FromFile.cpp | 5 + hlsl/hlslParseHelper.cpp | 32 + hlsl/hlslParseables.cpp | 18 +- 13 files changed, 2863 insertions(+), 9 deletions(-) create mode 100644 Test/baseResults/hlsl.samplelevel.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out create mode 100644 Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.samplelevel.array.dx10.frag create mode 100644 Test/hlsl.samplelevel.basic.dx10.frag create mode 100644 Test/hlsl.samplelevel.basic.dx10.vert create mode 100644 Test/hlsl.samplelevel.offset.dx10.frag create mode 100644 Test/hlsl.samplelevel.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out new file mode 100644 index 00000000..f7a6903b --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -0,0 +1,483 @@ +hlsl.samplelevel.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureLod (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.750000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureLod (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.750000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureLod (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureLod (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureLod (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureLod (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureLod (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureLod (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureLod (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.750000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureLod (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.750000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureLod (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.750000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureLod (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureLod (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureLod (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureLod (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureLod (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureLod (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureLod (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.750000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 130 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 65 "txval21" + Name 68 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 88 "txval40" + Name 91 "g_tTexcdf4" + Name 98 "txval41" + Name 101 "g_tTexcdi4" + Name 108 "txval42" + Name 111 "g_tTexcdu4" + Name 121 "PS_OUTPUT" + MemberName 121(PS_OUTPUT) 0 "Color" + MemberName 121(PS_OUTPUT) 1 "Depth" + Name 123 "psout" + Name 129 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 68(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 91(g_tTexcdf4) DescriptorSet 0 + Decorate 101(g_tTexcdi4) DescriptorSet 0 + Decorate 111(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 129(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 26(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1053609165 + 52: 20(fvec2) ConstantComposite 37 51 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 3 + 63: 62(fvec3) ConstantComposite 21 22 37 + 66: TypeImage 26(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2di4): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 6(float) Constant 1056964608 + 74: 62(fvec3) ConstantComposite 37 51 73 + 77: TypeImage 40(int) 2D array sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1058642330 + 85: 6(float) Constant 1060320051 + 86: 62(fvec3) ConstantComposite 73 84 85 + 89: TypeImage 6(float) Cube array sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTexcdf4): 90(ptr) Variable UniformConstant + 94: TypeSampledImage 89 + 96: 7(fvec4) ConstantComposite 21 22 37 51 + 99: TypeImage 26(int) Cube array sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdi4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 7(fvec4) ConstantComposite 51 73 84 85 + 109: TypeImage 40(int) Cube array sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTexcdu4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 6(float) Constant 1065353216 + 119: 7(fvec4) ConstantComposite 85 116 117 118 + 121(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 122: TypePointer Function 121(PS_OUTPUT) + 124: 26(int) Constant 1 + 125: TypePointer Function 6(float) +129(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 54(txval20): 8(ptr) Variable Function + 65(txval21): 28(ptr) Variable Function + 76(txval22): 42(ptr) Variable Function + 88(txval40): 8(ptr) Variable Function + 98(txval41): 28(ptr) Variable Function + 108(txval42): 42(ptr) Variable Function + 123(psout): 122(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24 + Store 9(txval10) 25 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24 + Store 29(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24 + Store 43(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 14 Load 16(g_sSamp) + 61: 60 SampledImage 58 59 + 64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24 + Store 54(txval20) 64 + 69: 66 Load 68(g_tTex2di4) + 70: 14 Load 16(g_sSamp) + 72: 71 SampledImage 69 70 + 75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24 + Store 65(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24 + Store 76(txval22) 87 + 92: 89 Load 91(g_tTexcdf4) + 93: 14 Load 16(g_sSamp) + 95: 94 SampledImage 92 93 + 97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24 + Store 88(txval40) 97 + 102: 99 Load 101(g_tTexcdi4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24 + Store 98(txval41) 107 + 112: 109 Load 111(g_tTexcdu4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24 + Store 108(txval42) 120 + 126: 125(ptr) AccessChain 123(psout) 124 + Store 126 118 + 127:121(PS_OUTPUT) Load 123(psout) + ReturnValue 127 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out new file mode 100644 index 00000000..38089d14 --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -0,0 +1,589 @@ +hlsl.samplelevel.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 'txval10' (temp 4-component vector of float) +0:32 textureLod (global 4-component vector of float) +0:32 Construct combined texture-sampler (temp sampler1D) +0:32 'g_tTex1df4' (uniform texture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.100000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of int) +0:33 'txval11' (temp 4-component vector of int) +0:33 textureLod (global 4-component vector of int) +0:33 Construct combined texture-sampler (temp isampler1D) +0:33 'g_tTex1di4' (uniform itexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.200000 +0:33 Constant: +0:33 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of uint) +0:34 'txval12' (temp 4-component vector of uint) +0:34 textureLod (global 4-component vector of uint) +0:34 Construct combined texture-sampler (temp usampler1D) +0:34 'g_tTex1du4' (uniform utexture1D) +0:34 'g_sSamp' (uniform sampler) +0:34 Constant: +0:34 0.300000 +0:34 Constant: +0:34 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:36 'txval20' (temp 4-component vector of float) +0:36 textureLod (global 4-component vector of float) +0:36 Construct combined texture-sampler (temp sampler2D) +0:36 'g_tTex2df4' (uniform texture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of int) +0:37 'txval21' (temp 4-component vector of int) +0:37 textureLod (global 4-component vector of int) +0:37 Construct combined texture-sampler (temp isampler2D) +0:37 'g_tTex2di4' (uniform itexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:37 Constant: +0:37 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of uint) +0:38 'txval22' (temp 4-component vector of uint) +0:38 textureLod (global 4-component vector of uint) +0:38 Construct combined texture-sampler (temp usampler2D) +0:38 'g_tTex2du4' (uniform utexture2D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:38 Constant: +0:38 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval30' (temp 4-component vector of float) +0:40 textureLod (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler3D) +0:40 'g_tTex3df4' (uniform texture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Constant: +0:40 0.750000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval31' (temp 4-component vector of int) +0:41 textureLod (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler3D) +0:41 'g_tTex3di4' (uniform itexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Constant: +0:41 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval32' (temp 4-component vector of uint) +0:42 textureLod (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler3D) +0:42 'g_tTex3du4' (uniform utexture3D) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:42 Constant: +0:42 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval40' (temp 4-component vector of float) +0:44 textureLod (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp samplerCube) +0:44 'g_tTexcdf4' (uniform textureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:44 Constant: +0:44 0.750000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval41' (temp 4-component vector of int) +0:45 textureLod (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isamplerCube) +0:45 'g_tTexcdi4' (uniform itextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:45 Constant: +0:45 0.750000 +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval42' (temp 4-component vector of uint) +0:46 textureLod (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usamplerCube) +0:46 'g_tTexcdu4' (uniform utextureCube) +0:46 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:46 Constant: +0:46 0.750000 +0:49 move second child to first child (temp float) +0:49 Depth: direct index for structure (temp float FragDepth) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 1.000000 +0:51 Branch: Return with expression +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 'txval10' (temp 4-component vector of float) +0:32 textureLod (global 4-component vector of float) +0:32 Construct combined texture-sampler (temp sampler1D) +0:32 'g_tTex1df4' (uniform texture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.100000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of int) +0:33 'txval11' (temp 4-component vector of int) +0:33 textureLod (global 4-component vector of int) +0:33 Construct combined texture-sampler (temp isampler1D) +0:33 'g_tTex1di4' (uniform itexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.200000 +0:33 Constant: +0:33 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of uint) +0:34 'txval12' (temp 4-component vector of uint) +0:34 textureLod (global 4-component vector of uint) +0:34 Construct combined texture-sampler (temp usampler1D) +0:34 'g_tTex1du4' (uniform utexture1D) +0:34 'g_sSamp' (uniform sampler) +0:34 Constant: +0:34 0.300000 +0:34 Constant: +0:34 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:36 'txval20' (temp 4-component vector of float) +0:36 textureLod (global 4-component vector of float) +0:36 Construct combined texture-sampler (temp sampler2D) +0:36 'g_tTex2df4' (uniform texture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of int) +0:37 'txval21' (temp 4-component vector of int) +0:37 textureLod (global 4-component vector of int) +0:37 Construct combined texture-sampler (temp isampler2D) +0:37 'g_tTex2di4' (uniform itexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:37 Constant: +0:37 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of uint) +0:38 'txval22' (temp 4-component vector of uint) +0:38 textureLod (global 4-component vector of uint) +0:38 Construct combined texture-sampler (temp usampler2D) +0:38 'g_tTex2du4' (uniform utexture2D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:38 Constant: +0:38 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval30' (temp 4-component vector of float) +0:40 textureLod (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler3D) +0:40 'g_tTex3df4' (uniform texture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Constant: +0:40 0.750000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval31' (temp 4-component vector of int) +0:41 textureLod (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler3D) +0:41 'g_tTex3di4' (uniform itexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Constant: +0:41 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval32' (temp 4-component vector of uint) +0:42 textureLod (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler3D) +0:42 'g_tTex3du4' (uniform utexture3D) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:42 Constant: +0:42 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval40' (temp 4-component vector of float) +0:44 textureLod (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp samplerCube) +0:44 'g_tTexcdf4' (uniform textureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:44 Constant: +0:44 0.750000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval41' (temp 4-component vector of int) +0:45 textureLod (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isamplerCube) +0:45 'g_tTexcdi4' (uniform itextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:45 Constant: +0:45 0.750000 +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval42' (temp 4-component vector of uint) +0:46 textureLod (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usamplerCube) +0:46 'g_tTexcdu4' (uniform utextureCube) +0:46 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:46 Constant: +0:46 0.750000 +0:49 move second child to first child (temp float) +0:49 Depth: direct index for structure (temp float FragDepth) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 1.000000 +0:51 Branch: Return with expression +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 155 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 83 "txval30" + Name 86 "g_tTex3df4" + Name 94 "txval31" + Name 97 "g_tTex3di4" + Name 104 "txval32" + Name 107 "g_tTex3du4" + Name 117 "txval40" + Name 120 "g_tTexcdf4" + Name 126 "txval41" + Name 129 "g_tTexcdi4" + Name 135 "txval42" + Name 138 "g_tTexcdu4" + Name 144 "PS_OUTPUT" + MemberName 144(PS_OUTPUT) 0 "Color" + MemberName 144(PS_OUTPUT) 1 "Depth" + Name 146 "psout" + Name 153 "g_sSamp2d" + Name 154 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 97(g_tTex3di4) DescriptorSet 0 + Decorate 107(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 153(g_sSamp2d) DescriptorSet 0 + Decorate 154(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 57(fvec2) ConstantComposite 79 80 + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 91: TypeVector 6(float) 3 + 92: 91(fvec3) ConstantComposite 20 34 47 + 95: TypeImage 23(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3di4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: 91(fvec3) ConstantComposite 68 79 80 + 105: TypeImage 36(int) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3du4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 112: 6(float) Constant 1060320051 + 113: 6(float) Constant 1061997773 + 114: 6(float) Constant 1063675494 + 115: 91(fvec3) ConstantComposite 112 113 114 + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 127: TypeImage 23(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 136: TypeImage 36(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 144(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 145: TypePointer Function 144(PS_OUTPUT) + 147: 23(int) Constant 1 + 148: 6(float) Constant 1065353216 + 149: TypePointer Function 6(float) + 153(g_sSamp2d): 15(ptr) Variable UniformConstant +154(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 83(txval30): 8(ptr) Variable Function + 94(txval31): 25(ptr) Variable Function + 104(txval32): 38(ptr) Variable Function + 117(txval40): 8(ptr) Variable Function + 126(txval41): 25(ptr) Variable Function + 135(txval42): 38(ptr) Variable Function + 146(psout): 145(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 + Store 71(txval22) 82 + 87: 84 Load 86(g_tTex3df4) + 88: 14 Load 16(g_sSamp) + 90: 89 SampledImage 87 88 + 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 + Store 83(txval30) 93 + 98: 95 Load 97(g_tTex3di4) + 99: 14 Load 16(g_sSamp) + 101: 100 SampledImage 98 99 + 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 + Store 94(txval31) 103 + 108: 105 Load 107(g_tTex3du4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 + Store 104(txval32) 116 + 121: 118 Load 120(g_tTexcdf4) + 122: 14 Load 16(g_sSamp) + 124: 123 SampledImage 121 122 + 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 + Store 117(txval40) 125 + 130: 127 Load 129(g_tTexcdi4) + 131: 14 Load 16(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 + Store 126(txval41) 134 + 139: 136 Load 138(g_tTexcdu4) + 140: 14 Load 16(g_sSamp) + 142: 141 SampledImage 139 140 + 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 + Store 135(txval42) 143 + 150: 149(ptr) AccessChain 146(psout) 147 + Store 150 148 + 151:144(PS_OUTPUT) Load 146(psout) + ReturnValue 151 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out new file mode 100644 index 00000000..b8b59027 --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -0,0 +1,586 @@ +hlsl.samplelevel.basic.dx10.vert +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureLod (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureLod (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureLod (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureLod (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Constant: +0:34 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureLod (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureLod (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:36 Constant: +0:36 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureLod (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:38 Constant: +0:38 0.750000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureLod (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:39 Constant: +0:39 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureLod (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:40 Constant: +0:40 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureLod (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureLod (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureLod (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 Constant: +0:44 0.750000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureLod (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureLod (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureLod (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureLod (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Constant: +0:34 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureLod (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureLod (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:36 Constant: +0:36 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureLod (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:38 Constant: +0:38 0.750000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureLod (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:39 Constant: +0:39 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureLod (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:40 Constant: +0:40 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureLod (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureLod (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureLod (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 Constant: +0:44 0.750000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 154 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 83 "txval30" + Name 86 "g_tTex3df4" + Name 94 "txval31" + Name 97 "g_tTex3di4" + Name 104 "txval32" + Name 107 "g_tTex3du4" + Name 117 "txval40" + Name 120 "g_tTexcdf4" + Name 126 "txval41" + Name 129 "g_tTexcdi4" + Name 135 "txval42" + Name 138 "g_tTexcdu4" + Name 144 "VS_OUTPUT" + MemberName 144(VS_OUTPUT) 0 "Pos" + Name 146 "vsout" + Name 153 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 97(g_tTex3di4) DescriptorSet 0 + Decorate 107(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 153(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 57(fvec2) ConstantComposite 79 80 + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 91: TypeVector 6(float) 3 + 92: 91(fvec3) ConstantComposite 20 34 47 + 95: TypeImage 23(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3di4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: 91(fvec3) ConstantComposite 68 79 80 + 105: TypeImage 36(int) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3du4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 112: 6(float) Constant 1060320051 + 113: 6(float) Constant 1061997773 + 114: 6(float) Constant 1063675494 + 115: 91(fvec3) ConstantComposite 112 113 114 + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 127: TypeImage 23(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 136: TypeImage 36(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 144(VS_OUTPUT): TypeStruct 7(fvec4) + 145: TypePointer Function 144(VS_OUTPUT) + 147: 23(int) Constant 0 + 148: 6(float) Constant 0 + 149: 7(fvec4) ConstantComposite 148 148 148 148 +153(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 83(txval30): 8(ptr) Variable Function + 94(txval31): 25(ptr) Variable Function + 104(txval32): 38(ptr) Variable Function + 117(txval40): 8(ptr) Variable Function + 126(txval41): 25(ptr) Variable Function + 135(txval42): 38(ptr) Variable Function + 146(vsout): 145(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 + Store 71(txval22) 82 + 87: 84 Load 86(g_tTex3df4) + 88: 14 Load 16(g_sSamp) + 90: 89 SampledImage 87 88 + 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 + Store 83(txval30) 93 + 98: 95 Load 97(g_tTex3di4) + 99: 14 Load 16(g_sSamp) + 101: 100 SampledImage 98 99 + 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 + Store 94(txval31) 103 + 108: 105 Load 107(g_tTex3du4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 + Store 104(txval32) 116 + 121: 118 Load 120(g_tTexcdf4) + 122: 14 Load 16(g_sSamp) + 124: 123 SampledImage 121 122 + 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 + Store 117(txval40) 125 + 130: 127 Load 129(g_tTexcdi4) + 131: 14 Load 16(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 + Store 126(txval41) 134 + 139: 136 Load 138(g_tTexcdu4) + 140: 14 Load 16(g_sSamp) + 142: 141 SampledImage 139 140 + 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 + Store 135(txval42) 143 + 150: 8(ptr) AccessChain 146(vsout) 147 + Store 150 149 + 151:144(VS_OUTPUT) Load 146(vsout) + ReturnValue 151 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out new file mode 100644 index 00000000..f2ca5ad1 --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -0,0 +1,546 @@ +hlsl.samplelevel.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureLodOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.750000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureLodOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.750000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureLodOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.750000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureLodOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureLodOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureLodOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureLodOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureLodOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureLodOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureLodOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.750000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureLodOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.750000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureLodOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.750000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureLodOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureLodOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureLodOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureLodOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureLodOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureLodOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 146 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 90 "txval30" + Name 93 "g_tTex3df4" + Name 103 "txval31" + Name 106 "g_tTex3di4" + Name 114 "txval32" + Name 117 "g_tTex3du4" + Name 128 "PS_OUTPUT" + MemberName 128(PS_OUTPUT) 0 "Color" + MemberName 128(PS_OUTPUT) 1 "Depth" + Name 130 "psout" + Name 136 "g_tTex1df4a" + Name 139 "g_tTexcdf4" + Name 142 "g_tTexcdi4" + Name 145 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 93(g_tTex3df4) DescriptorSet 0 + Decorate 106(g_tTex3di4) DescriptorSet 0 + Decorate 117(g_tTex3du4) DescriptorSet 0 + MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 136(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTexcdf4) DescriptorSet 0 + Decorate 142(g_tTexcdi4) DescriptorSet 0 + Decorate 145(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 25: TypeVector 22(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 22(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: TypeVector 22(int) 2 + 61: 22(int) Constant 0 + 62: 60(ivec2) ConstantComposite 23 61 + 65: TypeImage 22(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 58(fvec2) ConstantComposite 48 72 + 74: 60(ivec2) ConstantComposite 23 23 + 77: TypeImage 37(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1056964608 + 85: 6(float) Constant 1058642330 + 86: 58(fvec2) ConstantComposite 84 85 + 87: 22(int) Constant 4294967295 + 88: 60(ivec2) ConstantComposite 23 87 + 91: TypeImage 6(float) 3D sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex3df4): 92(ptr) Variable UniformConstant + 96: TypeSampledImage 91 + 98: TypeVector 6(float) 3 + 99: 98(fvec3) ConstantComposite 20 35 48 + 100: TypeVector 22(int) 3 + 101: 100(ivec3) ConstantComposite 23 61 23 + 104: TypeImage 22(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3di4): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 98(fvec3) ConstantComposite 72 84 85 + 112: 100(ivec3) ConstantComposite 23 23 23 + 115: TypeImage 37(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 120: TypeSampledImage 115 + 122: 6(float) Constant 1060320051 + 123: 6(float) Constant 1061997773 + 124: 6(float) Constant 1063675494 + 125: 98(fvec3) ConstantComposite 122 123 124 + 126: 100(ivec3) ConstantComposite 23 61 87 + 128(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 129: TypePointer Function 128(PS_OUTPUT) + 131: 6(float) Constant 1065353216 + 132: TypePointer Function 6(float) +136(g_tTex1df4a): 11(ptr) Variable UniformConstant + 137: TypeImage 6(float) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdf4): 138(ptr) Variable UniformConstant + 140: TypeImage 22(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdi4): 141(ptr) Variable UniformConstant + 143: TypeImage 37(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdu4): 144(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 64(txval21): 26(ptr) Variable Function + 76(txval22): 39(ptr) Variable Function + 90(txval30): 8(ptr) Variable Function + 103(txval31): 26(ptr) Variable Function + 114(txval32): 39(ptr) Variable Function + 130(psout): 129(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleExplicitLod 19 20 Lod ConstOffset 21 23 + Store 9(txval10) 24 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Lod ConstOffset 21 23 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Lod ConstOffset 21 23 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 63: 7(fvec4) ImageSampleExplicitLod 57 59 Lod ConstOffset 21 62 + Store 50(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 75: 25(ivec4) ImageSampleExplicitLod 71 73 Lod ConstOffset 21 74 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 89: 38(ivec4) ImageSampleExplicitLod 83 86 Lod ConstOffset 21 88 + Store 76(txval22) 89 + 94: 91 Load 93(g_tTex3df4) + 95: 14 Load 16(g_sSamp) + 97: 96 SampledImage 94 95 + 102: 7(fvec4) ImageSampleExplicitLod 97 99 Lod ConstOffset 21 101 + Store 90(txval30) 102 + 107: 104 Load 106(g_tTex3di4) + 108: 14 Load 16(g_sSamp) + 110: 109 SampledImage 107 108 + 113: 25(ivec4) ImageSampleExplicitLod 110 111 Lod ConstOffset 21 112 + Store 103(txval31) 113 + 118: 115 Load 117(g_tTex3du4) + 119: 14 Load 16(g_sSamp) + 121: 120 SampledImage 118 119 + 127: 38(ivec4) ImageSampleExplicitLod 121 125 Lod ConstOffset 21 126 + Store 114(txval32) 127 + 133: 132(ptr) AccessChain 130(psout) 23 + Store 133 131 + 134:128(PS_OUTPUT) Load 130(psout) + ReturnValue 134 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out new file mode 100644 index 00000000..9677209c --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -0,0 +1,383 @@ +hlsl.samplelevel.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureLodOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.750000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureLodOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.750000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureLodOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.750000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureLodOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureLodOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureLodOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureLodOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.750000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureLodOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.750000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureLodOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.750000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureLodOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureLodOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureLodOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 103 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 81 "txval22" + Name 84 "g_tTex2du4" + Name 94 "PS_OUTPUT" + MemberName 94(PS_OUTPUT) 0 "Color" + MemberName 94(PS_OUTPUT) 1 "Depth" + Name 96 "psout" + Name 102 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 84(g_tTex2du4) DescriptorSet 0 + MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 102(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1050253722 + 39: 20(fvec2) ConstantComposite 22 38 + 40: 25(int) Constant 1 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1053609165 + 54: 20(fvec2) ConstantComposite 38 53 + 55: 25(int) Constant 2 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: TypeVector 6(float) 3 + 66: 65(fvec3) ConstantComposite 21 22 38 + 67: TypeVector 25(int) 2 + 68: 67(ivec2) ConstantComposite 26 26 + 71: TypeImage 25(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1056964608 + 79: 65(fvec3) ConstantComposite 38 53 78 + 82: TypeImage 42(int) 2D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2du4): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: 6(float) Constant 1058642330 + 90: 6(float) Constant 1060320051 + 91: 65(fvec3) ConstantComposite 78 89 90 + 92: 67(ivec2) ConstantComposite 26 40 + 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 95: TypePointer Function 94(PS_OUTPUT) + 97: 6(float) Constant 1065353216 + 98: TypePointer Function 6(float) +102(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 57(txval20): 8(ptr) Variable Function + 70(txval21): 29(ptr) Variable Function + 81(txval22): 44(ptr) Variable Function + 96(psout): 95(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageSampleExplicitLod 19 23 Lod ConstOffset 24 26 + Store 9(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageSampleExplicitLod 37 39 Lod ConstOffset 24 40 + Store 30(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageSampleExplicitLod 52 54 Lod ConstOffset 24 55 + Store 45(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 69: 7(fvec4) ImageSampleExplicitLod 64 66 Lod ConstOffset 24 68 + Store 57(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 14 Load 16(g_sSamp) + 77: 76 SampledImage 74 75 + 80: 28(ivec4) ImageSampleExplicitLod 77 79 Lod ConstOffset 24 68 + Store 70(txval21) 80 + 85: 82 Load 84(g_tTex2du4) + 86: 14 Load 16(g_sSamp) + 88: 87 SampledImage 85 86 + 93: 43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92 + Store 81(txval22) 93 + 99: 98(ptr) AccessChain 96(psout) 40 + Store 99 97 + 100:94(PS_OUTPUT) Load 96(psout) + ReturnValue 100 + FunctionEnd diff --git a/Test/hlsl.samplelevel.array.dx10.frag b/Test/hlsl.samplelevel.array.dx10.frag new file mode 100644 index 00000000..68dbdde3 --- /dev/null +++ b/Test/hlsl.samplelevel.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.basic.dx10.frag b/Test/hlsl.samplelevel.basic.dx10.frag new file mode 100644 index 00000000..fb363ae8 --- /dev/null +++ b/Test/hlsl.samplelevel.basic.dx10.frag @@ -0,0 +1,52 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.basic.dx10.vert b/Test/hlsl.samplelevel.basic.dx10.vert new file mode 100644 index 00000000..03febcff --- /dev/null +++ b/Test/hlsl.samplelevel.basic.dx10.vert @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/Test/hlsl.samplelevel.offset.dx10.frag b/Test/hlsl.samplelevel.offset.dx10.frag new file mode 100644 index 00000000..14906116 --- /dev/null +++ b/Test/hlsl.samplelevel.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75, 1); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75, 1); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75, 1); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75, int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75, int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75, int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.offsetarray.dx10.frag b/Test/hlsl.samplelevel.offsetarray.dx10.frag new file mode 100644 index 00000000..5c7bd71a --- /dev/null +++ b/Test/hlsl.samplelevel.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, 0); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75, 1); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, 2); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(0,0)); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75, int2(0,0)); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75, int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 4e88eee7..900aee7f 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -121,6 +121,11 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplegrad.basic.dx10.vert", "main"}, {"hlsl.samplegrad.offset.dx10.frag", "main"}, {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, + {"hlsl.samplelevel.array.dx10.frag", "main"}, + {"hlsl.samplelevel.basic.dx10.frag", "main"}, + {"hlsl.samplelevel.basic.dx10.vert", "main"}, + {"hlsl.samplelevel.offset.dx10.frag", "main"}, + {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index af4a76b2..83817eaa 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1189,6 +1189,38 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodSampleLevel: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + const int numArgs = argAggregate->getSequence().size(); + + if (numArgs == 5) // offset, if present + argOffset = argAggregate->getSequence()[4]->getAsTyped(); + + const TOperator textureOp = (argOffset == nullptr ? EOpTextureLod : EOpTextureLodOffset); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->getSequence().push_back(argLod); + + 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 0a1051ea..a3bc3295 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -588,15 +588,15 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "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", 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 }, + { "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 }, - { "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, - { "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, - { "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, - { "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, + { "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, + { "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /* O A*/ "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 }, @@ -943,7 +943,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); - // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); + symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); symbolTable.relateToOperator("Load", EOpMethodLoad); symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); }