Merge pull request #399 from steve-lunarg/samplers

HLSL: Add SampleCmp and SampleCmpLevelZero texture methods
This commit is contained in:
John Kessenich 2016-07-20 17:54:53 -06:00 committed by GitHub
commit 83768cb541
21 changed files with 5143 additions and 49 deletions

View File

@ -0,0 +1,588 @@
hlsl.samplecmp.array.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r10' (temp float)
0:42 texture (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r12' (temp float)
0:43 texture (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r14' (temp float)
0:44 texture (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r30' (temp float)
0:47 texture (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r32' (temp float)
0:48 texture (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r34' (temp float)
0:49 texture (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:52 Sequence
0:52 move second child to first child (temp float)
0:52 'r60' (temp float)
0:52 texture (global float)
0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
0:52 'g_tTexcdf4a' (uniform textureCubeArray)
0:52 'g_sSamp' (uniform sampler)
0:52 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:52 Constant:
0:52 0.750000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r62' (temp float)
0:53 texture (global float)
0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:53 Constant:
0:53 0.750000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r64' (temp float)
0:54 texture (global float)
0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:54 Constant:
0:54 0.750000
0:57 move second child to first child (temp float)
0:57 Depth: direct index for structure (temp float FragDepth)
0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:57 Constant:
0:57 1 (const int)
0:57 Constant:
0:57 1.000000
0:59 Branch: Return with expression
0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r10' (temp float)
0:42 texture (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r12' (temp float)
0:43 texture (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r14' (temp float)
0:44 texture (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r30' (temp float)
0:47 texture (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r32' (temp float)
0:48 texture (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r34' (temp float)
0:49 texture (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:52 Sequence
0:52 move second child to first child (temp float)
0:52 'r60' (temp float)
0:52 texture (global float)
0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
0:52 'g_tTexcdf4a' (uniform textureCubeArray)
0:52 'g_sSamp' (uniform sampler)
0:52 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:52 Constant:
0:52 0.750000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r62' (temp float)
0:53 texture (global float)
0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:53 Constant:
0:53 0.750000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r64' (temp float)
0:54 texture (global float)
0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:54 Constant:
0:54 0.750000
0:57 move second child to first child (temp float)
0:57 Depth: direct index for structure (temp float FragDepth)
0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:57 Constant:
0:57 1 (const int)
0:57 Constant:
0:57 1.000000
0:59 Branch: Return with expression
0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 173
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r10"
Name 11 "g_tTex1df4a"
Name 15 "g_sSamp"
Name 28 "r12"
Name 32 "g_tTex1di4a"
Name 41 "r14"
Name 45 "g_tTex1du4a"
Name 54 "r30"
Name 57 "g_tTex2df4a"
Name 69 "r32"
Name 72 "g_tTex2di4a"
Name 81 "r34"
Name 84 "g_tTex2du4a"
Name 93 "r60"
Name 96 "g_tTexcdf4a"
Name 107 "r62"
Name 110 "g_tTexcdi4a"
Name 118 "r64"
Name 121 "g_tTexcdu4a"
Name 129 "PS_OUTPUT"
MemberName 129(PS_OUTPUT) 0 "Color"
MemberName 129(PS_OUTPUT) 1 "Depth"
Name 131 "psout"
Name 139 "g_tTex1df4"
Name 142 "g_tTex1di4"
Name 145 "g_tTex1du4"
Name 148 "g_tTex2df4"
Name 151 "g_tTex2di4"
Name 154 "g_tTex2du4"
Name 157 "g_tTex3df4"
Name 160 "g_tTex3di4"
Name 163 "g_tTex3du4"
Name 166 "g_tTexcdf4"
Name 169 "g_tTexcdi4"
Name 172 "g_tTexcdu4"
Decorate 11(g_tTex1df4a) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 32(g_tTex1di4a) DescriptorSet 0
Decorate 45(g_tTex1du4a) DescriptorSet 0
Decorate 57(g_tTex2df4a) DescriptorSet 0
Decorate 72(g_tTex2di4a) DescriptorSet 0
Decorate 84(g_tTex2du4a) DescriptorSet 0
Decorate 96(g_tTexcdf4a) DescriptorSet 0
Decorate 110(g_tTexcdi4a) DescriptorSet 0
Decorate 121(g_tTexcdu4a) DescriptorSet 0
MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 139(g_tTex1df4) DescriptorSet 0
Decorate 142(g_tTex1di4) DescriptorSet 0
Decorate 145(g_tTex1du4) DescriptorSet 0
Decorate 148(g_tTex2df4) DescriptorSet 0
Decorate 151(g_tTex2di4) DescriptorSet 0
Decorate 154(g_tTex2du4) DescriptorSet 0
Decorate 157(g_tTex3df4) DescriptorSet 0
Decorate 160(g_tTex3di4) DescriptorSet 0
Decorate 163(g_tTex3du4) DescriptorSet 0
Decorate 166(g_tTexcdf4) DescriptorSet 0
Decorate 169(g_tTexcdi4) DescriptorSet 0
Decorate 172(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D array sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4a): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth array sampled format:Unknown
18: TypeSampledImage 17
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: 6(float) Constant 1061158912
29: TypeInt 32 1
30: TypeImage 29(int) 1D array sampled format:Unknown
31: TypePointer UniformConstant 30
32(g_tTex1di4a): 31(ptr) Variable UniformConstant
35: TypeImage 29(int) 1D depth array sampled format:Unknown
36: TypeSampledImage 35
42: TypeInt 32 0
43: TypeImage 42(int) 1D array sampled format:Unknown
44: TypePointer UniformConstant 43
45(g_tTex1du4a): 44(ptr) Variable UniformConstant
48: TypeImage 42(int) 1D depth array sampled format:Unknown
49: TypeSampledImage 48
55: TypeImage 6(float) 2D array sampled format:Unknown
56: TypePointer UniformConstant 55
57(g_tTex2df4a): 56(ptr) Variable UniformConstant
60: TypeImage 6(float) 2D depth array sampled format:Unknown
61: TypeSampledImage 60
63: TypeVector 6(float) 3
64: 6(float) Constant 1050253722
65: 63(fvec3) ConstantComposite 21 22 64
70: TypeImage 29(int) 2D array sampled format:Unknown
71: TypePointer UniformConstant 70
72(g_tTex2di4a): 71(ptr) Variable UniformConstant
75: TypeImage 29(int) 2D depth array sampled format:Unknown
76: TypeSampledImage 75
82: TypeImage 42(int) 2D array sampled format:Unknown
83: TypePointer UniformConstant 82
84(g_tTex2du4a): 83(ptr) Variable UniformConstant
87: TypeImage 42(int) 2D depth array sampled format:Unknown
88: TypeSampledImage 87
94: TypeImage 6(float) Cube array sampled format:Unknown
95: TypePointer UniformConstant 94
96(g_tTexcdf4a): 95(ptr) Variable UniformConstant
99: TypeImage 6(float) Cube depth array sampled format:Unknown
100: TypeSampledImage 99
102: TypeVector 6(float) 4
103: 6(float) Constant 1053609165
104: 102(fvec4) ConstantComposite 21 22 64 103
108: TypeImage 29(int) Cube array sampled format:Unknown
109: TypePointer UniformConstant 108
110(g_tTexcdi4a): 109(ptr) Variable UniformConstant
113: TypeImage 29(int) Cube depth array sampled format:Unknown
114: TypeSampledImage 113
119: TypeImage 42(int) Cube array sampled format:Unknown
120: TypePointer UniformConstant 119
121(g_tTexcdu4a): 120(ptr) Variable UniformConstant
124: TypeImage 42(int) Cube depth array sampled format:Unknown
125: TypeSampledImage 124
129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float)
130: TypePointer Function 129(PS_OUTPUT)
132: 29(int) Constant 1
133: 6(float) Constant 1065353216
137: TypeImage 6(float) 1D sampled format:Unknown
138: TypePointer UniformConstant 137
139(g_tTex1df4): 138(ptr) Variable UniformConstant
140: TypeImage 29(int) 1D sampled format:Unknown
141: TypePointer UniformConstant 140
142(g_tTex1di4): 141(ptr) Variable UniformConstant
143: TypeImage 42(int) 1D sampled format:Unknown
144: TypePointer UniformConstant 143
145(g_tTex1du4): 144(ptr) Variable UniformConstant
146: TypeImage 6(float) 2D sampled format:Unknown
147: TypePointer UniformConstant 146
148(g_tTex2df4): 147(ptr) Variable UniformConstant
149: TypeImage 29(int) 2D sampled format:Unknown
150: TypePointer UniformConstant 149
151(g_tTex2di4): 150(ptr) Variable UniformConstant
152: TypeImage 42(int) 2D sampled format:Unknown
153: TypePointer UniformConstant 152
154(g_tTex2du4): 153(ptr) Variable UniformConstant
155: TypeImage 6(float) 3D sampled format:Unknown
156: TypePointer UniformConstant 155
157(g_tTex3df4): 156(ptr) Variable UniformConstant
158: TypeImage 29(int) 3D sampled format:Unknown
159: TypePointer UniformConstant 158
160(g_tTex3di4): 159(ptr) Variable UniformConstant
161: TypeImage 42(int) 3D sampled format:Unknown
162: TypePointer UniformConstant 161
163(g_tTex3du4): 162(ptr) Variable UniformConstant
164: TypeImage 6(float) Cube sampled format:Unknown
165: TypePointer UniformConstant 164
166(g_tTexcdf4): 165(ptr) Variable UniformConstant
167: TypeImage 29(int) Cube sampled format:Unknown
168: TypePointer UniformConstant 167
169(g_tTexcdi4): 168(ptr) Variable UniformConstant
170: TypeImage 42(int) Cube sampled format:Unknown
171: TypePointer UniformConstant 170
172(g_tTexcdu4): 171(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r10): 7(ptr) Variable Function
28(r12): 7(ptr) Variable Function
41(r14): 7(ptr) Variable Function
54(r30): 7(ptr) Variable Function
69(r32): 7(ptr) Variable Function
81(r34): 7(ptr) Variable Function
93(r60): 7(ptr) Variable Function
107(r62): 7(ptr) Variable Function
118(r64): 7(ptr) Variable Function
131(psout): 130(ptr) Variable Function
12: 9 Load 11(g_tTex1df4a)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
25: 6(float) CompositeExtract 23 0
26: 6(float) CompositeExtract 25 0
27: 6(float) ImageSampleDrefImplicitLod 19 25 26
Store 8(r10) 27
33: 30 Load 32(g_tTex1di4a)
34: 13 Load 15(g_sSamp)
37: 36 SampledImage 33 34
38: 6(float) CompositeExtract 23 0
39: 6(float) CompositeExtract 38 0
40: 6(float) ImageSampleDrefImplicitLod 37 38 39
Store 28(r12) 40
46: 43 Load 45(g_tTex1du4a)
47: 13 Load 15(g_sSamp)
50: 49 SampledImage 46 47
51: 6(float) CompositeExtract 23 0
52: 6(float) CompositeExtract 51 0
53: 6(float) ImageSampleDrefImplicitLod 50 51 52
Store 41(r14) 53
58: 55 Load 57(g_tTex2df4a)
59: 13 Load 15(g_sSamp)
62: 61 SampledImage 58 59
66: 6(float) CompositeExtract 65 0
67: 6(float) CompositeExtract 66 0
68: 6(float) ImageSampleDrefImplicitLod 62 66 67
Store 54(r30) 68
73: 70 Load 72(g_tTex2di4a)
74: 13 Load 15(g_sSamp)
77: 76 SampledImage 73 74
78: 6(float) CompositeExtract 65 0
79: 6(float) CompositeExtract 78 0
80: 6(float) ImageSampleDrefImplicitLod 77 78 79
Store 69(r32) 80
85: 82 Load 84(g_tTex2du4a)
86: 13 Load 15(g_sSamp)
89: 88 SampledImage 85 86
90: 6(float) CompositeExtract 65 0
91: 6(float) CompositeExtract 90 0
92: 6(float) ImageSampleDrefImplicitLod 89 90 91
Store 81(r34) 92
97: 94 Load 96(g_tTexcdf4a)
98: 13 Load 15(g_sSamp)
101: 100 SampledImage 97 98
105: 6(float) CompositeExtract 104 0
106: 6(float) ImageSampleDrefImplicitLod 101 105 24
Store 93(r60) 106
111: 108 Load 110(g_tTexcdi4a)
112: 13 Load 15(g_sSamp)
115: 114 SampledImage 111 112
116: 6(float) CompositeExtract 104 0
117: 6(float) ImageSampleDrefImplicitLod 115 116 24
Store 107(r62) 117
122: 119 Load 121(g_tTexcdu4a)
123: 13 Load 15(g_sSamp)
126: 125 SampledImage 122 123
127: 6(float) CompositeExtract 104 0
128: 6(float) ImageSampleDrefImplicitLod 126 127 24
Store 118(r64) 128
134: 7(ptr) AccessChain 131(psout) 132
Store 134 133
135:129(PS_OUTPUT) Load 131(psout)
ReturnValue 135
FunctionEnd

View File

@ -0,0 +1,568 @@
hlsl.samplecmp.basic.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r00' (temp float)
0:42 texture (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r02' (temp float)
0:43 texture (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r04' (temp float)
0:44 texture (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r20' (temp float)
0:47 texture (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r22' (temp float)
0:48 texture (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r24' (temp float)
0:49 texture (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r50' (temp float)
0:53 texture (global float)
0:53 Construct combined texture-sampler (temp samplerCubeShadow)
0:53 'g_tTexcdf4' (uniform textureCube)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:53 Constant:
0:53 0.750000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r52' (temp float)
0:54 texture (global float)
0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
0:54 'g_tTexcdi4' (uniform itextureCube)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:54 Constant:
0:54 0.750000
0:55 Sequence
0:55 move second child to first child (temp float)
0:55 'r54' (temp float)
0:55 texture (global float)
0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
0:55 'g_tTexcdu4' (uniform utextureCube)
0:55 'g_sSamp' (uniform sampler)
0:55 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:55 Constant:
0:55 0.750000
0:58 move second child to first child (temp float)
0:58 Depth: direct index for structure (temp float FragDepth)
0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:58 Constant:
0:58 1 (const int)
0:58 Constant:
0:58 1.000000
0:60 Branch: Return with expression
0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r00' (temp float)
0:42 texture (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r02' (temp float)
0:43 texture (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r04' (temp float)
0:44 texture (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r20' (temp float)
0:47 texture (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r22' (temp float)
0:48 texture (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r24' (temp float)
0:49 texture (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r50' (temp float)
0:53 texture (global float)
0:53 Construct combined texture-sampler (temp samplerCubeShadow)
0:53 'g_tTexcdf4' (uniform textureCube)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:53 Constant:
0:53 0.750000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r52' (temp float)
0:54 texture (global float)
0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
0:54 'g_tTexcdi4' (uniform itextureCube)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:54 Constant:
0:54 0.750000
0:55 Sequence
0:55 move second child to first child (temp float)
0:55 'r54' (temp float)
0:55 texture (global float)
0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
0:55 'g_tTexcdu4' (uniform utextureCube)
0:55 'g_sSamp' (uniform sampler)
0:55 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:55 Constant:
0:55 0.750000
0:58 move second child to first child (temp float)
0:58 Depth: direct index for structure (temp float FragDepth)
0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:58 Constant:
0:58 1 (const int)
0:58 Constant:
0:58 1.000000
0:60 Branch: Return with expression
0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 171
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r00"
Name 11 "g_tTex1df4"
Name 15 "g_sSamp"
Name 24 "r02"
Name 28 "g_tTex1di4"
Name 36 "r04"
Name 40 "g_tTex1du4"
Name 48 "r20"
Name 51 "g_tTex2df4"
Name 63 "r22"
Name 66 "g_tTex2di4"
Name 75 "r24"
Name 78 "g_tTex2du4"
Name 87 "r50"
Name 90 "g_tTexcdf4"
Name 102 "r52"
Name 105 "g_tTexcdi4"
Name 114 "r54"
Name 117 "g_tTexcdu4"
Name 127 "PS_OUTPUT"
MemberName 127(PS_OUTPUT) 0 "Color"
MemberName 127(PS_OUTPUT) 1 "Depth"
Name 129 "psout"
Name 137 "g_tTex3df4"
Name 140 "g_tTex3di4"
Name 143 "g_tTex3du4"
Name 146 "g_tTex1df4a"
Name 149 "g_tTex1di4a"
Name 152 "g_tTex1du4a"
Name 155 "g_tTex2df4a"
Name 158 "g_tTex2di4a"
Name 161 "g_tTex2du4a"
Name 164 "g_tTexcdf4a"
Name 167 "g_tTexcdi4a"
Name 170 "g_tTexcdu4a"
Decorate 11(g_tTex1df4) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 28(g_tTex1di4) DescriptorSet 0
Decorate 40(g_tTex1du4) DescriptorSet 0
Decorate 51(g_tTex2df4) DescriptorSet 0
Decorate 66(g_tTex2di4) DescriptorSet 0
Decorate 78(g_tTex2du4) DescriptorSet 0
Decorate 90(g_tTexcdf4) DescriptorSet 0
Decorate 105(g_tTexcdi4) DescriptorSet 0
Decorate 117(g_tTexcdu4) DescriptorSet 0
MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 137(g_tTex3df4) DescriptorSet 0
Decorate 140(g_tTex3di4) DescriptorSet 0
Decorate 143(g_tTex3du4) DescriptorSet 0
Decorate 146(g_tTex1df4a) DescriptorSet 0
Decorate 149(g_tTex1di4a) DescriptorSet 0
Decorate 152(g_tTex1du4a) DescriptorSet 0
Decorate 155(g_tTex2df4a) DescriptorSet 0
Decorate 158(g_tTex2di4a) DescriptorSet 0
Decorate 161(g_tTex2du4a) DescriptorSet 0
Decorate 164(g_tTexcdf4a) DescriptorSet 0
Decorate 167(g_tTexcdi4a) DescriptorSet 0
Decorate 170(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth sampled format:Unknown
18: TypeSampledImage 17
20: 6(float) Constant 1036831949
21: 6(float) Constant 1061158912
25: TypeInt 32 1
26: TypeImage 25(int) 1D sampled format:Unknown
27: TypePointer UniformConstant 26
28(g_tTex1di4): 27(ptr) Variable UniformConstant
31: TypeImage 25(int) 1D depth sampled format:Unknown
32: TypeSampledImage 31
37: TypeInt 32 0
38: TypeImage 37(int) 1D sampled format:Unknown
39: TypePointer UniformConstant 38
40(g_tTex1du4): 39(ptr) Variable UniformConstant
43: TypeImage 37(int) 1D depth sampled format:Unknown
44: TypeSampledImage 43
49: TypeImage 6(float) 2D sampled format:Unknown
50: TypePointer UniformConstant 49
51(g_tTex2df4): 50(ptr) Variable UniformConstant
54: TypeImage 6(float) 2D depth sampled format:Unknown
55: TypeSampledImage 54
57: TypeVector 6(float) 2
58: 6(float) Constant 1045220557
59: 57(fvec2) ConstantComposite 20 58
64: TypeImage 25(int) 2D sampled format:Unknown
65: TypePointer UniformConstant 64
66(g_tTex2di4): 65(ptr) Variable UniformConstant
69: TypeImage 25(int) 2D depth sampled format:Unknown
70: TypeSampledImage 69
76: TypeImage 37(int) 2D sampled format:Unknown
77: TypePointer UniformConstant 76
78(g_tTex2du4): 77(ptr) Variable UniformConstant
81: TypeImage 37(int) 2D depth sampled format:Unknown
82: TypeSampledImage 81
88: TypeImage 6(float) Cube sampled format:Unknown
89: TypePointer UniformConstant 88
90(g_tTexcdf4): 89(ptr) Variable UniformConstant
93: TypeImage 6(float) Cube depth sampled format:Unknown
94: TypeSampledImage 93
96: TypeVector 6(float) 3
97: 6(float) Constant 1050253722
98: 96(fvec3) ConstantComposite 20 58 97
103: TypeImage 25(int) Cube sampled format:Unknown
104: TypePointer UniformConstant 103
105(g_tTexcdi4): 104(ptr) Variable UniformConstant
108: TypeImage 25(int) Cube depth sampled format:Unknown
109: TypeSampledImage 108
115: TypeImage 37(int) Cube sampled format:Unknown
116: TypePointer UniformConstant 115
117(g_tTexcdu4): 116(ptr) Variable UniformConstant
120: TypeImage 37(int) Cube depth sampled format:Unknown
121: TypeSampledImage 120
126: TypeVector 6(float) 4
127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float)
128: TypePointer Function 127(PS_OUTPUT)
130: 25(int) Constant 1
131: 6(float) Constant 1065353216
135: TypeImage 6(float) 3D sampled format:Unknown
136: TypePointer UniformConstant 135
137(g_tTex3df4): 136(ptr) Variable UniformConstant
138: TypeImage 25(int) 3D sampled format:Unknown
139: TypePointer UniformConstant 138
140(g_tTex3di4): 139(ptr) Variable UniformConstant
141: TypeImage 37(int) 3D sampled format:Unknown
142: TypePointer UniformConstant 141
143(g_tTex3du4): 142(ptr) Variable UniformConstant
144: TypeImage 6(float) 1D array sampled format:Unknown
145: TypePointer UniformConstant 144
146(g_tTex1df4a): 145(ptr) Variable UniformConstant
147: TypeImage 25(int) 1D array sampled format:Unknown
148: TypePointer UniformConstant 147
149(g_tTex1di4a): 148(ptr) Variable UniformConstant
150: TypeImage 37(int) 1D array sampled format:Unknown
151: TypePointer UniformConstant 150
152(g_tTex1du4a): 151(ptr) Variable UniformConstant
153: TypeImage 6(float) 2D array sampled format:Unknown
154: TypePointer UniformConstant 153
155(g_tTex2df4a): 154(ptr) Variable UniformConstant
156: TypeImage 25(int) 2D array sampled format:Unknown
157: TypePointer UniformConstant 156
158(g_tTex2di4a): 157(ptr) Variable UniformConstant
159: TypeImage 37(int) 2D array sampled format:Unknown
160: TypePointer UniformConstant 159
161(g_tTex2du4a): 160(ptr) Variable UniformConstant
162: TypeImage 6(float) Cube array sampled format:Unknown
163: TypePointer UniformConstant 162
164(g_tTexcdf4a): 163(ptr) Variable UniformConstant
165: TypeImage 25(int) Cube array sampled format:Unknown
166: TypePointer UniformConstant 165
167(g_tTexcdi4a): 166(ptr) Variable UniformConstant
168: TypeImage 37(int) Cube array sampled format:Unknown
169: TypePointer UniformConstant 168
170(g_tTexcdu4a): 169(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r00): 7(ptr) Variable Function
24(r02): 7(ptr) Variable Function
36(r04): 7(ptr) Variable Function
48(r20): 7(ptr) Variable Function
63(r22): 7(ptr) Variable Function
75(r24): 7(ptr) Variable Function
87(r50): 7(ptr) Variable Function
102(r52): 7(ptr) Variable Function
114(r54): 7(ptr) Variable Function
129(psout): 128(ptr) Variable Function
12: 9 Load 11(g_tTex1df4)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
22: 6(float) CompositeExtract 20 0
23: 6(float) ImageSampleDrefImplicitLod 19 20 22
Store 8(r00) 23
29: 26 Load 28(g_tTex1di4)
30: 13 Load 15(g_sSamp)
33: 32 SampledImage 29 30
34: 6(float) CompositeExtract 20 0
35: 6(float) ImageSampleDrefImplicitLod 33 20 34
Store 24(r02) 35
41: 38 Load 40(g_tTex1du4)
42: 13 Load 15(g_sSamp)
45: 44 SampledImage 41 42
46: 6(float) CompositeExtract 20 0
47: 6(float) ImageSampleDrefImplicitLod 45 20 46
Store 36(r04) 47
52: 49 Load 51(g_tTex2df4)
53: 13 Load 15(g_sSamp)
56: 55 SampledImage 52 53
60: 6(float) CompositeExtract 59 0
61: 6(float) CompositeExtract 60 0
62: 6(float) ImageSampleDrefImplicitLod 56 60 61
Store 48(r20) 62
67: 64 Load 66(g_tTex2di4)
68: 13 Load 15(g_sSamp)
71: 70 SampledImage 67 68
72: 6(float) CompositeExtract 59 0
73: 6(float) CompositeExtract 72 0
74: 6(float) ImageSampleDrefImplicitLod 71 72 73
Store 63(r22) 74
79: 76 Load 78(g_tTex2du4)
80: 13 Load 15(g_sSamp)
83: 82 SampledImage 79 80
84: 6(float) CompositeExtract 59 0
85: 6(float) CompositeExtract 84 0
86: 6(float) ImageSampleDrefImplicitLod 83 84 85
Store 75(r24) 86
91: 88 Load 90(g_tTexcdf4)
92: 13 Load 15(g_sSamp)
95: 94 SampledImage 91 92
99: 6(float) CompositeExtract 98 0
100: 6(float) CompositeExtract 99 0
101: 6(float) ImageSampleDrefImplicitLod 95 99 100
Store 87(r50) 101
106: 103 Load 105(g_tTexcdi4)
107: 13 Load 15(g_sSamp)
110: 109 SampledImage 106 107
111: 6(float) CompositeExtract 98 0
112: 6(float) CompositeExtract 111 0
113: 6(float) ImageSampleDrefImplicitLod 110 111 112
Store 102(r52) 113
118: 115 Load 117(g_tTexcdu4)
119: 13 Load 15(g_sSamp)
122: 121 SampledImage 118 119
123: 6(float) CompositeExtract 98 0
124: 6(float) CompositeExtract 123 0
125: 6(float) ImageSampleDrefImplicitLod 122 123 124
Store 114(r54) 125
132: 7(ptr) AccessChain 129(psout) 130
Store 132 131
133:127(PS_OUTPUT) Load 129(psout)
ReturnValue 133
FunctionEnd

View File

@ -0,0 +1,482 @@
hlsl.samplecmp.offset.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r01' (temp float)
0:42 textureOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r03' (temp float)
0:43 textureOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r05' (temp float)
0:44 textureOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r21' (temp float)
0:47 textureOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r23' (temp float)
0:48 textureOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r25' (temp float)
0:49 textureOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:63 move second child to first child (temp float)
0:63 Depth: direct index for structure (temp float FragDepth)
0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:63 Constant:
0:63 1 (const int)
0:63 Constant:
0:63 1.000000
0:65 Branch: Return with expression
0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r01' (temp float)
0:42 textureOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r03' (temp float)
0:43 textureOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r05' (temp float)
0:44 textureOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r21' (temp float)
0:47 textureOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r23' (temp float)
0:48 textureOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r25' (temp float)
0:49 textureOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:63 move second child to first child (temp float)
0:63 Depth: direct index for structure (temp float FragDepth)
0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:63 Constant:
0:63 1 (const int)
0:63 Constant:
0:63 1.000000
0:65 Branch: Return with expression
0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 145
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r01"
Name 11 "g_tTex1df4"
Name 15 "g_sSamp"
Name 26 "r03"
Name 29 "g_tTex1di4"
Name 37 "r05"
Name 41 "g_tTex1du4"
Name 49 "r21"
Name 52 "g_tTex2df4"
Name 67 "r23"
Name 70 "g_tTex2di4"
Name 79 "r25"
Name 82 "g_tTex2du4"
Name 92 "PS_OUTPUT"
MemberName 92(PS_OUTPUT) 0 "Color"
MemberName 92(PS_OUTPUT) 1 "Depth"
Name 94 "psout"
Name 102 "g_tTex3df4"
Name 105 "g_tTex3di4"
Name 108 "g_tTex3du4"
Name 111 "g_tTexcdf4"
Name 114 "g_tTexcdi4"
Name 117 "g_tTexcdu4"
Name 120 "g_tTex1df4a"
Name 123 "g_tTex1di4a"
Name 126 "g_tTex1du4a"
Name 129 "g_tTex2df4a"
Name 132 "g_tTex2di4a"
Name 135 "g_tTex2du4a"
Name 138 "g_tTexcdf4a"
Name 141 "g_tTexcdi4a"
Name 144 "g_tTexcdu4a"
Decorate 11(g_tTex1df4) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 29(g_tTex1di4) DescriptorSet 0
Decorate 41(g_tTex1du4) DescriptorSet 0
Decorate 52(g_tTex2df4) DescriptorSet 0
Decorate 70(g_tTex2di4) DescriptorSet 0
Decorate 82(g_tTex2du4) DescriptorSet 0
MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 102(g_tTex3df4) DescriptorSet 0
Decorate 105(g_tTex3di4) DescriptorSet 0
Decorate 108(g_tTex3du4) DescriptorSet 0
Decorate 111(g_tTexcdf4) DescriptorSet 0
Decorate 114(g_tTexcdi4) DescriptorSet 0
Decorate 117(g_tTexcdu4) DescriptorSet 0
Decorate 120(g_tTex1df4a) DescriptorSet 0
Decorate 123(g_tTex1di4a) DescriptorSet 0
Decorate 126(g_tTex1du4a) DescriptorSet 0
Decorate 129(g_tTex2df4a) DescriptorSet 0
Decorate 132(g_tTex2di4a) DescriptorSet 0
Decorate 135(g_tTex2du4a) DescriptorSet 0
Decorate 138(g_tTexcdf4a) DescriptorSet 0
Decorate 141(g_tTexcdi4a) DescriptorSet 0
Decorate 144(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth sampled format:Unknown
18: TypeSampledImage 17
20: 6(float) Constant 1036831949
21: 6(float) Constant 1061158912
22: TypeInt 32 1
23: 22(int) Constant 2
27: TypeImage 22(int) 1D sampled format:Unknown
28: TypePointer UniformConstant 27
29(g_tTex1di4): 28(ptr) Variable UniformConstant
32: TypeImage 22(int) 1D depth sampled format:Unknown
33: TypeSampledImage 32
38: TypeInt 32 0
39: TypeImage 38(int) 1D sampled format:Unknown
40: TypePointer UniformConstant 39
41(g_tTex1du4): 40(ptr) Variable UniformConstant
44: TypeImage 38(int) 1D depth sampled format:Unknown
45: TypeSampledImage 44
50: TypeImage 6(float) 2D sampled format:Unknown
51: TypePointer UniformConstant 50
52(g_tTex2df4): 51(ptr) Variable UniformConstant
55: TypeImage 6(float) 2D depth sampled format:Unknown
56: TypeSampledImage 55
58: TypeVector 6(float) 2
59: 6(float) Constant 1045220557
60: 58(fvec2) ConstantComposite 20 59
62: TypeVector 22(int) 2
63: 22(int) Constant 3
64: 62(ivec2) ConstantComposite 23 63
68: TypeImage 22(int) 2D sampled format:Unknown
69: TypePointer UniformConstant 68
70(g_tTex2di4): 69(ptr) Variable UniformConstant
73: TypeImage 22(int) 2D depth sampled format:Unknown
74: TypeSampledImage 73
80: TypeImage 38(int) 2D sampled format:Unknown
81: TypePointer UniformConstant 80
82(g_tTex2du4): 81(ptr) Variable UniformConstant
85: TypeImage 38(int) 2D depth sampled format:Unknown
86: TypeSampledImage 85
91: TypeVector 6(float) 4
92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float)
93: TypePointer Function 92(PS_OUTPUT)
95: 22(int) Constant 1
96: 6(float) Constant 1065353216
100: TypeImage 6(float) 3D sampled format:Unknown
101: TypePointer UniformConstant 100
102(g_tTex3df4): 101(ptr) Variable UniformConstant
103: TypeImage 22(int) 3D sampled format:Unknown
104: TypePointer UniformConstant 103
105(g_tTex3di4): 104(ptr) Variable UniformConstant
106: TypeImage 38(int) 3D sampled format:Unknown
107: TypePointer UniformConstant 106
108(g_tTex3du4): 107(ptr) Variable UniformConstant
109: TypeImage 6(float) Cube sampled format:Unknown
110: TypePointer UniformConstant 109
111(g_tTexcdf4): 110(ptr) Variable UniformConstant
112: TypeImage 22(int) Cube sampled format:Unknown
113: TypePointer UniformConstant 112
114(g_tTexcdi4): 113(ptr) Variable UniformConstant
115: TypeImage 38(int) Cube sampled format:Unknown
116: TypePointer UniformConstant 115
117(g_tTexcdu4): 116(ptr) Variable UniformConstant
118: TypeImage 6(float) 1D array sampled format:Unknown
119: TypePointer UniformConstant 118
120(g_tTex1df4a): 119(ptr) Variable UniformConstant
121: TypeImage 22(int) 1D array sampled format:Unknown
122: TypePointer UniformConstant 121
123(g_tTex1di4a): 122(ptr) Variable UniformConstant
124: TypeImage 38(int) 1D array sampled format:Unknown
125: TypePointer UniformConstant 124
126(g_tTex1du4a): 125(ptr) Variable UniformConstant
127: TypeImage 6(float) 2D array sampled format:Unknown
128: TypePointer UniformConstant 127
129(g_tTex2df4a): 128(ptr) Variable UniformConstant
130: TypeImage 22(int) 2D array sampled format:Unknown
131: TypePointer UniformConstant 130
132(g_tTex2di4a): 131(ptr) Variable UniformConstant
133: TypeImage 38(int) 2D array sampled format:Unknown
134: TypePointer UniformConstant 133
135(g_tTex2du4a): 134(ptr) Variable UniformConstant
136: TypeImage 6(float) Cube array sampled format:Unknown
137: TypePointer UniformConstant 136
138(g_tTexcdf4a): 137(ptr) Variable UniformConstant
139: TypeImage 22(int) Cube array sampled format:Unknown
140: TypePointer UniformConstant 139
141(g_tTexcdi4a): 140(ptr) Variable UniformConstant
142: TypeImage 38(int) Cube array sampled format:Unknown
143: TypePointer UniformConstant 142
144(g_tTexcdu4a): 143(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r01): 7(ptr) Variable Function
26(r03): 7(ptr) Variable Function
37(r05): 7(ptr) Variable Function
49(r21): 7(ptr) Variable Function
67(r23): 7(ptr) Variable Function
79(r25): 7(ptr) Variable Function
94(psout): 93(ptr) Variable Function
12: 9 Load 11(g_tTex1df4)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
24: 6(float) CompositeExtract 20 0
25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23
Store 8(r01) 25
30: 27 Load 29(g_tTex1di4)
31: 13 Load 15(g_sSamp)
34: 33 SampledImage 30 31
35: 6(float) CompositeExtract 20 0
36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23
Store 26(r03) 36
42: 39 Load 41(g_tTex1du4)
43: 13 Load 15(g_sSamp)
46: 45 SampledImage 42 43
47: 6(float) CompositeExtract 20 0
48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23
Store 37(r05) 48
53: 50 Load 52(g_tTex2df4)
54: 13 Load 15(g_sSamp)
57: 56 SampledImage 53 54
61: 6(float) CompositeExtract 60 0
65: 6(float) CompositeExtract 61 0
66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64
Store 49(r21) 66
71: 68 Load 70(g_tTex2di4)
72: 13 Load 15(g_sSamp)
75: 74 SampledImage 71 72
76: 6(float) CompositeExtract 60 0
77: 6(float) CompositeExtract 76 0
78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64
Store 67(r23) 78
83: 80 Load 82(g_tTex2du4)
84: 13 Load 15(g_sSamp)
87: 86 SampledImage 83 84
88: 6(float) CompositeExtract 60 0
89: 6(float) CompositeExtract 88 0
90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64
Store 79(r25) 90
97: 7(ptr) AccessChain 94(psout) 95
Store 97 96
98:92(PS_OUTPUT) Load 94(psout)
ReturnValue 98
FunctionEnd

View File

@ -0,0 +1,500 @@
hlsl.samplecmp.offsetarray.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r11' (temp float)
0:42 textureOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r13' (temp float)
0:43 textureOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r15' (temp float)
0:44 textureOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r31' (temp float)
0:47 textureOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r33' (temp float)
0:48 textureOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r35' (temp float)
0:49 textureOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:64 move second child to first child (temp float)
0:64 Depth: direct index for structure (temp float FragDepth)
0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:64 Constant:
0:64 1 (const int)
0:64 Constant:
0:64 1.000000
0:66 Branch: Return with expression
0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r11' (temp float)
0:42 textureOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r13' (temp float)
0:43 textureOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r15' (temp float)
0:44 textureOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r31' (temp float)
0:47 textureOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r33' (temp float)
0:48 textureOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r35' (temp float)
0:49 textureOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:64 move second child to first child (temp float)
0:64 Depth: direct index for structure (temp float FragDepth)
0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:64 Constant:
0:64 1 (const int)
0:64 Constant:
0:64 1.000000
0:66 Branch: Return with expression
0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 151
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r11"
Name 11 "g_tTex1df4a"
Name 15 "g_sSamp"
Name 30 "r13"
Name 33 "g_tTex1di4a"
Name 42 "r15"
Name 46 "g_tTex1du4a"
Name 55 "r31"
Name 58 "g_tTex2df4a"
Name 73 "r33"
Name 76 "g_tTex2di4a"
Name 85 "r35"
Name 88 "g_tTex2du4a"
Name 98 "PS_OUTPUT"
MemberName 98(PS_OUTPUT) 0 "Color"
MemberName 98(PS_OUTPUT) 1 "Depth"
Name 100 "psout"
Name 108 "g_tTex1df4"
Name 111 "g_tTex1di4"
Name 114 "g_tTex1du4"
Name 117 "g_tTex2df4"
Name 120 "g_tTex2di4"
Name 123 "g_tTex2du4"
Name 126 "g_tTex3df4"
Name 129 "g_tTex3di4"
Name 132 "g_tTex3du4"
Name 135 "g_tTexcdf4"
Name 138 "g_tTexcdi4"
Name 141 "g_tTexcdu4"
Name 144 "g_tTexcdf4a"
Name 147 "g_tTexcdi4a"
Name 150 "g_tTexcdu4a"
Decorate 11(g_tTex1df4a) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 33(g_tTex1di4a) DescriptorSet 0
Decorate 46(g_tTex1du4a) DescriptorSet 0
Decorate 58(g_tTex2df4a) DescriptorSet 0
Decorate 76(g_tTex2di4a) DescriptorSet 0
Decorate 88(g_tTex2du4a) DescriptorSet 0
MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 108(g_tTex1df4) DescriptorSet 0
Decorate 111(g_tTex1di4) DescriptorSet 0
Decorate 114(g_tTex1du4) DescriptorSet 0
Decorate 117(g_tTex2df4) DescriptorSet 0
Decorate 120(g_tTex2di4) DescriptorSet 0
Decorate 123(g_tTex2du4) DescriptorSet 0
Decorate 126(g_tTex3df4) DescriptorSet 0
Decorate 129(g_tTex3di4) DescriptorSet 0
Decorate 132(g_tTex3du4) DescriptorSet 0
Decorate 135(g_tTexcdf4) DescriptorSet 0
Decorate 138(g_tTexcdi4) DescriptorSet 0
Decorate 141(g_tTexcdu4) DescriptorSet 0
Decorate 144(g_tTexcdf4a) DescriptorSet 0
Decorate 147(g_tTexcdi4a) DescriptorSet 0
Decorate 150(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D array sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4a): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth array sampled format:Unknown
18: TypeSampledImage 17
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: 6(float) Constant 1061158912
26: TypeInt 32 1
27: 26(int) Constant 2
31: TypeImage 26(int) 1D array sampled format:Unknown
32: TypePointer UniformConstant 31
33(g_tTex1di4a): 32(ptr) Variable UniformConstant
36: TypeImage 26(int) 1D depth array sampled format:Unknown
37: TypeSampledImage 36
43: TypeInt 32 0
44: TypeImage 43(int) 1D array sampled format:Unknown
45: TypePointer UniformConstant 44
46(g_tTex1du4a): 45(ptr) Variable UniformConstant
49: TypeImage 43(int) 1D depth array sampled format:Unknown
50: TypeSampledImage 49
56: TypeImage 6(float) 2D array sampled format:Unknown
57: TypePointer UniformConstant 56
58(g_tTex2df4a): 57(ptr) Variable UniformConstant
61: TypeImage 6(float) 2D depth array sampled format:Unknown
62: TypeSampledImage 61
64: TypeVector 6(float) 3
65: 6(float) Constant 1050253722
66: 64(fvec3) ConstantComposite 21 22 65
68: TypeVector 26(int) 2
69: 26(int) Constant 3
70: 68(ivec2) ConstantComposite 27 69
74: TypeImage 26(int) 2D array sampled format:Unknown
75: TypePointer UniformConstant 74
76(g_tTex2di4a): 75(ptr) Variable UniformConstant
79: TypeImage 26(int) 2D depth array sampled format:Unknown
80: TypeSampledImage 79
86: TypeImage 43(int) 2D array sampled format:Unknown
87: TypePointer UniformConstant 86
88(g_tTex2du4a): 87(ptr) Variable UniformConstant
91: TypeImage 43(int) 2D depth array sampled format:Unknown
92: TypeSampledImage 91
97: TypeVector 6(float) 4
98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float)
99: TypePointer Function 98(PS_OUTPUT)
101: 26(int) Constant 1
102: 6(float) Constant 1065353216
106: TypeImage 6(float) 1D sampled format:Unknown
107: TypePointer UniformConstant 106
108(g_tTex1df4): 107(ptr) Variable UniformConstant
109: TypeImage 26(int) 1D sampled format:Unknown
110: TypePointer UniformConstant 109
111(g_tTex1di4): 110(ptr) Variable UniformConstant
112: TypeImage 43(int) 1D sampled format:Unknown
113: TypePointer UniformConstant 112
114(g_tTex1du4): 113(ptr) Variable UniformConstant
115: TypeImage 6(float) 2D sampled format:Unknown
116: TypePointer UniformConstant 115
117(g_tTex2df4): 116(ptr) Variable UniformConstant
118: TypeImage 26(int) 2D sampled format:Unknown
119: TypePointer UniformConstant 118
120(g_tTex2di4): 119(ptr) Variable UniformConstant
121: TypeImage 43(int) 2D sampled format:Unknown
122: TypePointer UniformConstant 121
123(g_tTex2du4): 122(ptr) Variable UniformConstant
124: TypeImage 6(float) 3D sampled format:Unknown
125: TypePointer UniformConstant 124
126(g_tTex3df4): 125(ptr) Variable UniformConstant
127: TypeImage 26(int) 3D sampled format:Unknown
128: TypePointer UniformConstant 127
129(g_tTex3di4): 128(ptr) Variable UniformConstant
130: TypeImage 43(int) 3D sampled format:Unknown
131: TypePointer UniformConstant 130
132(g_tTex3du4): 131(ptr) Variable UniformConstant
133: TypeImage 6(float) Cube sampled format:Unknown
134: TypePointer UniformConstant 133
135(g_tTexcdf4): 134(ptr) Variable UniformConstant
136: TypeImage 26(int) Cube sampled format:Unknown
137: TypePointer UniformConstant 136
138(g_tTexcdi4): 137(ptr) Variable UniformConstant
139: TypeImage 43(int) Cube sampled format:Unknown
140: TypePointer UniformConstant 139
141(g_tTexcdu4): 140(ptr) Variable UniformConstant
142: TypeImage 6(float) Cube array sampled format:Unknown
143: TypePointer UniformConstant 142
144(g_tTexcdf4a): 143(ptr) Variable UniformConstant
145: TypeImage 26(int) Cube array sampled format:Unknown
146: TypePointer UniformConstant 145
147(g_tTexcdi4a): 146(ptr) Variable UniformConstant
148: TypeImage 43(int) Cube array sampled format:Unknown
149: TypePointer UniformConstant 148
150(g_tTexcdu4a): 149(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r11): 7(ptr) Variable Function
30(r13): 7(ptr) Variable Function
42(r15): 7(ptr) Variable Function
55(r31): 7(ptr) Variable Function
73(r33): 7(ptr) Variable Function
85(r35): 7(ptr) Variable Function
100(psout): 99(ptr) Variable Function
12: 9 Load 11(g_tTex1df4a)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
25: 6(float) CompositeExtract 23 0
28: 6(float) CompositeExtract 25 0
29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27
Store 8(r11) 29
34: 31 Load 33(g_tTex1di4a)
35: 13 Load 15(g_sSamp)
38: 37 SampledImage 34 35
39: 6(float) CompositeExtract 23 0
40: 6(float) CompositeExtract 39 0
41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27
Store 30(r13) 41
47: 44 Load 46(g_tTex1du4a)
48: 13 Load 15(g_sSamp)
51: 50 SampledImage 47 48
52: 6(float) CompositeExtract 23 0
53: 6(float) CompositeExtract 52 0
54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27
Store 42(r15) 54
59: 56 Load 58(g_tTex2df4a)
60: 13 Load 15(g_sSamp)
63: 62 SampledImage 59 60
67: 6(float) CompositeExtract 66 0
71: 6(float) CompositeExtract 67 0
72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70
Store 55(r31) 72
77: 74 Load 76(g_tTex2di4a)
78: 13 Load 15(g_sSamp)
81: 80 SampledImage 77 78
82: 6(float) CompositeExtract 66 0
83: 6(float) CompositeExtract 82 0
84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70
Store 73(r33) 84
89: 86 Load 88(g_tTex2du4a)
90: 13 Load 15(g_sSamp)
93: 92 SampledImage 89 90
94: 6(float) CompositeExtract 66 0
95: 6(float) CompositeExtract 94 0
96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70
Store 85(r35) 96
103: 7(ptr) AccessChain 100(psout) 101
Store 103 102
104:98(PS_OUTPUT) Load 100(psout)
ReturnValue 104
FunctionEnd

View File

@ -0,0 +1,625 @@
hlsl.samplecmplevelzero.array.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r10' (temp float)
0:42 textureLod (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r12' (temp float)
0:43 textureLod (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r14' (temp float)
0:44 textureLod (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r30' (temp float)
0:47 textureLod (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r32' (temp float)
0:48 textureLod (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r34' (temp float)
0:49 textureLod (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:52 Sequence
0:52 move second child to first child (temp float)
0:52 'r60' (temp float)
0:52 textureLod (global float)
0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
0:52 'g_tTexcdf4a' (uniform textureCubeArray)
0:52 'g_sSamp' (uniform sampler)
0:52 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:52 Constant:
0:52 0.750000
0:52 Constant:
0:52 0.000000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r62' (temp float)
0:53 textureLod (global float)
0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:53 Constant:
0:53 0.750000
0:53 Constant:
0:53 0.000000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r64' (temp float)
0:54 textureLod (global float)
0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:54 Constant:
0:54 0.750000
0:54 Constant:
0:54 0.000000
0:57 move second child to first child (temp float)
0:57 Depth: direct index for structure (temp float FragDepth)
0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:57 Constant:
0:57 1 (const int)
0:57 Constant:
0:57 1.000000
0:59 Branch: Return with expression
0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r10' (temp float)
0:42 textureLod (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r12' (temp float)
0:43 textureLod (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r14' (temp float)
0:44 textureLod (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r30' (temp float)
0:47 textureLod (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r32' (temp float)
0:48 textureLod (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r34' (temp float)
0:49 textureLod (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:52 Sequence
0:52 move second child to first child (temp float)
0:52 'r60' (temp float)
0:52 textureLod (global float)
0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
0:52 'g_tTexcdf4a' (uniform textureCubeArray)
0:52 'g_sSamp' (uniform sampler)
0:52 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:52 Constant:
0:52 0.750000
0:52 Constant:
0:52 0.000000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r62' (temp float)
0:53 textureLod (global float)
0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:53 Constant:
0:53 0.750000
0:53 Constant:
0:53 0.000000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r64' (temp float)
0:54 textureLod (global float)
0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:54 Constant:
0:54 0.750000
0:54 Constant:
0:54 0.000000
0:57 move second child to first child (temp float)
0:57 Depth: direct index for structure (temp float FragDepth)
0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:57 Constant:
0:57 1 (const int)
0:57 Constant:
0:57 1.000000
0:59 Branch: Return with expression
0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 174
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r10"
Name 11 "g_tTex1df4a"
Name 15 "g_sSamp"
Name 29 "r12"
Name 33 "g_tTex1di4a"
Name 42 "r14"
Name 46 "g_tTex1du4a"
Name 55 "r30"
Name 58 "g_tTex2df4a"
Name 70 "r32"
Name 73 "g_tTex2di4a"
Name 82 "r34"
Name 85 "g_tTex2du4a"
Name 94 "r60"
Name 97 "g_tTexcdf4a"
Name 108 "r62"
Name 111 "g_tTexcdi4a"
Name 119 "r64"
Name 122 "g_tTexcdu4a"
Name 130 "PS_OUTPUT"
MemberName 130(PS_OUTPUT) 0 "Color"
MemberName 130(PS_OUTPUT) 1 "Depth"
Name 132 "psout"
Name 140 "g_tTex1df4"
Name 143 "g_tTex1di4"
Name 146 "g_tTex1du4"
Name 149 "g_tTex2df4"
Name 152 "g_tTex2di4"
Name 155 "g_tTex2du4"
Name 158 "g_tTex3df4"
Name 161 "g_tTex3di4"
Name 164 "g_tTex3du4"
Name 167 "g_tTexcdf4"
Name 170 "g_tTexcdi4"
Name 173 "g_tTexcdu4"
Decorate 11(g_tTex1df4a) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 33(g_tTex1di4a) DescriptorSet 0
Decorate 46(g_tTex1du4a) DescriptorSet 0
Decorate 58(g_tTex2df4a) DescriptorSet 0
Decorate 73(g_tTex2di4a) DescriptorSet 0
Decorate 85(g_tTex2du4a) DescriptorSet 0
Decorate 97(g_tTexcdf4a) DescriptorSet 0
Decorate 111(g_tTexcdi4a) DescriptorSet 0
Decorate 122(g_tTexcdu4a) DescriptorSet 0
MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 140(g_tTex1df4) DescriptorSet 0
Decorate 143(g_tTex1di4) DescriptorSet 0
Decorate 146(g_tTex1du4) DescriptorSet 0
Decorate 149(g_tTex2df4) DescriptorSet 0
Decorate 152(g_tTex2di4) DescriptorSet 0
Decorate 155(g_tTex2du4) DescriptorSet 0
Decorate 158(g_tTex3df4) DescriptorSet 0
Decorate 161(g_tTex3di4) DescriptorSet 0
Decorate 164(g_tTex3du4) DescriptorSet 0
Decorate 167(g_tTexcdf4) DescriptorSet 0
Decorate 170(g_tTexcdi4) DescriptorSet 0
Decorate 173(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D array sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4a): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth array sampled format:Unknown
18: TypeSampledImage 17
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: 6(float) Constant 1061158912
26: 6(float) Constant 0
30: TypeInt 32 1
31: TypeImage 30(int) 1D array sampled format:Unknown
32: TypePointer UniformConstant 31
33(g_tTex1di4a): 32(ptr) Variable UniformConstant
36: TypeImage 30(int) 1D depth array sampled format:Unknown
37: TypeSampledImage 36
43: TypeInt 32 0
44: TypeImage 43(int) 1D array sampled format:Unknown
45: TypePointer UniformConstant 44
46(g_tTex1du4a): 45(ptr) Variable UniformConstant
49: TypeImage 43(int) 1D depth array sampled format:Unknown
50: TypeSampledImage 49
56: TypeImage 6(float) 2D array sampled format:Unknown
57: TypePointer UniformConstant 56
58(g_tTex2df4a): 57(ptr) Variable UniformConstant
61: TypeImage 6(float) 2D depth array sampled format:Unknown
62: TypeSampledImage 61
64: TypeVector 6(float) 3
65: 6(float) Constant 1050253722
66: 64(fvec3) ConstantComposite 21 22 65
71: TypeImage 30(int) 2D array sampled format:Unknown
72: TypePointer UniformConstant 71
73(g_tTex2di4a): 72(ptr) Variable UniformConstant
76: TypeImage 30(int) 2D depth array sampled format:Unknown
77: TypeSampledImage 76
83: TypeImage 43(int) 2D array sampled format:Unknown
84: TypePointer UniformConstant 83
85(g_tTex2du4a): 84(ptr) Variable UniformConstant
88: TypeImage 43(int) 2D depth array sampled format:Unknown
89: TypeSampledImage 88
95: TypeImage 6(float) Cube array sampled format:Unknown
96: TypePointer UniformConstant 95
97(g_tTexcdf4a): 96(ptr) Variable UniformConstant
100: TypeImage 6(float) Cube depth array sampled format:Unknown
101: TypeSampledImage 100
103: TypeVector 6(float) 4
104: 6(float) Constant 1053609165
105: 103(fvec4) ConstantComposite 21 22 65 104
109: TypeImage 30(int) Cube array sampled format:Unknown
110: TypePointer UniformConstant 109
111(g_tTexcdi4a): 110(ptr) Variable UniformConstant
114: TypeImage 30(int) Cube depth array sampled format:Unknown
115: TypeSampledImage 114
120: TypeImage 43(int) Cube array sampled format:Unknown
121: TypePointer UniformConstant 120
122(g_tTexcdu4a): 121(ptr) Variable UniformConstant
125: TypeImage 43(int) Cube depth array sampled format:Unknown
126: TypeSampledImage 125
130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float)
131: TypePointer Function 130(PS_OUTPUT)
133: 30(int) Constant 1
134: 6(float) Constant 1065353216
138: TypeImage 6(float) 1D sampled format:Unknown
139: TypePointer UniformConstant 138
140(g_tTex1df4): 139(ptr) Variable UniformConstant
141: TypeImage 30(int) 1D sampled format:Unknown
142: TypePointer UniformConstant 141
143(g_tTex1di4): 142(ptr) Variable UniformConstant
144: TypeImage 43(int) 1D sampled format:Unknown
145: TypePointer UniformConstant 144
146(g_tTex1du4): 145(ptr) Variable UniformConstant
147: TypeImage 6(float) 2D sampled format:Unknown
148: TypePointer UniformConstant 147
149(g_tTex2df4): 148(ptr) Variable UniformConstant
150: TypeImage 30(int) 2D sampled format:Unknown
151: TypePointer UniformConstant 150
152(g_tTex2di4): 151(ptr) Variable UniformConstant
153: TypeImage 43(int) 2D sampled format:Unknown
154: TypePointer UniformConstant 153
155(g_tTex2du4): 154(ptr) Variable UniformConstant
156: TypeImage 6(float) 3D sampled format:Unknown
157: TypePointer UniformConstant 156
158(g_tTex3df4): 157(ptr) Variable UniformConstant
159: TypeImage 30(int) 3D sampled format:Unknown
160: TypePointer UniformConstant 159
161(g_tTex3di4): 160(ptr) Variable UniformConstant
162: TypeImage 43(int) 3D sampled format:Unknown
163: TypePointer UniformConstant 162
164(g_tTex3du4): 163(ptr) Variable UniformConstant
165: TypeImage 6(float) Cube sampled format:Unknown
166: TypePointer UniformConstant 165
167(g_tTexcdf4): 166(ptr) Variable UniformConstant
168: TypeImage 30(int) Cube sampled format:Unknown
169: TypePointer UniformConstant 168
170(g_tTexcdi4): 169(ptr) Variable UniformConstant
171: TypeImage 43(int) Cube sampled format:Unknown
172: TypePointer UniformConstant 171
173(g_tTexcdu4): 172(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r10): 7(ptr) Variable Function
29(r12): 7(ptr) Variable Function
42(r14): 7(ptr) Variable Function
55(r30): 7(ptr) Variable Function
70(r32): 7(ptr) Variable Function
82(r34): 7(ptr) Variable Function
94(r60): 7(ptr) Variable Function
108(r62): 7(ptr) Variable Function
119(r64): 7(ptr) Variable Function
132(psout): 131(ptr) Variable Function
12: 9 Load 11(g_tTex1df4a)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
25: 6(float) CompositeExtract 23 0
27: 6(float) CompositeExtract 25 0
28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26
Store 8(r10) 28
34: 31 Load 33(g_tTex1di4a)
35: 13 Load 15(g_sSamp)
38: 37 SampledImage 34 35
39: 6(float) CompositeExtract 23 0
40: 6(float) CompositeExtract 39 0
41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26
Store 29(r12) 41
47: 44 Load 46(g_tTex1du4a)
48: 13 Load 15(g_sSamp)
51: 50 SampledImage 47 48
52: 6(float) CompositeExtract 23 0
53: 6(float) CompositeExtract 52 0
54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26
Store 42(r14) 54
59: 56 Load 58(g_tTex2df4a)
60: 13 Load 15(g_sSamp)
63: 62 SampledImage 59 60
67: 6(float) CompositeExtract 66 0
68: 6(float) CompositeExtract 67 0
69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26
Store 55(r30) 69
74: 71 Load 73(g_tTex2di4a)
75: 13 Load 15(g_sSamp)
78: 77 SampledImage 74 75
79: 6(float) CompositeExtract 66 0
80: 6(float) CompositeExtract 79 0
81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26
Store 70(r32) 81
86: 83 Load 85(g_tTex2du4a)
87: 13 Load 15(g_sSamp)
90: 89 SampledImage 86 87
91: 6(float) CompositeExtract 66 0
92: 6(float) CompositeExtract 91 0
93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26
Store 82(r34) 93
98: 95 Load 97(g_tTexcdf4a)
99: 13 Load 15(g_sSamp)
102: 101 SampledImage 98 99
106: 6(float) CompositeExtract 105 0
107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24
Store 94(r60) 107
112: 109 Load 111(g_tTexcdi4a)
113: 13 Load 15(g_sSamp)
116: 115 SampledImage 112 113
117: 6(float) CompositeExtract 105 0
118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24
Store 108(r62) 118
123: 120 Load 122(g_tTexcdu4a)
124: 13 Load 15(g_sSamp)
127: 126 SampledImage 123 124
128: 6(float) CompositeExtract 105 0
129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24
Store 119(r64) 129
135: 7(ptr) AccessChain 132(psout) 133
Store 135 134
136:130(PS_OUTPUT) Load 132(psout)
ReturnValue 136
FunctionEnd

View File

@ -0,0 +1,605 @@
hlsl.samplecmplevelzero.basic.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r00' (temp float)
0:42 textureLod (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r02' (temp float)
0:43 textureLod (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r04' (temp float)
0:44 textureLod (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r20' (temp float)
0:47 textureLod (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r22' (temp float)
0:48 textureLod (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r24' (temp float)
0:49 textureLod (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r50' (temp float)
0:53 textureLod (global float)
0:53 Construct combined texture-sampler (temp samplerCubeShadow)
0:53 'g_tTexcdf4' (uniform textureCube)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:53 Constant:
0:53 0.750000
0:53 Constant:
0:53 0.000000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r52' (temp float)
0:54 textureLod (global float)
0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
0:54 'g_tTexcdi4' (uniform itextureCube)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:54 Constant:
0:54 0.750000
0:54 Constant:
0:54 0.000000
0:55 Sequence
0:55 move second child to first child (temp float)
0:55 'r54' (temp float)
0:55 textureLod (global float)
0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
0:55 'g_tTexcdu4' (uniform utextureCube)
0:55 'g_sSamp' (uniform sampler)
0:55 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:55 Constant:
0:55 0.750000
0:55 Constant:
0:55 0.000000
0:58 move second child to first child (temp float)
0:58 Depth: direct index for structure (temp float FragDepth)
0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:58 Constant:
0:58 1 (const int)
0:58 Constant:
0:58 1.000000
0:60 Branch: Return with expression
0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r00' (temp float)
0:42 textureLod (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r02' (temp float)
0:43 textureLod (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r04' (temp float)
0:44 textureLod (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r20' (temp float)
0:47 textureLod (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r22' (temp float)
0:48 textureLod (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r24' (temp float)
0:49 textureLod (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r50' (temp float)
0:53 textureLod (global float)
0:53 Construct combined texture-sampler (temp samplerCubeShadow)
0:53 'g_tTexcdf4' (uniform textureCube)
0:53 'g_sSamp' (uniform sampler)
0:53 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:53 Constant:
0:53 0.750000
0:53 Constant:
0:53 0.000000
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r52' (temp float)
0:54 textureLod (global float)
0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
0:54 'g_tTexcdi4' (uniform itextureCube)
0:54 'g_sSamp' (uniform sampler)
0:54 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:54 Constant:
0:54 0.750000
0:54 Constant:
0:54 0.000000
0:55 Sequence
0:55 move second child to first child (temp float)
0:55 'r54' (temp float)
0:55 textureLod (global float)
0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
0:55 'g_tTexcdu4' (uniform utextureCube)
0:55 'g_sSamp' (uniform sampler)
0:55 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:55 Constant:
0:55 0.750000
0:55 Constant:
0:55 0.000000
0:58 move second child to first child (temp float)
0:58 Depth: direct index for structure (temp float FragDepth)
0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:58 Constant:
0:58 1 (const int)
0:58 Constant:
0:58 1.000000
0:60 Branch: Return with expression
0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 172
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r00"
Name 11 "g_tTex1df4"
Name 15 "g_sSamp"
Name 25 "r02"
Name 29 "g_tTex1di4"
Name 37 "r04"
Name 41 "g_tTex1du4"
Name 49 "r20"
Name 52 "g_tTex2df4"
Name 64 "r22"
Name 67 "g_tTex2di4"
Name 76 "r24"
Name 79 "g_tTex2du4"
Name 88 "r50"
Name 91 "g_tTexcdf4"
Name 103 "r52"
Name 106 "g_tTexcdi4"
Name 115 "r54"
Name 118 "g_tTexcdu4"
Name 128 "PS_OUTPUT"
MemberName 128(PS_OUTPUT) 0 "Color"
MemberName 128(PS_OUTPUT) 1 "Depth"
Name 130 "psout"
Name 138 "g_tTex3df4"
Name 141 "g_tTex3di4"
Name 144 "g_tTex3du4"
Name 147 "g_tTex1df4a"
Name 150 "g_tTex1di4a"
Name 153 "g_tTex1du4a"
Name 156 "g_tTex2df4a"
Name 159 "g_tTex2di4a"
Name 162 "g_tTex2du4a"
Name 165 "g_tTexcdf4a"
Name 168 "g_tTexcdi4a"
Name 171 "g_tTexcdu4a"
Decorate 11(g_tTex1df4) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 29(g_tTex1di4) DescriptorSet 0
Decorate 41(g_tTex1du4) DescriptorSet 0
Decorate 52(g_tTex2df4) DescriptorSet 0
Decorate 67(g_tTex2di4) DescriptorSet 0
Decorate 79(g_tTex2du4) DescriptorSet 0
Decorate 91(g_tTexcdf4) DescriptorSet 0
Decorate 106(g_tTexcdi4) DescriptorSet 0
Decorate 118(g_tTexcdu4) DescriptorSet 0
MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 138(g_tTex3df4) DescriptorSet 0
Decorate 141(g_tTex3di4) DescriptorSet 0
Decorate 144(g_tTex3du4) DescriptorSet 0
Decorate 147(g_tTex1df4a) DescriptorSet 0
Decorate 150(g_tTex1di4a) DescriptorSet 0
Decorate 153(g_tTex1du4a) DescriptorSet 0
Decorate 156(g_tTex2df4a) DescriptorSet 0
Decorate 159(g_tTex2di4a) DescriptorSet 0
Decorate 162(g_tTex2du4a) DescriptorSet 0
Decorate 165(g_tTexcdf4a) DescriptorSet 0
Decorate 168(g_tTexcdi4a) DescriptorSet 0
Decorate 171(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth sampled format:Unknown
18: TypeSampledImage 17
20: 6(float) Constant 1036831949
21: 6(float) Constant 1061158912
22: 6(float) Constant 0
26: TypeInt 32 1
27: TypeImage 26(int) 1D sampled format:Unknown
28: TypePointer UniformConstant 27
29(g_tTex1di4): 28(ptr) Variable UniformConstant
32: TypeImage 26(int) 1D depth sampled format:Unknown
33: TypeSampledImage 32
38: TypeInt 32 0
39: TypeImage 38(int) 1D sampled format:Unknown
40: TypePointer UniformConstant 39
41(g_tTex1du4): 40(ptr) Variable UniformConstant
44: TypeImage 38(int) 1D depth sampled format:Unknown
45: TypeSampledImage 44
50: TypeImage 6(float) 2D sampled format:Unknown
51: TypePointer UniformConstant 50
52(g_tTex2df4): 51(ptr) Variable UniformConstant
55: TypeImage 6(float) 2D depth sampled format:Unknown
56: TypeSampledImage 55
58: TypeVector 6(float) 2
59: 6(float) Constant 1045220557
60: 58(fvec2) ConstantComposite 20 59
65: TypeImage 26(int) 2D sampled format:Unknown
66: TypePointer UniformConstant 65
67(g_tTex2di4): 66(ptr) Variable UniformConstant
70: TypeImage 26(int) 2D depth sampled format:Unknown
71: TypeSampledImage 70
77: TypeImage 38(int) 2D sampled format:Unknown
78: TypePointer UniformConstant 77
79(g_tTex2du4): 78(ptr) Variable UniformConstant
82: TypeImage 38(int) 2D depth sampled format:Unknown
83: TypeSampledImage 82
89: TypeImage 6(float) Cube sampled format:Unknown
90: TypePointer UniformConstant 89
91(g_tTexcdf4): 90(ptr) Variable UniformConstant
94: TypeImage 6(float) Cube depth sampled format:Unknown
95: TypeSampledImage 94
97: TypeVector 6(float) 3
98: 6(float) Constant 1050253722
99: 97(fvec3) ConstantComposite 20 59 98
104: TypeImage 26(int) Cube sampled format:Unknown
105: TypePointer UniformConstant 104
106(g_tTexcdi4): 105(ptr) Variable UniformConstant
109: TypeImage 26(int) Cube depth sampled format:Unknown
110: TypeSampledImage 109
116: TypeImage 38(int) Cube sampled format:Unknown
117: TypePointer UniformConstant 116
118(g_tTexcdu4): 117(ptr) Variable UniformConstant
121: TypeImage 38(int) Cube depth sampled format:Unknown
122: TypeSampledImage 121
127: TypeVector 6(float) 4
128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float)
129: TypePointer Function 128(PS_OUTPUT)
131: 26(int) Constant 1
132: 6(float) Constant 1065353216
136: TypeImage 6(float) 3D sampled format:Unknown
137: TypePointer UniformConstant 136
138(g_tTex3df4): 137(ptr) Variable UniformConstant
139: TypeImage 26(int) 3D sampled format:Unknown
140: TypePointer UniformConstant 139
141(g_tTex3di4): 140(ptr) Variable UniformConstant
142: TypeImage 38(int) 3D sampled format:Unknown
143: TypePointer UniformConstant 142
144(g_tTex3du4): 143(ptr) Variable UniformConstant
145: TypeImage 6(float) 1D array sampled format:Unknown
146: TypePointer UniformConstant 145
147(g_tTex1df4a): 146(ptr) Variable UniformConstant
148: TypeImage 26(int) 1D array sampled format:Unknown
149: TypePointer UniformConstant 148
150(g_tTex1di4a): 149(ptr) Variable UniformConstant
151: TypeImage 38(int) 1D array sampled format:Unknown
152: TypePointer UniformConstant 151
153(g_tTex1du4a): 152(ptr) Variable UniformConstant
154: TypeImage 6(float) 2D array sampled format:Unknown
155: TypePointer UniformConstant 154
156(g_tTex2df4a): 155(ptr) Variable UniformConstant
157: TypeImage 26(int) 2D array sampled format:Unknown
158: TypePointer UniformConstant 157
159(g_tTex2di4a): 158(ptr) Variable UniformConstant
160: TypeImage 38(int) 2D array sampled format:Unknown
161: TypePointer UniformConstant 160
162(g_tTex2du4a): 161(ptr) Variable UniformConstant
163: TypeImage 6(float) Cube array sampled format:Unknown
164: TypePointer UniformConstant 163
165(g_tTexcdf4a): 164(ptr) Variable UniformConstant
166: TypeImage 26(int) Cube array sampled format:Unknown
167: TypePointer UniformConstant 166
168(g_tTexcdi4a): 167(ptr) Variable UniformConstant
169: TypeImage 38(int) Cube array sampled format:Unknown
170: TypePointer UniformConstant 169
171(g_tTexcdu4a): 170(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r00): 7(ptr) Variable Function
25(r02): 7(ptr) Variable Function
37(r04): 7(ptr) Variable Function
49(r20): 7(ptr) Variable Function
64(r22): 7(ptr) Variable Function
76(r24): 7(ptr) Variable Function
88(r50): 7(ptr) Variable Function
103(r52): 7(ptr) Variable Function
115(r54): 7(ptr) Variable Function
130(psout): 129(ptr) Variable Function
12: 9 Load 11(g_tTex1df4)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
23: 6(float) CompositeExtract 20 0
24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22
Store 8(r00) 24
30: 27 Load 29(g_tTex1di4)
31: 13 Load 15(g_sSamp)
34: 33 SampledImage 30 31
35: 6(float) CompositeExtract 20 0
36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22
Store 25(r02) 36
42: 39 Load 41(g_tTex1du4)
43: 13 Load 15(g_sSamp)
46: 45 SampledImage 42 43
47: 6(float) CompositeExtract 20 0
48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22
Store 37(r04) 48
53: 50 Load 52(g_tTex2df4)
54: 13 Load 15(g_sSamp)
57: 56 SampledImage 53 54
61: 6(float) CompositeExtract 60 0
62: 6(float) CompositeExtract 61 0
63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22
Store 49(r20) 63
68: 65 Load 67(g_tTex2di4)
69: 13 Load 15(g_sSamp)
72: 71 SampledImage 68 69
73: 6(float) CompositeExtract 60 0
74: 6(float) CompositeExtract 73 0
75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22
Store 64(r22) 75
80: 77 Load 79(g_tTex2du4)
81: 13 Load 15(g_sSamp)
84: 83 SampledImage 80 81
85: 6(float) CompositeExtract 60 0
86: 6(float) CompositeExtract 85 0
87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22
Store 76(r24) 87
92: 89 Load 91(g_tTexcdf4)
93: 13 Load 15(g_sSamp)
96: 95 SampledImage 92 93
100: 6(float) CompositeExtract 99 0
101: 6(float) CompositeExtract 100 0
102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22
Store 88(r50) 102
107: 104 Load 106(g_tTexcdi4)
108: 13 Load 15(g_sSamp)
111: 110 SampledImage 107 108
112: 6(float) CompositeExtract 99 0
113: 6(float) CompositeExtract 112 0
114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22
Store 103(r52) 114
119: 116 Load 118(g_tTexcdu4)
120: 13 Load 15(g_sSamp)
123: 122 SampledImage 119 120
124: 6(float) CompositeExtract 99 0
125: 6(float) CompositeExtract 124 0
126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22
Store 115(r54) 126
133: 7(ptr) AccessChain 130(psout) 131
Store 133 132
134:128(PS_OUTPUT) Load 130(psout)
ReturnValue 134
FunctionEnd

View File

@ -0,0 +1,507 @@
hlsl.samplecmplevelzero.offset.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r01' (temp float)
0:42 textureLodOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r03' (temp float)
0:43 textureLodOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r05' (temp float)
0:44 textureLodOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r21' (temp float)
0:47 textureLodOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r23' (temp float)
0:48 textureLodOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r25' (temp float)
0:49 textureLodOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:63 move second child to first child (temp float)
0:63 Depth: direct index for structure (temp float FragDepth)
0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:63 Constant:
0:63 1 (const int)
0:63 Constant:
0:63 1.000000
0:65 Branch: Return with expression
0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r01' (temp float)
0:42 textureLodOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DShadow)
0:42 'g_tTex1df4' (uniform texture1D)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec2 (temp float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r03' (temp float)
0:43 textureLodOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DShadow)
0:43 'g_tTex1di4' (uniform itexture1D)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec2 (temp float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r05' (temp float)
0:44 textureLodOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DShadow)
0:44 'g_tTex1du4' (uniform utexture1D)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec2 (temp float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r21' (temp float)
0:47 textureLodOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DShadow)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r23' (temp float)
0:48 textureLodOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DShadow)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r25' (temp float)
0:49 textureLodOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DShadow)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:63 move second child to first child (temp float)
0:63 Depth: direct index for structure (temp float FragDepth)
0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:63 Constant:
0:63 1 (const int)
0:63 Constant:
0:63 1.000000
0:65 Branch: Return with expression
0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 146
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r01"
Name 11 "g_tTex1df4"
Name 15 "g_sSamp"
Name 27 "r03"
Name 30 "g_tTex1di4"
Name 38 "r05"
Name 42 "g_tTex1du4"
Name 50 "r21"
Name 53 "g_tTex2df4"
Name 68 "r23"
Name 71 "g_tTex2di4"
Name 80 "r25"
Name 83 "g_tTex2du4"
Name 93 "PS_OUTPUT"
MemberName 93(PS_OUTPUT) 0 "Color"
MemberName 93(PS_OUTPUT) 1 "Depth"
Name 95 "psout"
Name 103 "g_tTex3df4"
Name 106 "g_tTex3di4"
Name 109 "g_tTex3du4"
Name 112 "g_tTexcdf4"
Name 115 "g_tTexcdi4"
Name 118 "g_tTexcdu4"
Name 121 "g_tTex1df4a"
Name 124 "g_tTex1di4a"
Name 127 "g_tTex1du4a"
Name 130 "g_tTex2df4a"
Name 133 "g_tTex2di4a"
Name 136 "g_tTex2du4a"
Name 139 "g_tTexcdf4a"
Name 142 "g_tTexcdi4a"
Name 145 "g_tTexcdu4a"
Decorate 11(g_tTex1df4) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 30(g_tTex1di4) DescriptorSet 0
Decorate 42(g_tTex1du4) DescriptorSet 0
Decorate 53(g_tTex2df4) DescriptorSet 0
Decorate 71(g_tTex2di4) DescriptorSet 0
Decorate 83(g_tTex2du4) DescriptorSet 0
MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 103(g_tTex3df4) DescriptorSet 0
Decorate 106(g_tTex3di4) DescriptorSet 0
Decorate 109(g_tTex3du4) DescriptorSet 0
Decorate 112(g_tTexcdf4) DescriptorSet 0
Decorate 115(g_tTexcdi4) DescriptorSet 0
Decorate 118(g_tTexcdu4) DescriptorSet 0
Decorate 121(g_tTex1df4a) DescriptorSet 0
Decorate 124(g_tTex1di4a) DescriptorSet 0
Decorate 127(g_tTex1du4a) DescriptorSet 0
Decorate 130(g_tTex2df4a) DescriptorSet 0
Decorate 133(g_tTex2di4a) DescriptorSet 0
Decorate 136(g_tTex2du4a) DescriptorSet 0
Decorate 139(g_tTexcdf4a) DescriptorSet 0
Decorate 142(g_tTexcdi4a) DescriptorSet 0
Decorate 145(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth sampled format:Unknown
18: TypeSampledImage 17
20: 6(float) Constant 1036831949
21: 6(float) Constant 1061158912
22: 6(float) Constant 0
23: TypeInt 32 1
24: 23(int) Constant 2
28: TypeImage 23(int) 1D sampled format:Unknown
29: TypePointer UniformConstant 28
30(g_tTex1di4): 29(ptr) Variable UniformConstant
33: TypeImage 23(int) 1D depth sampled format:Unknown
34: TypeSampledImage 33
39: TypeInt 32 0
40: TypeImage 39(int) 1D sampled format:Unknown
41: TypePointer UniformConstant 40
42(g_tTex1du4): 41(ptr) Variable UniformConstant
45: TypeImage 39(int) 1D depth sampled format:Unknown
46: TypeSampledImage 45
51: TypeImage 6(float) 2D sampled format:Unknown
52: TypePointer UniformConstant 51
53(g_tTex2df4): 52(ptr) Variable UniformConstant
56: TypeImage 6(float) 2D depth sampled format:Unknown
57: TypeSampledImage 56
59: TypeVector 6(float) 2
60: 6(float) Constant 1045220557
61: 59(fvec2) ConstantComposite 20 60
63: TypeVector 23(int) 2
64: 23(int) Constant 3
65: 63(ivec2) ConstantComposite 24 64
69: TypeImage 23(int) 2D sampled format:Unknown
70: TypePointer UniformConstant 69
71(g_tTex2di4): 70(ptr) Variable UniformConstant
74: TypeImage 23(int) 2D depth sampled format:Unknown
75: TypeSampledImage 74
81: TypeImage 39(int) 2D sampled format:Unknown
82: TypePointer UniformConstant 81
83(g_tTex2du4): 82(ptr) Variable UniformConstant
86: TypeImage 39(int) 2D depth sampled format:Unknown
87: TypeSampledImage 86
92: TypeVector 6(float) 4
93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float)
94: TypePointer Function 93(PS_OUTPUT)
96: 23(int) Constant 1
97: 6(float) Constant 1065353216
101: TypeImage 6(float) 3D sampled format:Unknown
102: TypePointer UniformConstant 101
103(g_tTex3df4): 102(ptr) Variable UniformConstant
104: TypeImage 23(int) 3D sampled format:Unknown
105: TypePointer UniformConstant 104
106(g_tTex3di4): 105(ptr) Variable UniformConstant
107: TypeImage 39(int) 3D sampled format:Unknown
108: TypePointer UniformConstant 107
109(g_tTex3du4): 108(ptr) Variable UniformConstant
110: TypeImage 6(float) Cube sampled format:Unknown
111: TypePointer UniformConstant 110
112(g_tTexcdf4): 111(ptr) Variable UniformConstant
113: TypeImage 23(int) Cube sampled format:Unknown
114: TypePointer UniformConstant 113
115(g_tTexcdi4): 114(ptr) Variable UniformConstant
116: TypeImage 39(int) Cube sampled format:Unknown
117: TypePointer UniformConstant 116
118(g_tTexcdu4): 117(ptr) Variable UniformConstant
119: TypeImage 6(float) 1D array sampled format:Unknown
120: TypePointer UniformConstant 119
121(g_tTex1df4a): 120(ptr) Variable UniformConstant
122: TypeImage 23(int) 1D array sampled format:Unknown
123: TypePointer UniformConstant 122
124(g_tTex1di4a): 123(ptr) Variable UniformConstant
125: TypeImage 39(int) 1D array sampled format:Unknown
126: TypePointer UniformConstant 125
127(g_tTex1du4a): 126(ptr) Variable UniformConstant
128: TypeImage 6(float) 2D array sampled format:Unknown
129: TypePointer UniformConstant 128
130(g_tTex2df4a): 129(ptr) Variable UniformConstant
131: TypeImage 23(int) 2D array sampled format:Unknown
132: TypePointer UniformConstant 131
133(g_tTex2di4a): 132(ptr) Variable UniformConstant
134: TypeImage 39(int) 2D array sampled format:Unknown
135: TypePointer UniformConstant 134
136(g_tTex2du4a): 135(ptr) Variable UniformConstant
137: TypeImage 6(float) Cube array sampled format:Unknown
138: TypePointer UniformConstant 137
139(g_tTexcdf4a): 138(ptr) Variable UniformConstant
140: TypeImage 23(int) Cube array sampled format:Unknown
141: TypePointer UniformConstant 140
142(g_tTexcdi4a): 141(ptr) Variable UniformConstant
143: TypeImage 39(int) Cube array sampled format:Unknown
144: TypePointer UniformConstant 143
145(g_tTexcdu4a): 144(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r01): 7(ptr) Variable Function
27(r03): 7(ptr) Variable Function
38(r05): 7(ptr) Variable Function
50(r21): 7(ptr) Variable Function
68(r23): 7(ptr) Variable Function
80(r25): 7(ptr) Variable Function
95(psout): 94(ptr) Variable Function
12: 9 Load 11(g_tTex1df4)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
25: 6(float) CompositeExtract 20 0
26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24
Store 8(r01) 26
31: 28 Load 30(g_tTex1di4)
32: 13 Load 15(g_sSamp)
35: 34 SampledImage 31 32
36: 6(float) CompositeExtract 20 0
37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24
Store 27(r03) 37
43: 40 Load 42(g_tTex1du4)
44: 13 Load 15(g_sSamp)
47: 46 SampledImage 43 44
48: 6(float) CompositeExtract 20 0
49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24
Store 38(r05) 49
54: 51 Load 53(g_tTex2df4)
55: 13 Load 15(g_sSamp)
58: 57 SampledImage 54 55
62: 6(float) CompositeExtract 61 0
66: 6(float) CompositeExtract 62 0
67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65
Store 50(r21) 67
72: 69 Load 71(g_tTex2di4)
73: 13 Load 15(g_sSamp)
76: 75 SampledImage 72 73
77: 6(float) CompositeExtract 61 0
78: 6(float) CompositeExtract 77 0
79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65
Store 68(r23) 79
84: 81 Load 83(g_tTex2du4)
85: 13 Load 15(g_sSamp)
88: 87 SampledImage 84 85
89: 6(float) CompositeExtract 61 0
90: 6(float) CompositeExtract 89 0
91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65
Store 80(r25) 91
98: 7(ptr) AccessChain 95(psout) 96
Store 98 97
99:93(PS_OUTPUT) Load 95(psout)
ReturnValue 99
FunctionEnd

View File

@ -0,0 +1,525 @@
hlsl.samplecmplevelzero.offsetarray.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r11' (temp float)
0:42 textureLodOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r13' (temp float)
0:43 textureLodOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r15' (temp float)
0:44 textureLodOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r31' (temp float)
0:47 textureLodOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r33' (temp float)
0:48 textureLodOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r35' (temp float)
0:49 textureLodOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:64 move second child to first child (temp float)
0:64 Depth: direct index for structure (temp float FragDepth)
0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:64 Constant:
0:64 1 (const int)
0:64 Constant:
0:64 1.000000
0:66 Branch: Return with expression
0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:38 Function Parameters:
0:? Sequence
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r11' (temp float)
0:42 textureLodOffset (global float)
0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
0:42 'g_tTex1df4a' (uniform texture1DArray)
0:42 'g_sSamp' (uniform sampler)
0:42 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:42 Constant:
0:42 0.750000
0:42 Constant:
0:42 0.000000
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r13' (temp float)
0:43 textureLodOffset (global float)
0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
0:43 'g_tTex1di4a' (uniform itexture1DArray)
0:43 'g_sSamp' (uniform sampler)
0:43 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:43 Constant:
0:43 0.750000
0:43 Constant:
0:43 0.000000
0:43 Constant:
0:43 2 (const int)
0:44 Sequence
0:44 move second child to first child (temp float)
0:44 'r15' (temp float)
0:44 textureLodOffset (global float)
0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
0:44 'g_tTex1du4a' (uniform utexture1DArray)
0:44 'g_sSamp' (uniform sampler)
0:44 Construct vec3 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:44 Constant:
0:44 0.750000
0:44 Constant:
0:44 0.000000
0:44 Constant:
0:44 2 (const int)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r31' (temp float)
0:47 textureLodOffset (global float)
0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
0:47 'g_tTex2df4a' (uniform texture2DArray)
0:47 'g_sSamp' (uniform sampler)
0:47 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:47 Constant:
0:47 0.750000
0:47 Constant:
0:47 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r33' (temp float)
0:48 textureLodOffset (global float)
0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
0:48 'g_tTex2di4a' (uniform itexture2DArray)
0:48 'g_sSamp' (uniform sampler)
0:48 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:48 Constant:
0:48 0.750000
0:48 Constant:
0:48 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:49 Sequence
0:49 move second child to first child (temp float)
0:49 'r35' (temp float)
0:49 textureLodOffset (global float)
0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
0:49 'g_tTex2du4a' (uniform utexture2DArray)
0:49 'g_sSamp' (uniform sampler)
0:49 Construct vec4 (temp float)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:49 Constant:
0:49 0.750000
0:49 Constant:
0:49 0.000000
0:? Constant:
0:? 2 (const int)
0:? 3 (const int)
0:64 move second child to first child (temp float)
0:64 Depth: direct index for structure (temp float FragDepth)
0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:64 Constant:
0:64 1 (const int)
0:64 Constant:
0:64 1.000000
0:66 Branch: Return with expression
0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (uniform sampler)
0:? 'g_tTex1df4' (uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'g_tTex1df4a' (uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 152
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 8 "r11"
Name 11 "g_tTex1df4a"
Name 15 "g_sSamp"
Name 31 "r13"
Name 34 "g_tTex1di4a"
Name 43 "r15"
Name 47 "g_tTex1du4a"
Name 56 "r31"
Name 59 "g_tTex2df4a"
Name 74 "r33"
Name 77 "g_tTex2di4a"
Name 86 "r35"
Name 89 "g_tTex2du4a"
Name 99 "PS_OUTPUT"
MemberName 99(PS_OUTPUT) 0 "Color"
MemberName 99(PS_OUTPUT) 1 "Depth"
Name 101 "psout"
Name 109 "g_tTex1df4"
Name 112 "g_tTex1di4"
Name 115 "g_tTex1du4"
Name 118 "g_tTex2df4"
Name 121 "g_tTex2di4"
Name 124 "g_tTex2du4"
Name 127 "g_tTex3df4"
Name 130 "g_tTex3di4"
Name 133 "g_tTex3du4"
Name 136 "g_tTexcdf4"
Name 139 "g_tTexcdi4"
Name 142 "g_tTexcdu4"
Name 145 "g_tTexcdf4a"
Name 148 "g_tTexcdi4a"
Name 151 "g_tTexcdu4a"
Decorate 11(g_tTex1df4a) DescriptorSet 0
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 34(g_tTex1di4a) DescriptorSet 0
Decorate 47(g_tTex1du4a) DescriptorSet 0
Decorate 59(g_tTex2df4a) DescriptorSet 0
Decorate 77(g_tTex2di4a) DescriptorSet 0
Decorate 89(g_tTex2du4a) DescriptorSet 0
MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 109(g_tTex1df4) DescriptorSet 0
Decorate 112(g_tTex1di4) DescriptorSet 0
Decorate 115(g_tTex1du4) DescriptorSet 0
Decorate 118(g_tTex2df4) DescriptorSet 0
Decorate 121(g_tTex2di4) DescriptorSet 0
Decorate 124(g_tTex2du4) DescriptorSet 0
Decorate 127(g_tTex3df4) DescriptorSet 0
Decorate 130(g_tTex3di4) DescriptorSet 0
Decorate 133(g_tTex3du4) DescriptorSet 0
Decorate 136(g_tTexcdf4) DescriptorSet 0
Decorate 139(g_tTexcdi4) DescriptorSet 0
Decorate 142(g_tTexcdu4) DescriptorSet 0
Decorate 145(g_tTexcdf4a) DescriptorSet 0
Decorate 148(g_tTexcdi4a) DescriptorSet 0
Decorate 151(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D array sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4a): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeImage 6(float) 1D depth array sampled format:Unknown
18: TypeSampledImage 17
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: 6(float) Constant 1061158912
26: 6(float) Constant 0
27: TypeInt 32 1
28: 27(int) Constant 2
32: TypeImage 27(int) 1D array sampled format:Unknown
33: TypePointer UniformConstant 32
34(g_tTex1di4a): 33(ptr) Variable UniformConstant
37: TypeImage 27(int) 1D depth array sampled format:Unknown
38: TypeSampledImage 37
44: TypeInt 32 0
45: TypeImage 44(int) 1D array sampled format:Unknown
46: TypePointer UniformConstant 45
47(g_tTex1du4a): 46(ptr) Variable UniformConstant
50: TypeImage 44(int) 1D depth array sampled format:Unknown
51: TypeSampledImage 50
57: TypeImage 6(float) 2D array sampled format:Unknown
58: TypePointer UniformConstant 57
59(g_tTex2df4a): 58(ptr) Variable UniformConstant
62: TypeImage 6(float) 2D depth array sampled format:Unknown
63: TypeSampledImage 62
65: TypeVector 6(float) 3
66: 6(float) Constant 1050253722
67: 65(fvec3) ConstantComposite 21 22 66
69: TypeVector 27(int) 2
70: 27(int) Constant 3
71: 69(ivec2) ConstantComposite 28 70
75: TypeImage 27(int) 2D array sampled format:Unknown
76: TypePointer UniformConstant 75
77(g_tTex2di4a): 76(ptr) Variable UniformConstant
80: TypeImage 27(int) 2D depth array sampled format:Unknown
81: TypeSampledImage 80
87: TypeImage 44(int) 2D array sampled format:Unknown
88: TypePointer UniformConstant 87
89(g_tTex2du4a): 88(ptr) Variable UniformConstant
92: TypeImage 44(int) 2D depth array sampled format:Unknown
93: TypeSampledImage 92
98: TypeVector 6(float) 4
99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float)
100: TypePointer Function 99(PS_OUTPUT)
102: 27(int) Constant 1
103: 6(float) Constant 1065353216
107: TypeImage 6(float) 1D sampled format:Unknown
108: TypePointer UniformConstant 107
109(g_tTex1df4): 108(ptr) Variable UniformConstant
110: TypeImage 27(int) 1D sampled format:Unknown
111: TypePointer UniformConstant 110
112(g_tTex1di4): 111(ptr) Variable UniformConstant
113: TypeImage 44(int) 1D sampled format:Unknown
114: TypePointer UniformConstant 113
115(g_tTex1du4): 114(ptr) Variable UniformConstant
116: TypeImage 6(float) 2D sampled format:Unknown
117: TypePointer UniformConstant 116
118(g_tTex2df4): 117(ptr) Variable UniformConstant
119: TypeImage 27(int) 2D sampled format:Unknown
120: TypePointer UniformConstant 119
121(g_tTex2di4): 120(ptr) Variable UniformConstant
122: TypeImage 44(int) 2D sampled format:Unknown
123: TypePointer UniformConstant 122
124(g_tTex2du4): 123(ptr) Variable UniformConstant
125: TypeImage 6(float) 3D sampled format:Unknown
126: TypePointer UniformConstant 125
127(g_tTex3df4): 126(ptr) Variable UniformConstant
128: TypeImage 27(int) 3D sampled format:Unknown
129: TypePointer UniformConstant 128
130(g_tTex3di4): 129(ptr) Variable UniformConstant
131: TypeImage 44(int) 3D sampled format:Unknown
132: TypePointer UniformConstant 131
133(g_tTex3du4): 132(ptr) Variable UniformConstant
134: TypeImage 6(float) Cube sampled format:Unknown
135: TypePointer UniformConstant 134
136(g_tTexcdf4): 135(ptr) Variable UniformConstant
137: TypeImage 27(int) Cube sampled format:Unknown
138: TypePointer UniformConstant 137
139(g_tTexcdi4): 138(ptr) Variable UniformConstant
140: TypeImage 44(int) Cube sampled format:Unknown
141: TypePointer UniformConstant 140
142(g_tTexcdu4): 141(ptr) Variable UniformConstant
143: TypeImage 6(float) Cube array sampled format:Unknown
144: TypePointer UniformConstant 143
145(g_tTexcdf4a): 144(ptr) Variable UniformConstant
146: TypeImage 27(int) Cube array sampled format:Unknown
147: TypePointer UniformConstant 146
148(g_tTexcdi4a): 147(ptr) Variable UniformConstant
149: TypeImage 44(int) Cube array sampled format:Unknown
150: TypePointer UniformConstant 149
151(g_tTexcdu4a): 150(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(r11): 7(ptr) Variable Function
31(r13): 7(ptr) Variable Function
43(r15): 7(ptr) Variable Function
56(r31): 7(ptr) Variable Function
74(r33): 7(ptr) Variable Function
86(r35): 7(ptr) Variable Function
101(psout): 100(ptr) Variable Function
12: 9 Load 11(g_tTex1df4a)
16: 13 Load 15(g_sSamp)
19: 18 SampledImage 12 16
25: 6(float) CompositeExtract 23 0
29: 6(float) CompositeExtract 25 0
30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28
Store 8(r11) 30
35: 32 Load 34(g_tTex1di4a)
36: 13 Load 15(g_sSamp)
39: 38 SampledImage 35 36
40: 6(float) CompositeExtract 23 0
41: 6(float) CompositeExtract 40 0
42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28
Store 31(r13) 42
48: 45 Load 47(g_tTex1du4a)
49: 13 Load 15(g_sSamp)
52: 51 SampledImage 48 49
53: 6(float) CompositeExtract 23 0
54: 6(float) CompositeExtract 53 0
55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28
Store 43(r15) 55
60: 57 Load 59(g_tTex2df4a)
61: 13 Load 15(g_sSamp)
64: 63 SampledImage 60 61
68: 6(float) CompositeExtract 67 0
72: 6(float) CompositeExtract 68 0
73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71
Store 56(r31) 73
78: 75 Load 77(g_tTex2di4a)
79: 13 Load 15(g_sSamp)
82: 81 SampledImage 78 79
83: 6(float) CompositeExtract 67 0
84: 6(float) CompositeExtract 83 0
85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71
Store 74(r33) 85
90: 87 Load 89(g_tTex2du4a)
91: 13 Load 15(g_sSamp)
94: 93 SampledImage 90 91
95: 6(float) CompositeExtract 67 0
96: 6(float) CompositeExtract 95 0
97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71
Store 86(r35) 97
104: 7(ptr) AccessChain 101(psout) 102
Store 104 103
105:99(PS_OUTPUT) Load 101(psout)
ReturnValue 105
FunctionEnd

91
Test/hlsl.load.dx10.frag Normal file
View File

@ -0,0 +1,91 @@
SamplerState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// Load, no offset
g_tTex1df4.Load(int2(1,2));
g_tTex1di4.Load(int2(1,2));
g_tTex1du4.Load(int2(1,2));
g_tTex2df4.Load(int3(1,2,3));
g_tTex2di4.Load(int3(1,2,3));
g_tTex2du4.Load(int3(1,2,3));
g_tTex3df4.Load(int4(1,2,3,4));
g_tTex3di4.Load(int4(1,2,3,4));
g_tTex3du4.Load(int4(1,2,3,4));
g_tTex1df4a.Load(int3(1,2,3));
g_tTex1di4a.Load(int3(1,2,3));
g_tTex1du4a.Load(int3(1,2,3));
g_tTex2df4a.Load(int4(1,2,3,4));
g_tTex2di4a.Load(int4(1,2,3,4));
g_tTex2du4a.Load(int4(1,2,3,4));
// Load, offset
g_tTex1df4.Load(int2(1,2), 3);
g_tTex1di4.Load(int2(1,2), 3);
g_tTex1du4.Load(int2(1,2), 3);
g_tTex2df4.Load(int3(1,2,3), int2(4,5));
g_tTex2di4.Load(int3(1,2,3), int2(4,5));
g_tTex2du4.Load(int3(1,2,3), int2(4,5));
g_tTex3df4.Load(int4(1,2,3,4), int3(5,6,7));
g_tTex3di4.Load(int4(1,2,3,4), int3(5,6,7));
g_tTex3du4.Load(int4(1,2,3,4), int3(5,6,7));
g_tTex1df4a.Load(int3(1,2,3), 4);
g_tTex1di4a.Load(int3(1,2,3), 4);
g_tTex1du4a.Load(int3(1,2,3), 4);
g_tTex2df4a.Load(int4(1,2,3,4), int2(4,5));
g_tTex2di4a.Load(int4(1,2,3,4), int2(4,5));
g_tTex2du4a.Load(int4(1,2,3,4), int2(4,5));
// TODO:
// Load, SampleIndex
// Load, SampleIndex, Offset
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,60 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1DArray
float r10 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
float r12 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
float r14 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
// 2DArray
float r30 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r32 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r34 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
// CubeArray
float r60 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
float r62 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
float r64 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,61 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1D
float r00 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75);
float r02 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75);
float r04 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75);
// 2D
float r20 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
float r22 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
float r24 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
// *** There's no SampleCmp on 3D textures
float r50 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r52 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r54 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,66 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1D
float r01 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75, 2);
float r03 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75, 2);
float r05 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75, 2);
// 2D
float r21 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
float r23 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
float r25 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
// *** There's no SampleCmp on 3D textures
// This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
// claims offset is supported for cube textures, but FXC does not accept it, and that does
// not match other methods, so it may be a documentation bug. Those lines are commented
// out below.
// Cube
// float r51 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4));
// float r53 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4));
// float r55 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4));
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,67 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1DArray
float r11 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2);
float r13 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2);
float r15 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2);
// 2DArray
float r31 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
float r33 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
float r35 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
// *** There's no SampleCmp on 3D textures
// This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
// claims offset is supported for cube textures, but FXC does not accept it, and that does
// not match other methods, so it may be a documentation bug. Those lines are commented
// out below.
// CubeArray
// float r61 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
// float r63 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
// float r65 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,60 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1DArray
float r10 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
float r12 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
float r14 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
// 2DArray
float r30 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r32 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r34 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
// CubeArray
float r60 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
float r62 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
float r64 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,61 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1D
float r00 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75);
float r02 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75);
float r04 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75);
// 2D
float r20 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
float r22 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
float r24 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
// *** There's no SampleCmpLevelZero on 3D textures
float r50 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r52 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
float r54 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,66 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1D
float r01 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2);
float r03 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2);
float r05 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2);
// 2D
float r21 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
float r23 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
float r25 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
// *** There's no SampleCmpLevelZero on 3D textures
// This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
// claims offset is supported for cube textures, but FXC does not accept it, and that does
// not match other methods, so it may be a documentation bug. Those lines are commented
// out below.
// Cube
// float r51 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
// float r53 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
// float r55 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,67 @@
SamplerComparisonState g_sSamp : register(s0);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
Texture1DArray <float4> g_tTex1df4a;
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
PS_OUTPUT main()
{
PS_OUTPUT psout;
// 1DArray
float r11 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2);
float r13 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2);
float r15 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2);
// 2DArray
float r31 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
float r33 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
float r35 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
// *** There's no SampleCmpLevelZero on 3D textures
// This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
// claims offset is supported for cube textures, but FXC does not accept it, and that does
// not match other methods, so it may be a documentation bug. Those lines are commented
// out below.
// CubeArray
// float r61 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
// float r63 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
// float r65 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -104,6 +104,14 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.samplebias.basic.dx10.frag", "main"},
{"hlsl.samplebias.offset.dx10.frag", "main"},
{"hlsl.samplebias.offsetarray.dx10.frag", "main"},
{"hlsl.samplecmp.array.dx10.frag", "main"},
{"hlsl.samplecmp.basic.dx10.frag", "main"},
{"hlsl.samplecmp.offset.dx10.frag", "main"},
{"hlsl.samplecmp.offsetarray.dx10.frag", "main"},
{"hlsl.samplecmplevelzero.array.dx10.frag", "main"},
{"hlsl.samplecmplevelzero.basic.dx10.frag", "main"},
{"hlsl.samplecmplevelzero.offset.dx10.frag", "main"},
{"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"},
{"hlsl.samplegrad.array.dx10.frag", "main"},
{"hlsl.samplegrad.basic.dx10.frag", "main"},
{"hlsl.samplegrad.basic.dx10.vert", "main"},

View File

@ -661,8 +661,11 @@ bool HlslGrammar::acceptSamplerType(TType& type)
// read sampler type
const EHlslTokenClass samplerType = peek();
// TODO: for DX9
// TSamplerDim dim = EsdNone;
bool isShadow = false;
switch (samplerType) {
case EHTokSampler: break;
case EHTokSampler1d: /*dim = Esd1D*/; break;
@ -670,7 +673,7 @@ bool HlslGrammar::acceptSamplerType(TType& type)
case EHTokSampler3d: /*dim = Esd3D*/; break;
case EHTokSamplerCube: /*dim = EsdCube*/; break;
case EHTokSamplerState: break;
case EHTokSamplerComparisonState: break;
case EHTokSamplerComparisonState: isShadow = true; break;
default:
return false; // not a sampler declaration
}
@ -678,10 +681,9 @@ bool HlslGrammar::acceptSamplerType(TType& type)
advanceToken(); // consume the sampler type keyword
TArraySizes* arraySizes = nullptr; // TODO: array
bool shadow = false; // TODO: shadow
TSampler sampler;
sampler.setPureSampler(shadow);
sampler.setPureSampler(isShadow);
type.shallowCopy(TType(sampler, EvqUniform, arraySizes));

View File

@ -825,6 +825,7 @@ TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc
TSampler samplerType = argTex->getType().getSampler();
samplerType.combined = true;
samplerType.shadow = argSampler->getType().getSampler().shadow;
txcombine->setType(TType(samplerType, EvqTemporary));
txcombine->setLoc(loc);
@ -1063,6 +1064,66 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
break;
}
case EOpMethodSampleCmp: // fall through...
case EOpMethodSampleCmpLevelZero:
{
TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped();
TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped();
TIntermTyped* argCmpVal = argAggregate->getSequence()[3]->getAsTyped();
TIntermTyped* argOffset = nullptr;
// optional offset value
if (argAggregate->getSequence().size() > 4)
argOffset = argAggregate->getSequence()[4]->getAsTyped();
const int coordDimWithCmpVal = argCoord->getType().getVectorSize() + 1; // +1 for cmp
// AST wants comparison value as one of the texture coordinates
TOperator constructOp = EOpNull;
switch (coordDimWithCmpVal) {
// 1D can't happen: there's always at least 1 coordinate dimension + 1 cmp val
case 2: constructOp = EOpConstructVec2; break;
case 3: constructOp = EOpConstructVec3; break;
case 4: constructOp = EOpConstructVec4; break;
case 5: constructOp = EOpConstructVec4; break; // cubeArrayShadow, cmp value is separate arg.
default: assert(0); break;
}
TIntermAggregate* coordWithCmp = new TIntermAggregate(constructOp);
coordWithCmp->getSequence().push_back(argCoord);
if (coordDimWithCmpVal != 5) // cube array shadow is special.
coordWithCmp->getSequence().push_back(argCmpVal);
coordWithCmp->setLoc(loc);
TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture);
if (argOffset != nullptr)
textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLodOffset : EOpTextureOffset);
// Create combined sampler & texture op
TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
TIntermAggregate* txsample = new TIntermAggregate(textureOp);
txsample->getSequence().push_back(txcombine);
txsample->getSequence().push_back(coordWithCmp);
if (coordDimWithCmpVal == 5) // cube array shadow is special: cmp val follows coord.
txsample->getSequence().push_back(argCmpVal);
// the LevelZero form uses 0 as an explicit LOD
if (op == EOpMethodSampleCmpLevelZero)
txsample->getSequence().push_back(intermediate.addConstantUnion(0.0, EbtFloat, loc, true));
// Add offset if present
if (argOffset != nullptr)
txsample->getSequence().push_back(argOffset);
txsample->setType(node->getType());
txsample->setLoc(loc);
node = txsample;
break;
}
default:
break; // most pass through unchanged
}

View File

@ -69,7 +69,7 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char
bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; }
bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; }
bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ...
bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ...
// Reject certain combinations that are illegal sample methods. For example,
// 3D arrays.
@ -78,33 +78,47 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim
const bool isArrayed = IsTextureArrayed(*argOrder);
const bool isMS = IsTextureMS(*argOrder);
// there are no 3D arrayed textures, or 3D SampleCmp
if (dim0 == 3 && (isArrayed || name == "SampleCmp"))
// there are no 3D arrayed textures, or 3D SampleCmp(LevelZero)
if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero"))
return true;
const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1;
// Reject invalid offset arrayed forms with cubemaps
if (isArrayed && dim0 == 4) {
// Reject invalid offset forms with cubemaps
if (dim0 == 4) {
if ((name == "Sample" && numArgs >= 4) ||
(name == "SampleBias" && numArgs >= 5) ||
(name == "SampleCmp" && numArgs >= 5) ||
(name == "SampleCmpLevelZero" && numArgs >= 4) ||
(name == "SampleCmpLevelZero" && numArgs >= 5) ||
(name == "SampleGrad" && numArgs >= 6) ||
(name == "SampleLevel" && numArgs >= 5))
return true;
}
// Reject invalid Loads
if (name == "Load") {
if ((numArgs >= 3 && !isMS) || // Load with sampleindex requires multisample
(dim0 == 4)) // Load does not support any cubemaps, arrayed or not.
return true;
}
if (name == "Load" && dim0 == 4)
return true; // Load does not support any cubemaps, arrayed or not.
return false;
}
// Return the number of the coordinate arg, if any
int CoordinateArgPos(const glslang::TString& name, bool isTexture)
{
if (!isTexture || (name == "GetDimensions"))
return -1; // has none
else if (name == "Load")
return 1;
else
return 2; // other texture methods are 2
}
// Some texture methods use an addition coordinate dimension for the mip
bool HasMipInCoord(const glslang::TString& name)
{
return name == "Load";
}
// Create and return a type name. This is done in GLSL, not HLSL conventions, until such
// time as builtins are parsed using the HLSL parser.
//
@ -141,17 +155,18 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
if (UseHlslTypes) {
switch (type) {
case '-': s += "void"; break;
case 'F': s += "float"; break;
case 'D': s += "double"; break;
case 'I': s += "int"; break;
case 'U': s += "uint"; break;
case 'B': s += "bool"; break;
case 'S': s += "sampler"; break;
case 'T': s += "Texture"; break;
case 'i': s += "Texture <int4>"; break;
case 'u': s += "Texture <uint4>"; break;
default: s += "UNKNOWN_TYPE"; break;
case '-': s += "void"; break;
case 'F': s += "float"; break;
case 'D': s += "double"; break;
case 'I': s += "int"; break;
case 'U': s += "uint"; break;
case 'B': s += "bool"; break;
case 'S': s += "sampler"; break;
case 's': s += "SamplerComparisonState"; break;
case 'T': s += "Texture"; break;
case 'i': s += "Texture <int4>"; break;
case 'u': s += "Texture <uint4>"; break;
default: s += "UNKNOWN_TYPE"; break;
}
} else {
switch (type) {
@ -162,6 +177,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break;
case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break;
case 'S': s += "sampler"; break;
case 's': s += "samplerShadow"; break;
case 'T': // fall through
case 'i': // ...
case 'u': // ...
@ -369,7 +385,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
// orderKey can be:
// S = scalar, V = vector, M = matrix, - = void
// typekey can be:
// D = double, F = float, U = uint, I = int, B = bool, S = sampler
// D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler
// An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM.
// '>' as first letter of order creates an output parameter
// '<' as first letter of order creates an input parameter
@ -555,33 +571,35 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
{ "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
{ "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
// { "SampleCmp", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
// { "SampleCmp", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
// { "SampleCmp", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
// { "SampleCmp", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
// TODO: FXC accepts int/uint samplers here. unclear what that means.
{ "SampleCmp", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
{ "SampleCmp", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
{ "SampleCmp", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
{ "SampleCmp", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
// { "SampleCmpLevelZero", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask },
// { "SampleCmpLevelZero", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
// { "SampleCmpLevelZero", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask },
// { "SampleCmpLevelZero", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
// TODO: FXC accepts int/uint samplers here. unclear what that means.
{ "SampleCmpLevelZero", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
{ "SampleCmpLevelZero", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
{ "SampleCmpLevelZero", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
{ "SampleCmpLevelZero", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
{ "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll },
{ "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
{ "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll },
{ "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
// { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
// { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
// { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
// { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
// { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangAll },
// { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll },
// { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll },
// { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll },
// TODO: ...
// { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangFragmentMask },
// { "Load", /* +sampleidex*/ "V4", nullptr, "%V,V,S", "FIU,I,I", EShLangFragmentMask },
// { "Load", /* +samplindex, offset*/ "V4", nullptr, "%V,V,S,V", "FIU,I,I,I", EShLangFragmentMask },
// { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangFragmentMask },
// { "Load", /* +sampleidex*/ "V4", nullptr, "@V,V,S", "FIU,I,I", EShLangFragmentMask },
// { "Load", /* +samplindex, offset*/ "V4", nullptr, "@V,V,S,V", "FIU,I,I,I", EShLangFragmentMask },
// { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangAll },
// { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangAll },
// { "Load", /* offset*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll },
// { "Load", /* offset*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll },
// TODO: MS variants of Load
// { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll },
// { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll },
// table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx
//
@ -660,7 +678,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order...
const bool isTexture = IsTextureType(*argOrder);
const bool isArrayed = IsTextureArrayed(*argOrder);
const bool mipInCoord = HasMipInCoord(intrinsic.name);
const int fixedVecSize = FixedVecSize(argOrder);
const int coordArg = CoordinateArgPos(intrinsic.name, isTexture);
// calculate min and max vector and matrix dimensions
int dim0Min = 1;
@ -701,7 +721,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0;
// arrayed textures have one extra coordinate dimension
if (isArrayed && arg == 2)
if (isArrayed && arg == coordArg)
argDim0++;
// Some texture methods use an addition arg dimension to hold mip
if (arg == coordArg && mipInCoord)
argDim0++;
// For textures, the 1D case isn't a 1-vector, but a scalar.
@ -916,8 +940,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
// Texture methods
symbolTable.relateToOperator("Sample", EOpMethodSample);
symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias);
// symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp);
// symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero);
symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp);
symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero);
symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad);
// symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel);
// symbolTable.relateToOperator("Load", EOpMethodLoad);