HLSL: Add gather, improve proto generator machine for upcoming 2DMS/Shadow
This commit is contained in:
parent
630e1bc636
commit
a2f3d285a8
359
Test/baseResults/hlsl.gather.array.dx10.frag.out
Normal file
359
Test/baseResults/hlsl.gather.array.dx10.frag.out
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
hlsl.gather.array.dx10.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:24 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:29 Sequence
|
||||||
|
0:29 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:29 'txval20' (temp 4-component vector of float)
|
||||||
|
0:29 textureGather (global 4-component vector of float)
|
||||||
|
0:29 Construct combined texture-sampler (temp sampler2DArray)
|
||||||
|
0:29 'g_tTex2df4a' (uniform texture2DArray)
|
||||||
|
0:29 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:30 Sequence
|
||||||
|
0:30 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:30 'txval21' (temp 4-component vector of int)
|
||||||
|
0:30 textureGather (global 4-component vector of int)
|
||||||
|
0:30 Construct combined texture-sampler (temp isampler2DArray)
|
||||||
|
0:30 'g_tTex2di4a' (uniform itexture2DArray)
|
||||||
|
0:30 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:31 Sequence
|
||||||
|
0:31 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:31 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:31 textureGather (global 4-component vector of uint)
|
||||||
|
0:31 Construct combined texture-sampler (temp usampler2DArray)
|
||||||
|
0:31 'g_tTex2du4a' (uniform utexture2DArray)
|
||||||
|
0:31 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? 0.700000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:35 'txval40' (temp 4-component vector of float)
|
||||||
|
0:35 textureGather (global 4-component vector of float)
|
||||||
|
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
||||||
|
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:36 'txval41' (temp 4-component vector of int)
|
||||||
|
0:36 textureGather (global 4-component vector of int)
|
||||||
|
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
||||||
|
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||||
|
0:36 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? 0.700000
|
||||||
|
0:37 Sequence
|
||||||
|
0:37 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:37 'txval42' (temp 4-component vector of uint)
|
||||||
|
0:37 textureGather (global 4-component vector of uint)
|
||||||
|
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
||||||
|
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||||
|
0:37 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.700000
|
||||||
|
0:? 0.800000
|
||||||
|
0:? 0.900000
|
||||||
|
0:? 1.000000
|
||||||
|
0:40 move second child to first child (temp float)
|
||||||
|
0:40 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:40 Constant:
|
||||||
|
0:40 1 (const int)
|
||||||
|
0:40 Constant:
|
||||||
|
0:40 1.000000
|
||||||
|
0:42 Branch: Return with expression
|
||||||
|
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||||
|
0:? 'g_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:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:24 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:29 Sequence
|
||||||
|
0:29 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:29 'txval20' (temp 4-component vector of float)
|
||||||
|
0:29 textureGather (global 4-component vector of float)
|
||||||
|
0:29 Construct combined texture-sampler (temp sampler2DArray)
|
||||||
|
0:29 'g_tTex2df4a' (uniform texture2DArray)
|
||||||
|
0:29 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:30 Sequence
|
||||||
|
0:30 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:30 'txval21' (temp 4-component vector of int)
|
||||||
|
0:30 textureGather (global 4-component vector of int)
|
||||||
|
0:30 Construct combined texture-sampler (temp isampler2DArray)
|
||||||
|
0:30 'g_tTex2di4a' (uniform itexture2DArray)
|
||||||
|
0:30 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:31 Sequence
|
||||||
|
0:31 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:31 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:31 textureGather (global 4-component vector of uint)
|
||||||
|
0:31 Construct combined texture-sampler (temp usampler2DArray)
|
||||||
|
0:31 'g_tTex2du4a' (uniform utexture2DArray)
|
||||||
|
0:31 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? 0.700000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:35 'txval40' (temp 4-component vector of float)
|
||||||
|
0:35 textureGather (global 4-component vector of float)
|
||||||
|
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
||||||
|
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:36 'txval41' (temp 4-component vector of int)
|
||||||
|
0:36 textureGather (global 4-component vector of int)
|
||||||
|
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
||||||
|
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||||
|
0:36 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? 0.700000
|
||||||
|
0:37 Sequence
|
||||||
|
0:37 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:37 'txval42' (temp 4-component vector of uint)
|
||||||
|
0:37 textureGather (global 4-component vector of uint)
|
||||||
|
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
||||||
|
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||||
|
0:37 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.700000
|
||||||
|
0:? 0.800000
|
||||||
|
0:? 0.900000
|
||||||
|
0:? 1.000000
|
||||||
|
0:40 move second child to first child (temp float)
|
||||||
|
0:40 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:40 Constant:
|
||||||
|
0:40 1 (const int)
|
||||||
|
0:40 Constant:
|
||||||
|
0:40 1.000000
|
||||||
|
0:42 Branch: Return with expression
|
||||||
|
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||||
|
0:? 'g_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 108
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Sampled1D
|
||||||
|
Capability SampledCubeArray
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "txval20"
|
||||||
|
Name 12 "g_tTex2df4a"
|
||||||
|
Name 16 "g_sSamp"
|
||||||
|
Name 30 "txval21"
|
||||||
|
Name 33 "g_tTex2di4a"
|
||||||
|
Name 45 "txval22"
|
||||||
|
Name 48 "g_tTex2du4a"
|
||||||
|
Name 57 "txval40"
|
||||||
|
Name 60 "g_tTexcdf4a"
|
||||||
|
Name 67 "txval41"
|
||||||
|
Name 70 "g_tTexcdi4a"
|
||||||
|
Name 77 "txval42"
|
||||||
|
Name 80 "g_tTexcdu4a"
|
||||||
|
Name 90 "PS_OUTPUT"
|
||||||
|
MemberName 90(PS_OUTPUT) 0 "Color"
|
||||||
|
MemberName 90(PS_OUTPUT) 1 "Depth"
|
||||||
|
Name 92 "psout"
|
||||||
|
Name 100 "g_tTex1df4a"
|
||||||
|
Name 101 "g_tTex1df4"
|
||||||
|
Name 104 "g_tTex1di4a"
|
||||||
|
Name 107 "g_tTex1du4a"
|
||||||
|
Decorate 12(g_tTex2df4a) DescriptorSet 0
|
||||||
|
Decorate 16(g_sSamp) DescriptorSet 0
|
||||||
|
Decorate 33(g_tTex2di4a) DescriptorSet 0
|
||||||
|
Decorate 48(g_tTex2du4a) DescriptorSet 0
|
||||||
|
Decorate 60(g_tTexcdf4a) DescriptorSet 0
|
||||||
|
Decorate 70(g_tTexcdi4a) DescriptorSet 0
|
||||||
|
Decorate 80(g_tTexcdu4a) DescriptorSet 0
|
||||||
|
MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth
|
||||||
|
Decorate 100(g_tTex1df4a) DescriptorSet 0
|
||||||
|
Decorate 101(g_tTex1df4) DescriptorSet 0
|
||||||
|
Decorate 104(g_tTex1di4a) DescriptorSet 0
|
||||||
|
Decorate 107(g_tTex1du4a) DescriptorSet 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: TypeImage 6(float) 2D array sampled format:Unknown
|
||||||
|
11: TypePointer UniformConstant 10
|
||||||
|
12(g_tTex2df4a): 11(ptr) Variable UniformConstant
|
||||||
|
14: TypeSampler
|
||||||
|
15: TypePointer UniformConstant 14
|
||||||
|
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||||
|
18: TypeSampledImage 10
|
||||||
|
20: TypeVector 6(float) 3
|
||||||
|
21: 6(float) Constant 1036831949
|
||||||
|
22: 6(float) Constant 1045220557
|
||||||
|
23: 6(float) Constant 1050253722
|
||||||
|
24: 20(fvec3) ConstantComposite 21 22 23
|
||||||
|
25: TypeInt 32 1
|
||||||
|
26: 25(int) Constant 0
|
||||||
|
28: TypeVector 25(int) 4
|
||||||
|
29: TypePointer Function 28(ivec4)
|
||||||
|
31: TypeImage 25(int) 2D array sampled format:Unknown
|
||||||
|
32: TypePointer UniformConstant 31
|
||||||
|
33(g_tTex2di4a): 32(ptr) Variable UniformConstant
|
||||||
|
36: TypeSampledImage 31
|
||||||
|
38: 6(float) Constant 1053609165
|
||||||
|
39: 6(float) Constant 1056964608
|
||||||
|
40: 20(fvec3) ConstantComposite 23 38 39
|
||||||
|
42: TypeInt 32 0
|
||||||
|
43: TypeVector 42(int) 4
|
||||||
|
44: TypePointer Function 43(ivec4)
|
||||||
|
46: TypeImage 42(int) 2D array sampled format:Unknown
|
||||||
|
47: TypePointer UniformConstant 46
|
||||||
|
48(g_tTex2du4a): 47(ptr) Variable UniformConstant
|
||||||
|
51: TypeSampledImage 46
|
||||||
|
53: 6(float) Constant 1058642330
|
||||||
|
54: 6(float) Constant 1060320051
|
||||||
|
55: 20(fvec3) ConstantComposite 39 53 54
|
||||||
|
58: TypeImage 6(float) Cube array sampled format:Unknown
|
||||||
|
59: TypePointer UniformConstant 58
|
||||||
|
60(g_tTexcdf4a): 59(ptr) Variable UniformConstant
|
||||||
|
63: TypeSampledImage 58
|
||||||
|
65: 7(fvec4) ConstantComposite 21 22 23 38
|
||||||
|
68: TypeImage 25(int) Cube array sampled format:Unknown
|
||||||
|
69: TypePointer UniformConstant 68
|
||||||
|
70(g_tTexcdi4a): 69(ptr) Variable UniformConstant
|
||||||
|
73: TypeSampledImage 68
|
||||||
|
75: 7(fvec4) ConstantComposite 38 39 53 54
|
||||||
|
78: TypeImage 42(int) Cube array sampled format:Unknown
|
||||||
|
79: TypePointer UniformConstant 78
|
||||||
|
80(g_tTexcdu4a): 79(ptr) Variable UniformConstant
|
||||||
|
83: TypeSampledImage 78
|
||||||
|
85: 6(float) Constant 1061997773
|
||||||
|
86: 6(float) Constant 1063675494
|
||||||
|
87: 6(float) Constant 1065353216
|
||||||
|
88: 7(fvec4) ConstantComposite 54 85 86 87
|
||||||
|
90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
|
||||||
|
91: TypePointer Function 90(PS_OUTPUT)
|
||||||
|
93: 25(int) Constant 1
|
||||||
|
94: TypePointer Function 6(float)
|
||||||
|
98: TypeImage 6(float) 1D array sampled format:Unknown
|
||||||
|
99: TypePointer UniformConstant 98
|
||||||
|
100(g_tTex1df4a): 99(ptr) Variable UniformConstant
|
||||||
|
101(g_tTex1df4): 99(ptr) Variable UniformConstant
|
||||||
|
102: TypeImage 25(int) 1D array sampled format:Unknown
|
||||||
|
103: TypePointer UniformConstant 102
|
||||||
|
104(g_tTex1di4a): 103(ptr) Variable UniformConstant
|
||||||
|
105: TypeImage 42(int) 1D array sampled format:Unknown
|
||||||
|
106: TypePointer UniformConstant 105
|
||||||
|
107(g_tTex1du4a): 106(ptr) Variable UniformConstant
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(txval20): 8(ptr) Variable Function
|
||||||
|
30(txval21): 29(ptr) Variable Function
|
||||||
|
45(txval22): 44(ptr) Variable Function
|
||||||
|
57(txval40): 8(ptr) Variable Function
|
||||||
|
67(txval41): 29(ptr) Variable Function
|
||||||
|
77(txval42): 44(ptr) Variable Function
|
||||||
|
92(psout): 91(ptr) Variable Function
|
||||||
|
13: 10 Load 12(g_tTex2df4a)
|
||||||
|
17: 14 Load 16(g_sSamp)
|
||||||
|
19: 18 SampledImage 13 17
|
||||||
|
27: 7(fvec4) ImageGather 19 24 26
|
||||||
|
Store 9(txval20) 27
|
||||||
|
34: 31 Load 33(g_tTex2di4a)
|
||||||
|
35: 14 Load 16(g_sSamp)
|
||||||
|
37: 36 SampledImage 34 35
|
||||||
|
41: 28(ivec4) ImageGather 37 40 26
|
||||||
|
Store 30(txval21) 41
|
||||||
|
49: 46 Load 48(g_tTex2du4a)
|
||||||
|
50: 14 Load 16(g_sSamp)
|
||||||
|
52: 51 SampledImage 49 50
|
||||||
|
56: 43(ivec4) ImageGather 52 55 26
|
||||||
|
Store 45(txval22) 56
|
||||||
|
61: 58 Load 60(g_tTexcdf4a)
|
||||||
|
62: 14 Load 16(g_sSamp)
|
||||||
|
64: 63 SampledImage 61 62
|
||||||
|
66: 7(fvec4) ImageGather 64 65 26
|
||||||
|
Store 57(txval40) 66
|
||||||
|
71: 68 Load 70(g_tTexcdi4a)
|
||||||
|
72: 14 Load 16(g_sSamp)
|
||||||
|
74: 73 SampledImage 71 72
|
||||||
|
76: 28(ivec4) ImageGather 74 75 26
|
||||||
|
Store 67(txval41) 76
|
||||||
|
81: 78 Load 80(g_tTexcdu4a)
|
||||||
|
82: 14 Load 16(g_sSamp)
|
||||||
|
84: 83 SampledImage 81 82
|
||||||
|
89: 43(ivec4) ImageGather 84 88 26
|
||||||
|
Store 77(txval42) 89
|
||||||
|
95: 94(ptr) AccessChain 92(psout) 93
|
||||||
|
Store 95 87
|
||||||
|
96:90(PS_OUTPUT) Load 92(psout)
|
||||||
|
ReturnValue 96
|
||||||
|
FunctionEnd
|
373
Test/baseResults/hlsl.gather.basic.dx10.frag.out
Normal file
373
Test/baseResults/hlsl.gather.basic.dx10.frag.out
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
hlsl.gather.basic.dx10.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:29 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:34 Sequence
|
||||||
|
0:34 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:34 'txval20' (temp 4-component vector of float)
|
||||||
|
0:34 textureGather (global 4-component vector of float)
|
||||||
|
0:34 Construct combined texture-sampler (temp sampler2D)
|
||||||
|
0:34 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:34 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:35 'txval21' (temp 4-component vector of int)
|
||||||
|
0:35 textureGather (global 4-component vector of int)
|
||||||
|
0:35 Construct combined texture-sampler (temp isampler2D)
|
||||||
|
0:35 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:36 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:36 textureGather (global 4-component vector of uint)
|
||||||
|
0:36 Construct combined texture-sampler (temp usampler2D)
|
||||||
|
0:36 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:36 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:40 Sequence
|
||||||
|
0:40 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:40 'txval40' (temp 4-component vector of float)
|
||||||
|
0:40 textureGather (global 4-component vector of float)
|
||||||
|
0:40 Construct combined texture-sampler (temp samplerCube)
|
||||||
|
0:40 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:40 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:41 Sequence
|
||||||
|
0:41 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:41 'txval41' (temp 4-component vector of int)
|
||||||
|
0:41 textureGather (global 4-component vector of int)
|
||||||
|
0:41 Construct combined texture-sampler (temp isamplerCube)
|
||||||
|
0:41 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:41 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:42 Sequence
|
||||||
|
0:42 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:42 'txval42' (temp 4-component vector of uint)
|
||||||
|
0:42 textureGather (global 4-component vector of uint)
|
||||||
|
0:42 Construct combined texture-sampler (temp usamplerCube)
|
||||||
|
0:42 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
0:42 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.700000
|
||||||
|
0:? 0.800000
|
||||||
|
0:? 0.900000
|
||||||
|
0:45 move second child to first child (temp float)
|
||||||
|
0:45 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 1 (const int)
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 1.000000
|
||||||
|
0:47 Branch: Return with expression
|
||||||
|
0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_sSamp2d' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1D)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1D)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:? 'g_tTex3df4' (uniform texture3D)
|
||||||
|
0:? 'g_tTex3di4' (uniform itexture3D)
|
||||||
|
0:? 'g_tTex3du4' (uniform utexture3D)
|
||||||
|
0:? 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:? 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:? 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:29 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:34 Sequence
|
||||||
|
0:34 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:34 'txval20' (temp 4-component vector of float)
|
||||||
|
0:34 textureGather (global 4-component vector of float)
|
||||||
|
0:34 Construct combined texture-sampler (temp sampler2D)
|
||||||
|
0:34 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:34 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:35 'txval21' (temp 4-component vector of int)
|
||||||
|
0:35 textureGather (global 4-component vector of int)
|
||||||
|
0:35 Construct combined texture-sampler (temp isampler2D)
|
||||||
|
0:35 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:36 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:36 textureGather (global 4-component vector of uint)
|
||||||
|
0:36 Construct combined texture-sampler (temp usampler2D)
|
||||||
|
0:36 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:36 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:40 Sequence
|
||||||
|
0:40 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:40 'txval40' (temp 4-component vector of float)
|
||||||
|
0:40 textureGather (global 4-component vector of float)
|
||||||
|
0:40 Construct combined texture-sampler (temp samplerCube)
|
||||||
|
0:40 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:40 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:41 Sequence
|
||||||
|
0:41 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:41 'txval41' (temp 4-component vector of int)
|
||||||
|
0:41 textureGather (global 4-component vector of int)
|
||||||
|
0:41 Construct combined texture-sampler (temp isamplerCube)
|
||||||
|
0:41 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:41 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:42 Sequence
|
||||||
|
0:42 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:42 'txval42' (temp 4-component vector of uint)
|
||||||
|
0:42 textureGather (global 4-component vector of uint)
|
||||||
|
0:42 Construct combined texture-sampler (temp usamplerCube)
|
||||||
|
0:42 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
0:42 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.700000
|
||||||
|
0:? 0.800000
|
||||||
|
0:? 0.900000
|
||||||
|
0:45 move second child to first child (temp float)
|
||||||
|
0:45 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 1 (const int)
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 1.000000
|
||||||
|
0:47 Branch: Return with expression
|
||||||
|
0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_sSamp2d' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1D)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1D)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:? 'g_tTex3df4' (uniform texture3D)
|
||||||
|
0:? 'g_tTex3di4' (uniform itexture3D)
|
||||||
|
0:? 'g_tTex3du4' (uniform utexture3D)
|
||||||
|
0:? 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:? 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:? 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 119
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Sampled1D
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "txval20"
|
||||||
|
Name 12 "g_tTex2df4"
|
||||||
|
Name 16 "g_sSamp"
|
||||||
|
Name 29 "txval21"
|
||||||
|
Name 32 "g_tTex2di4"
|
||||||
|
Name 44 "txval22"
|
||||||
|
Name 47 "g_tTex2du4"
|
||||||
|
Name 56 "txval40"
|
||||||
|
Name 59 "g_tTexcdf4"
|
||||||
|
Name 67 "txval41"
|
||||||
|
Name 70 "g_tTexcdi4"
|
||||||
|
Name 77 "txval42"
|
||||||
|
Name 80 "g_tTexcdu4"
|
||||||
|
Name 90 "PS_OUTPUT"
|
||||||
|
MemberName 90(PS_OUTPUT) 0 "Color"
|
||||||
|
MemberName 90(PS_OUTPUT) 1 "Depth"
|
||||||
|
Name 92 "psout"
|
||||||
|
Name 99 "g_sSamp2d"
|
||||||
|
Name 102 "g_tTex1df4a"
|
||||||
|
Name 103 "g_tTex1df4"
|
||||||
|
Name 106 "g_tTex1di4"
|
||||||
|
Name 109 "g_tTex1du4"
|
||||||
|
Name 112 "g_tTex3df4"
|
||||||
|
Name 115 "g_tTex3di4"
|
||||||
|
Name 118 "g_tTex3du4"
|
||||||
|
Decorate 12(g_tTex2df4) DescriptorSet 0
|
||||||
|
Decorate 16(g_sSamp) DescriptorSet 0
|
||||||
|
Decorate 32(g_tTex2di4) DescriptorSet 0
|
||||||
|
Decorate 47(g_tTex2du4) DescriptorSet 0
|
||||||
|
Decorate 59(g_tTexcdf4) DescriptorSet 0
|
||||||
|
Decorate 70(g_tTexcdi4) DescriptorSet 0
|
||||||
|
Decorate 80(g_tTexcdu4) DescriptorSet 0
|
||||||
|
MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth
|
||||||
|
Decorate 99(g_sSamp2d) DescriptorSet 0
|
||||||
|
Decorate 102(g_tTex1df4a) DescriptorSet 0
|
||||||
|
Decorate 103(g_tTex1df4) DescriptorSet 0
|
||||||
|
Decorate 106(g_tTex1di4) DescriptorSet 0
|
||||||
|
Decorate 109(g_tTex1du4) DescriptorSet 0
|
||||||
|
Decorate 112(g_tTex3df4) DescriptorSet 0
|
||||||
|
Decorate 115(g_tTex3di4) DescriptorSet 0
|
||||||
|
Decorate 118(g_tTex3du4) DescriptorSet 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
|
11: TypePointer UniformConstant 10
|
||||||
|
12(g_tTex2df4): 11(ptr) Variable UniformConstant
|
||||||
|
14: TypeSampler
|
||||||
|
15: TypePointer UniformConstant 14
|
||||||
|
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||||
|
18: TypeSampledImage 10
|
||||||
|
20: TypeVector 6(float) 2
|
||||||
|
21: 6(float) Constant 1036831949
|
||||||
|
22: 6(float) Constant 1045220557
|
||||||
|
23: 20(fvec2) ConstantComposite 21 22
|
||||||
|
24: TypeInt 32 1
|
||||||
|
25: 24(int) Constant 0
|
||||||
|
27: TypeVector 24(int) 4
|
||||||
|
28: TypePointer Function 27(ivec4)
|
||||||
|
30: TypeImage 24(int) 2D sampled format:Unknown
|
||||||
|
31: TypePointer UniformConstant 30
|
||||||
|
32(g_tTex2di4): 31(ptr) Variable UniformConstant
|
||||||
|
35: TypeSampledImage 30
|
||||||
|
37: 6(float) Constant 1050253722
|
||||||
|
38: 6(float) Constant 1053609165
|
||||||
|
39: 20(fvec2) ConstantComposite 37 38
|
||||||
|
41: TypeInt 32 0
|
||||||
|
42: TypeVector 41(int) 4
|
||||||
|
43: TypePointer Function 42(ivec4)
|
||||||
|
45: TypeImage 41(int) 2D sampled format:Unknown
|
||||||
|
46: TypePointer UniformConstant 45
|
||||||
|
47(g_tTex2du4): 46(ptr) Variable UniformConstant
|
||||||
|
50: TypeSampledImage 45
|
||||||
|
52: 6(float) Constant 1056964608
|
||||||
|
53: 6(float) Constant 1058642330
|
||||||
|
54: 20(fvec2) ConstantComposite 52 53
|
||||||
|
57: TypeImage 6(float) Cube sampled format:Unknown
|
||||||
|
58: TypePointer UniformConstant 57
|
||||||
|
59(g_tTexcdf4): 58(ptr) Variable UniformConstant
|
||||||
|
62: TypeSampledImage 57
|
||||||
|
64: TypeVector 6(float) 3
|
||||||
|
65: 64(fvec3) ConstantComposite 21 22 37
|
||||||
|
68: TypeImage 24(int) Cube sampled format:Unknown
|
||||||
|
69: TypePointer UniformConstant 68
|
||||||
|
70(g_tTexcdi4): 69(ptr) Variable UniformConstant
|
||||||
|
73: TypeSampledImage 68
|
||||||
|
75: 64(fvec3) ConstantComposite 38 52 53
|
||||||
|
78: TypeImage 41(int) Cube sampled format:Unknown
|
||||||
|
79: TypePointer UniformConstant 78
|
||||||
|
80(g_tTexcdu4): 79(ptr) Variable UniformConstant
|
||||||
|
83: TypeSampledImage 78
|
||||||
|
85: 6(float) Constant 1060320051
|
||||||
|
86: 6(float) Constant 1061997773
|
||||||
|
87: 6(float) Constant 1063675494
|
||||||
|
88: 64(fvec3) ConstantComposite 85 86 87
|
||||||
|
90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
|
||||||
|
91: TypePointer Function 90(PS_OUTPUT)
|
||||||
|
93: 24(int) Constant 1
|
||||||
|
94: 6(float) Constant 1065353216
|
||||||
|
95: TypePointer Function 6(float)
|
||||||
|
99(g_sSamp2d): 15(ptr) Variable UniformConstant
|
||||||
|
100: TypeImage 6(float) 1D sampled format:Unknown
|
||||||
|
101: TypePointer UniformConstant 100
|
||||||
|
102(g_tTex1df4a): 101(ptr) Variable UniformConstant
|
||||||
|
103(g_tTex1df4): 101(ptr) Variable UniformConstant
|
||||||
|
104: TypeImage 24(int) 1D sampled format:Unknown
|
||||||
|
105: TypePointer UniformConstant 104
|
||||||
|
106(g_tTex1di4): 105(ptr) Variable UniformConstant
|
||||||
|
107: TypeImage 41(int) 1D sampled format:Unknown
|
||||||
|
108: TypePointer UniformConstant 107
|
||||||
|
109(g_tTex1du4): 108(ptr) Variable UniformConstant
|
||||||
|
110: TypeImage 6(float) 3D sampled format:Unknown
|
||||||
|
111: TypePointer UniformConstant 110
|
||||||
|
112(g_tTex3df4): 111(ptr) Variable UniformConstant
|
||||||
|
113: TypeImage 24(int) 3D sampled format:Unknown
|
||||||
|
114: TypePointer UniformConstant 113
|
||||||
|
115(g_tTex3di4): 114(ptr) Variable UniformConstant
|
||||||
|
116: TypeImage 41(int) 3D sampled format:Unknown
|
||||||
|
117: TypePointer UniformConstant 116
|
||||||
|
118(g_tTex3du4): 117(ptr) Variable UniformConstant
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(txval20): 8(ptr) Variable Function
|
||||||
|
29(txval21): 28(ptr) Variable Function
|
||||||
|
44(txval22): 43(ptr) Variable Function
|
||||||
|
56(txval40): 8(ptr) Variable Function
|
||||||
|
67(txval41): 28(ptr) Variable Function
|
||||||
|
77(txval42): 43(ptr) Variable Function
|
||||||
|
92(psout): 91(ptr) Variable Function
|
||||||
|
13: 10 Load 12(g_tTex2df4)
|
||||||
|
17: 14 Load 16(g_sSamp)
|
||||||
|
19: 18 SampledImage 13 17
|
||||||
|
26: 7(fvec4) ImageGather 19 23 25
|
||||||
|
Store 9(txval20) 26
|
||||||
|
33: 30 Load 32(g_tTex2di4)
|
||||||
|
34: 14 Load 16(g_sSamp)
|
||||||
|
36: 35 SampledImage 33 34
|
||||||
|
40: 27(ivec4) ImageGather 36 39 25
|
||||||
|
Store 29(txval21) 40
|
||||||
|
48: 45 Load 47(g_tTex2du4)
|
||||||
|
49: 14 Load 16(g_sSamp)
|
||||||
|
51: 50 SampledImage 48 49
|
||||||
|
55: 42(ivec4) ImageGather 51 54 25
|
||||||
|
Store 44(txval22) 55
|
||||||
|
60: 57 Load 59(g_tTexcdf4)
|
||||||
|
61: 14 Load 16(g_sSamp)
|
||||||
|
63: 62 SampledImage 60 61
|
||||||
|
66: 7(fvec4) ImageGather 63 65 25
|
||||||
|
Store 56(txval40) 66
|
||||||
|
71: 68 Load 70(g_tTexcdi4)
|
||||||
|
72: 14 Load 16(g_sSamp)
|
||||||
|
74: 73 SampledImage 71 72
|
||||||
|
76: 27(ivec4) ImageGather 74 75 25
|
||||||
|
Store 67(txval41) 76
|
||||||
|
81: 78 Load 80(g_tTexcdu4)
|
||||||
|
82: 14 Load 16(g_sSamp)
|
||||||
|
84: 83 SampledImage 81 82
|
||||||
|
89: 42(ivec4) ImageGather 84 88 25
|
||||||
|
Store 77(txval42) 89
|
||||||
|
96: 95(ptr) AccessChain 92(psout) 93
|
||||||
|
Store 96 94
|
||||||
|
97:90(PS_OUTPUT) Load 92(psout)
|
||||||
|
ReturnValue 97
|
||||||
|
FunctionEnd
|
374
Test/baseResults/hlsl.gather.basic.dx10.vert.out
Normal file
374
Test/baseResults/hlsl.gather.basic.dx10.vert.out
Normal file
@ -0,0 +1,374 @@
|
|||||||
|
hlsl.gather.basic.dx10.vert
|
||||||
|
Shader version: 450
|
||||||
|
0:? Sequence
|
||||||
|
0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
|
||||||
|
0:28 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:33 Sequence
|
||||||
|
0:33 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:33 'txval20' (temp 4-component vector of float)
|
||||||
|
0:33 textureGather (global 4-component vector of float)
|
||||||
|
0:33 Construct combined texture-sampler (temp sampler2D)
|
||||||
|
0:33 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:33 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:34 Sequence
|
||||||
|
0:34 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:34 'txval21' (temp 4-component vector of int)
|
||||||
|
0:34 textureGather (global 4-component vector of int)
|
||||||
|
0:34 Construct combined texture-sampler (temp isampler2D)
|
||||||
|
0:34 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:34 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:35 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:35 textureGather (global 4-component vector of uint)
|
||||||
|
0:35 Construct combined texture-sampler (temp usampler2D)
|
||||||
|
0:35 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:39 Sequence
|
||||||
|
0:39 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:39 'txval40' (temp 4-component vector of float)
|
||||||
|
0:39 textureGather (global 4-component vector of float)
|
||||||
|
0:39 Construct combined texture-sampler (temp samplerCube)
|
||||||
|
0:39 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:39 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:40 Sequence
|
||||||
|
0:40 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:40 'txval41' (temp 4-component vector of int)
|
||||||
|
0:40 textureGather (global 4-component vector of int)
|
||||||
|
0:40 Construct combined texture-sampler (temp isamplerCube)
|
||||||
|
0:40 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:40 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:41 Sequence
|
||||||
|
0:41 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:41 'txval42' (temp 4-component vector of uint)
|
||||||
|
0:41 textureGather (global 4-component vector of uint)
|
||||||
|
0:41 Construct combined texture-sampler (temp usamplerCube)
|
||||||
|
0:41 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
0:41 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.700000
|
||||||
|
0:? 0.800000
|
||||||
|
0:? 0.900000
|
||||||
|
0:43 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord)
|
||||||
|
0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
|
||||||
|
0:43 Constant:
|
||||||
|
0:43 0 (const int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.000000
|
||||||
|
0:45 Branch: Return with expression
|
||||||
|
0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_sSamp2d' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1D)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1D)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:? 'g_tTex3df4' (uniform texture3D)
|
||||||
|
0:? 'g_tTex3di4' (uniform itexture3D)
|
||||||
|
0:? 'g_tTex3du4' (uniform utexture3D)
|
||||||
|
0:? 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:? 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:? 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
0:? Sequence
|
||||||
|
0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
|
||||||
|
0:28 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:33 Sequence
|
||||||
|
0:33 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:33 'txval20' (temp 4-component vector of float)
|
||||||
|
0:33 textureGather (global 4-component vector of float)
|
||||||
|
0:33 Construct combined texture-sampler (temp sampler2D)
|
||||||
|
0:33 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:33 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:34 Sequence
|
||||||
|
0:34 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:34 'txval21' (temp 4-component vector of int)
|
||||||
|
0:34 textureGather (global 4-component vector of int)
|
||||||
|
0:34 Construct combined texture-sampler (temp isampler2D)
|
||||||
|
0:34 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:34 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:35 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:35 textureGather (global 4-component vector of uint)
|
||||||
|
0:35 Construct combined texture-sampler (temp usampler2D)
|
||||||
|
0:35 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:39 Sequence
|
||||||
|
0:39 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:39 'txval40' (temp 4-component vector of float)
|
||||||
|
0:39 textureGather (global 4-component vector of float)
|
||||||
|
0:39 Construct combined texture-sampler (temp samplerCube)
|
||||||
|
0:39 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:39 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:40 Sequence
|
||||||
|
0:40 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:40 'txval41' (temp 4-component vector of int)
|
||||||
|
0:40 textureGather (global 4-component vector of int)
|
||||||
|
0:40 Construct combined texture-sampler (temp isamplerCube)
|
||||||
|
0:40 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:40 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:41 Sequence
|
||||||
|
0:41 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:41 'txval42' (temp 4-component vector of uint)
|
||||||
|
0:41 textureGather (global 4-component vector of uint)
|
||||||
|
0:41 Construct combined texture-sampler (temp usamplerCube)
|
||||||
|
0:41 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
0:41 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.700000
|
||||||
|
0:? 0.800000
|
||||||
|
0:? 0.900000
|
||||||
|
0:43 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord)
|
||||||
|
0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
|
||||||
|
0:43 Constant:
|
||||||
|
0:43 0 (const int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.000000
|
||||||
|
0:45 Branch: Return with expression
|
||||||
|
0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_sSamp2d' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1D)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1D)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:? 'g_tTex3df4' (uniform texture3D)
|
||||||
|
0:? 'g_tTex3di4' (uniform itexture3D)
|
||||||
|
0:? 'g_tTex3du4' (uniform utexture3D)
|
||||||
|
0:? 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:? 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:? 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 118
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Sampled1D
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Vertex 4 "main"
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "txval20"
|
||||||
|
Name 12 "g_tTex2df4"
|
||||||
|
Name 16 "g_sSamp"
|
||||||
|
Name 29 "txval21"
|
||||||
|
Name 32 "g_tTex2di4"
|
||||||
|
Name 44 "txval22"
|
||||||
|
Name 47 "g_tTex2du4"
|
||||||
|
Name 56 "txval40"
|
||||||
|
Name 59 "g_tTexcdf4"
|
||||||
|
Name 67 "txval41"
|
||||||
|
Name 70 "g_tTexcdi4"
|
||||||
|
Name 77 "txval42"
|
||||||
|
Name 80 "g_tTexcdu4"
|
||||||
|
Name 90 "VS_OUTPUT"
|
||||||
|
MemberName 90(VS_OUTPUT) 0 "Pos"
|
||||||
|
Name 92 "vsout"
|
||||||
|
Name 98 "g_sSamp2d"
|
||||||
|
Name 101 "g_tTex1df4a"
|
||||||
|
Name 102 "g_tTex1df4"
|
||||||
|
Name 105 "g_tTex1di4"
|
||||||
|
Name 108 "g_tTex1du4"
|
||||||
|
Name 111 "g_tTex3df4"
|
||||||
|
Name 114 "g_tTex3di4"
|
||||||
|
Name 117 "g_tTex3du4"
|
||||||
|
Decorate 12(g_tTex2df4) DescriptorSet 0
|
||||||
|
Decorate 16(g_sSamp) DescriptorSet 0
|
||||||
|
Decorate 32(g_tTex2di4) DescriptorSet 0
|
||||||
|
Decorate 47(g_tTex2du4) DescriptorSet 0
|
||||||
|
Decorate 59(g_tTexcdf4) DescriptorSet 0
|
||||||
|
Decorate 70(g_tTexcdi4) DescriptorSet 0
|
||||||
|
Decorate 80(g_tTexcdu4) DescriptorSet 0
|
||||||
|
MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord
|
||||||
|
Decorate 98(g_sSamp2d) DescriptorSet 0
|
||||||
|
Decorate 101(g_tTex1df4a) DescriptorSet 0
|
||||||
|
Decorate 102(g_tTex1df4) DescriptorSet 0
|
||||||
|
Decorate 105(g_tTex1di4) DescriptorSet 0
|
||||||
|
Decorate 108(g_tTex1du4) DescriptorSet 0
|
||||||
|
Decorate 111(g_tTex3df4) DescriptorSet 0
|
||||||
|
Decorate 114(g_tTex3di4) DescriptorSet 0
|
||||||
|
Decorate 117(g_tTex3du4) DescriptorSet 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
|
11: TypePointer UniformConstant 10
|
||||||
|
12(g_tTex2df4): 11(ptr) Variable UniformConstant
|
||||||
|
14: TypeSampler
|
||||||
|
15: TypePointer UniformConstant 14
|
||||||
|
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||||
|
18: TypeSampledImage 10
|
||||||
|
20: TypeVector 6(float) 2
|
||||||
|
21: 6(float) Constant 1036831949
|
||||||
|
22: 6(float) Constant 1045220557
|
||||||
|
23: 20(fvec2) ConstantComposite 21 22
|
||||||
|
24: TypeInt 32 1
|
||||||
|
25: 24(int) Constant 0
|
||||||
|
27: TypeVector 24(int) 4
|
||||||
|
28: TypePointer Function 27(ivec4)
|
||||||
|
30: TypeImage 24(int) 2D sampled format:Unknown
|
||||||
|
31: TypePointer UniformConstant 30
|
||||||
|
32(g_tTex2di4): 31(ptr) Variable UniformConstant
|
||||||
|
35: TypeSampledImage 30
|
||||||
|
37: 6(float) Constant 1050253722
|
||||||
|
38: 6(float) Constant 1053609165
|
||||||
|
39: 20(fvec2) ConstantComposite 37 38
|
||||||
|
41: TypeInt 32 0
|
||||||
|
42: TypeVector 41(int) 4
|
||||||
|
43: TypePointer Function 42(ivec4)
|
||||||
|
45: TypeImage 41(int) 2D sampled format:Unknown
|
||||||
|
46: TypePointer UniformConstant 45
|
||||||
|
47(g_tTex2du4): 46(ptr) Variable UniformConstant
|
||||||
|
50: TypeSampledImage 45
|
||||||
|
52: 6(float) Constant 1056964608
|
||||||
|
53: 6(float) Constant 1058642330
|
||||||
|
54: 20(fvec2) ConstantComposite 52 53
|
||||||
|
57: TypeImage 6(float) Cube sampled format:Unknown
|
||||||
|
58: TypePointer UniformConstant 57
|
||||||
|
59(g_tTexcdf4): 58(ptr) Variable UniformConstant
|
||||||
|
62: TypeSampledImage 57
|
||||||
|
64: TypeVector 6(float) 3
|
||||||
|
65: 64(fvec3) ConstantComposite 21 22 37
|
||||||
|
68: TypeImage 24(int) Cube sampled format:Unknown
|
||||||
|
69: TypePointer UniformConstant 68
|
||||||
|
70(g_tTexcdi4): 69(ptr) Variable UniformConstant
|
||||||
|
73: TypeSampledImage 68
|
||||||
|
75: 64(fvec3) ConstantComposite 38 52 53
|
||||||
|
78: TypeImage 41(int) Cube sampled format:Unknown
|
||||||
|
79: TypePointer UniformConstant 78
|
||||||
|
80(g_tTexcdu4): 79(ptr) Variable UniformConstant
|
||||||
|
83: TypeSampledImage 78
|
||||||
|
85: 6(float) Constant 1060320051
|
||||||
|
86: 6(float) Constant 1061997773
|
||||||
|
87: 6(float) Constant 1063675494
|
||||||
|
88: 64(fvec3) ConstantComposite 85 86 87
|
||||||
|
90(VS_OUTPUT): TypeStruct 7(fvec4)
|
||||||
|
91: TypePointer Function 90(VS_OUTPUT)
|
||||||
|
93: 6(float) Constant 0
|
||||||
|
94: 7(fvec4) ConstantComposite 93 93 93 93
|
||||||
|
98(g_sSamp2d): 15(ptr) Variable UniformConstant
|
||||||
|
99: TypeImage 6(float) 1D sampled format:Unknown
|
||||||
|
100: TypePointer UniformConstant 99
|
||||||
|
101(g_tTex1df4a): 100(ptr) Variable UniformConstant
|
||||||
|
102(g_tTex1df4): 100(ptr) Variable UniformConstant
|
||||||
|
103: TypeImage 24(int) 1D sampled format:Unknown
|
||||||
|
104: TypePointer UniformConstant 103
|
||||||
|
105(g_tTex1di4): 104(ptr) Variable UniformConstant
|
||||||
|
106: TypeImage 41(int) 1D sampled format:Unknown
|
||||||
|
107: TypePointer UniformConstant 106
|
||||||
|
108(g_tTex1du4): 107(ptr) Variable UniformConstant
|
||||||
|
109: TypeImage 6(float) 3D sampled format:Unknown
|
||||||
|
110: TypePointer UniformConstant 109
|
||||||
|
111(g_tTex3df4): 110(ptr) Variable UniformConstant
|
||||||
|
112: TypeImage 24(int) 3D sampled format:Unknown
|
||||||
|
113: TypePointer UniformConstant 112
|
||||||
|
114(g_tTex3di4): 113(ptr) Variable UniformConstant
|
||||||
|
115: TypeImage 41(int) 3D sampled format:Unknown
|
||||||
|
116: TypePointer UniformConstant 115
|
||||||
|
117(g_tTex3du4): 116(ptr) Variable UniformConstant
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(txval20): 8(ptr) Variable Function
|
||||||
|
29(txval21): 28(ptr) Variable Function
|
||||||
|
44(txval22): 43(ptr) Variable Function
|
||||||
|
56(txval40): 8(ptr) Variable Function
|
||||||
|
67(txval41): 28(ptr) Variable Function
|
||||||
|
77(txval42): 43(ptr) Variable Function
|
||||||
|
92(vsout): 91(ptr) Variable Function
|
||||||
|
13: 10 Load 12(g_tTex2df4)
|
||||||
|
17: 14 Load 16(g_sSamp)
|
||||||
|
19: 18 SampledImage 13 17
|
||||||
|
26: 7(fvec4) ImageGather 19 23 25
|
||||||
|
Store 9(txval20) 26
|
||||||
|
33: 30 Load 32(g_tTex2di4)
|
||||||
|
34: 14 Load 16(g_sSamp)
|
||||||
|
36: 35 SampledImage 33 34
|
||||||
|
40: 27(ivec4) ImageGather 36 39 25
|
||||||
|
Store 29(txval21) 40
|
||||||
|
48: 45 Load 47(g_tTex2du4)
|
||||||
|
49: 14 Load 16(g_sSamp)
|
||||||
|
51: 50 SampledImage 48 49
|
||||||
|
55: 42(ivec4) ImageGather 51 54 25
|
||||||
|
Store 44(txval22) 55
|
||||||
|
60: 57 Load 59(g_tTexcdf4)
|
||||||
|
61: 14 Load 16(g_sSamp)
|
||||||
|
63: 62 SampledImage 60 61
|
||||||
|
66: 7(fvec4) ImageGather 63 65 25
|
||||||
|
Store 56(txval40) 66
|
||||||
|
71: 68 Load 70(g_tTexcdi4)
|
||||||
|
72: 14 Load 16(g_sSamp)
|
||||||
|
74: 73 SampledImage 71 72
|
||||||
|
76: 27(ivec4) ImageGather 74 75 25
|
||||||
|
Store 67(txval41) 76
|
||||||
|
81: 78 Load 80(g_tTexcdu4)
|
||||||
|
82: 14 Load 16(g_sSamp)
|
||||||
|
84: 83 SampledImage 81 82
|
||||||
|
89: 42(ivec4) ImageGather 84 88 25
|
||||||
|
Store 77(txval42) 89
|
||||||
|
95: 8(ptr) AccessChain 92(vsout) 25
|
||||||
|
Store 95 94
|
||||||
|
96:90(VS_OUTPUT) Load 92(vsout)
|
||||||
|
ReturnValue 96
|
||||||
|
FunctionEnd
|
294
Test/baseResults/hlsl.gather.offset.dx10.frag.out
Normal file
294
Test/baseResults/hlsl.gather.offset.dx10.frag.out
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
hlsl.gather.offset.dx10.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:28 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:33 Sequence
|
||||||
|
0:33 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:33 'txval20' (temp 4-component vector of float)
|
||||||
|
0:33 textureGatherOffset (global 4-component vector of float)
|
||||||
|
0:33 Construct combined texture-sampler (temp sampler2D)
|
||||||
|
0:33 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:33 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 0 (const int)
|
||||||
|
0:34 Sequence
|
||||||
|
0:34 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:34 'txval21' (temp 4-component vector of int)
|
||||||
|
0:34 textureGatherOffset (global 4-component vector of int)
|
||||||
|
0:34 Construct combined texture-sampler (temp isampler2D)
|
||||||
|
0:34 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:34 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:35 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:35 textureGatherOffset (global 4-component vector of uint)
|
||||||
|
0:35 Construct combined texture-sampler (temp usampler2D)
|
||||||
|
0:35 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? -1 (const int)
|
||||||
|
0:41 move second child to first child (temp float)
|
||||||
|
0:41 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:41 Constant:
|
||||||
|
0:41 1 (const int)
|
||||||
|
0:41 Constant:
|
||||||
|
0:41 1.000000
|
||||||
|
0:43 Branch: Return with expression
|
||||||
|
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1D)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1D)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:? 'g_tTex3df4' (uniform texture3D)
|
||||||
|
0:? 'g_tTex3di4' (uniform itexture3D)
|
||||||
|
0:? 'g_tTex3du4' (uniform utexture3D)
|
||||||
|
0:? 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:? 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:? 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:28 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:33 Sequence
|
||||||
|
0:33 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:33 'txval20' (temp 4-component vector of float)
|
||||||
|
0:33 textureGatherOffset (global 4-component vector of float)
|
||||||
|
0:33 Construct combined texture-sampler (temp sampler2D)
|
||||||
|
0:33 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:33 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 0 (const int)
|
||||||
|
0:34 Sequence
|
||||||
|
0:34 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:34 'txval21' (temp 4-component vector of int)
|
||||||
|
0:34 textureGatherOffset (global 4-component vector of int)
|
||||||
|
0:34 Construct combined texture-sampler (temp isampler2D)
|
||||||
|
0:34 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:34 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:35 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:35 textureGatherOffset (global 4-component vector of uint)
|
||||||
|
0:35 Construct combined texture-sampler (temp usampler2D)
|
||||||
|
0:35 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? -1 (const int)
|
||||||
|
0:41 move second child to first child (temp float)
|
||||||
|
0:41 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:41 Constant:
|
||||||
|
0:41 1 (const int)
|
||||||
|
0:41 Constant:
|
||||||
|
0:41 1.000000
|
||||||
|
0:43 Branch: Return with expression
|
||||||
|
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1D)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1D)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1D)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2D)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2D)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2D)
|
||||||
|
0:? 'g_tTex3df4' (uniform texture3D)
|
||||||
|
0:? 'g_tTex3di4' (uniform itexture3D)
|
||||||
|
0:? 'g_tTex3du4' (uniform utexture3D)
|
||||||
|
0:? 'g_tTexcdf4' (uniform textureCube)
|
||||||
|
0:? 'g_tTexcdi4' (uniform itextureCube)
|
||||||
|
0:? 'g_tTexcdu4' (uniform utextureCube)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 98
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Sampled1D
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "txval20"
|
||||||
|
Name 12 "g_tTex2df4"
|
||||||
|
Name 16 "g_sSamp"
|
||||||
|
Name 32 "txval21"
|
||||||
|
Name 35 "g_tTex2di4"
|
||||||
|
Name 48 "txval22"
|
||||||
|
Name 51 "g_tTex2du4"
|
||||||
|
Name 62 "PS_OUTPUT"
|
||||||
|
MemberName 62(PS_OUTPUT) 0 "Color"
|
||||||
|
MemberName 62(PS_OUTPUT) 1 "Depth"
|
||||||
|
Name 64 "psout"
|
||||||
|
Name 72 "g_tTex1df4a"
|
||||||
|
Name 73 "g_tTex1df4"
|
||||||
|
Name 76 "g_tTex1di4"
|
||||||
|
Name 79 "g_tTex1du4"
|
||||||
|
Name 82 "g_tTex3df4"
|
||||||
|
Name 85 "g_tTex3di4"
|
||||||
|
Name 88 "g_tTex3du4"
|
||||||
|
Name 91 "g_tTexcdf4"
|
||||||
|
Name 94 "g_tTexcdi4"
|
||||||
|
Name 97 "g_tTexcdu4"
|
||||||
|
Decorate 12(g_tTex2df4) DescriptorSet 0
|
||||||
|
Decorate 16(g_sSamp) DescriptorSet 0
|
||||||
|
Decorate 35(g_tTex2di4) DescriptorSet 0
|
||||||
|
Decorate 51(g_tTex2du4) DescriptorSet 0
|
||||||
|
MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth
|
||||||
|
Decorate 72(g_tTex1df4a) DescriptorSet 0
|
||||||
|
Decorate 73(g_tTex1df4) DescriptorSet 0
|
||||||
|
Decorate 76(g_tTex1di4) DescriptorSet 0
|
||||||
|
Decorate 79(g_tTex1du4) DescriptorSet 0
|
||||||
|
Decorate 82(g_tTex3df4) DescriptorSet 0
|
||||||
|
Decorate 85(g_tTex3di4) DescriptorSet 0
|
||||||
|
Decorate 88(g_tTex3du4) DescriptorSet 0
|
||||||
|
Decorate 91(g_tTexcdf4) DescriptorSet 0
|
||||||
|
Decorate 94(g_tTexcdi4) DescriptorSet 0
|
||||||
|
Decorate 97(g_tTexcdu4) DescriptorSet 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
|
11: TypePointer UniformConstant 10
|
||||||
|
12(g_tTex2df4): 11(ptr) Variable UniformConstant
|
||||||
|
14: TypeSampler
|
||||||
|
15: TypePointer UniformConstant 14
|
||||||
|
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||||
|
18: TypeSampledImage 10
|
||||||
|
20: TypeVector 6(float) 2
|
||||||
|
21: 6(float) Constant 1036831949
|
||||||
|
22: 6(float) Constant 1045220557
|
||||||
|
23: 20(fvec2) ConstantComposite 21 22
|
||||||
|
24: TypeInt 32 1
|
||||||
|
25: TypeVector 24(int) 2
|
||||||
|
26: 24(int) Constant 1
|
||||||
|
27: 24(int) Constant 0
|
||||||
|
28: 25(ivec2) ConstantComposite 26 27
|
||||||
|
30: TypeVector 24(int) 4
|
||||||
|
31: TypePointer Function 30(ivec4)
|
||||||
|
33: TypeImage 24(int) 2D sampled format:Unknown
|
||||||
|
34: TypePointer UniformConstant 33
|
||||||
|
35(g_tTex2di4): 34(ptr) Variable UniformConstant
|
||||||
|
38: TypeSampledImage 33
|
||||||
|
40: 6(float) Constant 1050253722
|
||||||
|
41: 6(float) Constant 1053609165
|
||||||
|
42: 20(fvec2) ConstantComposite 40 41
|
||||||
|
43: 25(ivec2) ConstantComposite 26 26
|
||||||
|
45: TypeInt 32 0
|
||||||
|
46: TypeVector 45(int) 4
|
||||||
|
47: TypePointer Function 46(ivec4)
|
||||||
|
49: TypeImage 45(int) 2D sampled format:Unknown
|
||||||
|
50: TypePointer UniformConstant 49
|
||||||
|
51(g_tTex2du4): 50(ptr) Variable UniformConstant
|
||||||
|
54: TypeSampledImage 49
|
||||||
|
56: 6(float) Constant 1056964608
|
||||||
|
57: 6(float) Constant 1058642330
|
||||||
|
58: 20(fvec2) ConstantComposite 56 57
|
||||||
|
59: 24(int) Constant 4294967295
|
||||||
|
60: 25(ivec2) ConstantComposite 26 59
|
||||||
|
62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
|
||||||
|
63: TypePointer Function 62(PS_OUTPUT)
|
||||||
|
65: 6(float) Constant 1065353216
|
||||||
|
66: TypePointer Function 6(float)
|
||||||
|
70: TypeImage 6(float) 1D sampled format:Unknown
|
||||||
|
71: TypePointer UniformConstant 70
|
||||||
|
72(g_tTex1df4a): 71(ptr) Variable UniformConstant
|
||||||
|
73(g_tTex1df4): 71(ptr) Variable UniformConstant
|
||||||
|
74: TypeImage 24(int) 1D sampled format:Unknown
|
||||||
|
75: TypePointer UniformConstant 74
|
||||||
|
76(g_tTex1di4): 75(ptr) Variable UniformConstant
|
||||||
|
77: TypeImage 45(int) 1D sampled format:Unknown
|
||||||
|
78: TypePointer UniformConstant 77
|
||||||
|
79(g_tTex1du4): 78(ptr) Variable UniformConstant
|
||||||
|
80: TypeImage 6(float) 3D sampled format:Unknown
|
||||||
|
81: TypePointer UniformConstant 80
|
||||||
|
82(g_tTex3df4): 81(ptr) Variable UniformConstant
|
||||||
|
83: TypeImage 24(int) 3D sampled format:Unknown
|
||||||
|
84: TypePointer UniformConstant 83
|
||||||
|
85(g_tTex3di4): 84(ptr) Variable UniformConstant
|
||||||
|
86: TypeImage 45(int) 3D sampled format:Unknown
|
||||||
|
87: TypePointer UniformConstant 86
|
||||||
|
88(g_tTex3du4): 87(ptr) Variable UniformConstant
|
||||||
|
89: TypeImage 6(float) Cube sampled format:Unknown
|
||||||
|
90: TypePointer UniformConstant 89
|
||||||
|
91(g_tTexcdf4): 90(ptr) Variable UniformConstant
|
||||||
|
92: TypeImage 24(int) Cube sampled format:Unknown
|
||||||
|
93: TypePointer UniformConstant 92
|
||||||
|
94(g_tTexcdi4): 93(ptr) Variable UniformConstant
|
||||||
|
95: TypeImage 45(int) Cube sampled format:Unknown
|
||||||
|
96: TypePointer UniformConstant 95
|
||||||
|
97(g_tTexcdu4): 96(ptr) Variable UniformConstant
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(txval20): 8(ptr) Variable Function
|
||||||
|
32(txval21): 31(ptr) Variable Function
|
||||||
|
48(txval22): 47(ptr) Variable Function
|
||||||
|
64(psout): 63(ptr) Variable Function
|
||||||
|
13: 10 Load 12(g_tTex2df4)
|
||||||
|
17: 14 Load 16(g_sSamp)
|
||||||
|
19: 18 SampledImage 13 17
|
||||||
|
29: 7(fvec4) ImageGather 19 23 27 ConstOffset 28
|
||||||
|
Store 9(txval20) 29
|
||||||
|
36: 33 Load 35(g_tTex2di4)
|
||||||
|
37: 14 Load 16(g_sSamp)
|
||||||
|
39: 38 SampledImage 36 37
|
||||||
|
44: 30(ivec4) ImageGather 39 42 27 ConstOffset 43
|
||||||
|
Store 32(txval21) 44
|
||||||
|
52: 49 Load 51(g_tTex2du4)
|
||||||
|
53: 14 Load 16(g_sSamp)
|
||||||
|
55: 54 SampledImage 52 53
|
||||||
|
61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60
|
||||||
|
Store 48(txval22) 61
|
||||||
|
67: 66(ptr) AccessChain 64(psout) 26
|
||||||
|
Store 67 65
|
||||||
|
68:62(PS_OUTPUT) Load 64(psout)
|
||||||
|
ReturnValue 68
|
||||||
|
FunctionEnd
|
259
Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
Normal file
259
Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
hlsl.gather.offsetarray.dx10.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:20 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:25 Sequence
|
||||||
|
0:25 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:25 'txval20' (temp 4-component vector of float)
|
||||||
|
0:25 textureGatherOffset (global 4-component vector of float)
|
||||||
|
0:25 Construct combined texture-sampler (temp sampler2DArray)
|
||||||
|
0:25 'g_tTex2df4' (uniform texture2DArray)
|
||||||
|
0:25 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 0 (const int)
|
||||||
|
0:26 Sequence
|
||||||
|
0:26 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:26 'txval21' (temp 4-component vector of int)
|
||||||
|
0:26 textureGatherOffset (global 4-component vector of int)
|
||||||
|
0:26 Construct combined texture-sampler (temp isampler2DArray)
|
||||||
|
0:26 'g_tTex2di4' (uniform itexture2DArray)
|
||||||
|
0:26 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:27 Sequence
|
||||||
|
0:27 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:27 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:27 textureGatherOffset (global 4-component vector of uint)
|
||||||
|
0:27 Construct combined texture-sampler (temp usampler2DArray)
|
||||||
|
0:27 'g_tTex2du4' (uniform utexture2DArray)
|
||||||
|
0:27 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? 0.700000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? -1 (const int)
|
||||||
|
0:33 move second child to first child (temp float)
|
||||||
|
0:33 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:33 Constant:
|
||||||
|
0:33 1 (const int)
|
||||||
|
0:33 Constant:
|
||||||
|
0:33 1.000000
|
||||||
|
0:35 Branch: Return with expression
|
||||||
|
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1DArray)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1DArray)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2DArray)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2DArray)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2DArray)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:20 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:25 Sequence
|
||||||
|
0:25 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:25 'txval20' (temp 4-component vector of float)
|
||||||
|
0:25 textureGatherOffset (global 4-component vector of float)
|
||||||
|
0:25 Construct combined texture-sampler (temp sampler2DArray)
|
||||||
|
0:25 'g_tTex2df4' (uniform texture2DArray)
|
||||||
|
0:25 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.100000
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 0 (const int)
|
||||||
|
0:26 Sequence
|
||||||
|
0:26 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:26 'txval21' (temp 4-component vector of int)
|
||||||
|
0:26 textureGatherOffset (global 4-component vector of int)
|
||||||
|
0:26 Construct combined texture-sampler (temp isampler2DArray)
|
||||||
|
0:26 'g_tTex2di4' (uniform itexture2DArray)
|
||||||
|
0:26 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:27 Sequence
|
||||||
|
0:27 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:27 'txval22' (temp 4-component vector of uint)
|
||||||
|
0:27 textureGatherOffset (global 4-component vector of uint)
|
||||||
|
0:27 Construct combined texture-sampler (temp usampler2DArray)
|
||||||
|
0:27 'g_tTex2du4' (uniform utexture2DArray)
|
||||||
|
0:27 'g_sSamp' (uniform sampler)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.600000
|
||||||
|
0:? 0.700000
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? -1 (const int)
|
||||||
|
0:33 move second child to first child (temp float)
|
||||||
|
0:33 Depth: direct index for structure (temp float FragDepth)
|
||||||
|
0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:33 Constant:
|
||||||
|
0:33 1 (const int)
|
||||||
|
0:33 Constant:
|
||||||
|
0:33 1.000000
|
||||||
|
0:35 Branch: Return with expression
|
||||||
|
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
|
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
|
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||||
|
0:? 'g_tTex1di4' (uniform itexture1DArray)
|
||||||
|
0:? 'g_tTex1du4' (uniform utexture1DArray)
|
||||||
|
0:? 'g_tTex2df4' (uniform texture2DArray)
|
||||||
|
0:? 'g_tTex2di4' (uniform itexture2DArray)
|
||||||
|
0:? 'g_tTex2du4' (uniform utexture2DArray)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 81
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Sampled1D
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "txval20"
|
||||||
|
Name 12 "g_tTex2df4"
|
||||||
|
Name 16 "g_sSamp"
|
||||||
|
Name 33 "txval21"
|
||||||
|
Name 36 "g_tTex2di4"
|
||||||
|
Name 48 "txval22"
|
||||||
|
Name 51 "g_tTex2du4"
|
||||||
|
Name 63 "PS_OUTPUT"
|
||||||
|
MemberName 63(PS_OUTPUT) 0 "Color"
|
||||||
|
MemberName 63(PS_OUTPUT) 1 "Depth"
|
||||||
|
Name 65 "psout"
|
||||||
|
Name 73 "g_tTex1df4a"
|
||||||
|
Name 74 "g_tTex1df4"
|
||||||
|
Name 77 "g_tTex1di4"
|
||||||
|
Name 80 "g_tTex1du4"
|
||||||
|
Decorate 12(g_tTex2df4) DescriptorSet 0
|
||||||
|
Decorate 16(g_sSamp) DescriptorSet 0
|
||||||
|
Decorate 36(g_tTex2di4) DescriptorSet 0
|
||||||
|
Decorate 51(g_tTex2du4) DescriptorSet 0
|
||||||
|
MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth
|
||||||
|
Decorate 73(g_tTex1df4a) DescriptorSet 0
|
||||||
|
Decorate 74(g_tTex1df4) DescriptorSet 0
|
||||||
|
Decorate 77(g_tTex1di4) DescriptorSet 0
|
||||||
|
Decorate 80(g_tTex1du4) DescriptorSet 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: TypeImage 6(float) 2D array sampled format:Unknown
|
||||||
|
11: TypePointer UniformConstant 10
|
||||||
|
12(g_tTex2df4): 11(ptr) Variable UniformConstant
|
||||||
|
14: TypeSampler
|
||||||
|
15: TypePointer UniformConstant 14
|
||||||
|
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||||
|
18: TypeSampledImage 10
|
||||||
|
20: TypeVector 6(float) 3
|
||||||
|
21: 6(float) Constant 1036831949
|
||||||
|
22: 6(float) Constant 1045220557
|
||||||
|
23: 6(float) Constant 1050253722
|
||||||
|
24: 20(fvec3) ConstantComposite 21 22 23
|
||||||
|
25: TypeInt 32 1
|
||||||
|
26: TypeVector 25(int) 2
|
||||||
|
27: 25(int) Constant 1
|
||||||
|
28: 25(int) Constant 0
|
||||||
|
29: 26(ivec2) ConstantComposite 27 28
|
||||||
|
31: TypeVector 25(int) 4
|
||||||
|
32: TypePointer Function 31(ivec4)
|
||||||
|
34: TypeImage 25(int) 2D array sampled format:Unknown
|
||||||
|
35: TypePointer UniformConstant 34
|
||||||
|
36(g_tTex2di4): 35(ptr) Variable UniformConstant
|
||||||
|
39: TypeSampledImage 34
|
||||||
|
41: 6(float) Constant 1053609165
|
||||||
|
42: 20(fvec3) ConstantComposite 23 41 41
|
||||||
|
43: 26(ivec2) ConstantComposite 27 27
|
||||||
|
45: TypeInt 32 0
|
||||||
|
46: TypeVector 45(int) 4
|
||||||
|
47: TypePointer Function 46(ivec4)
|
||||||
|
49: TypeImage 45(int) 2D array sampled format:Unknown
|
||||||
|
50: TypePointer UniformConstant 49
|
||||||
|
51(g_tTex2du4): 50(ptr) Variable UniformConstant
|
||||||
|
54: TypeSampledImage 49
|
||||||
|
56: 6(float) Constant 1056964608
|
||||||
|
57: 6(float) Constant 1058642330
|
||||||
|
58: 6(float) Constant 1060320051
|
||||||
|
59: 20(fvec3) ConstantComposite 56 57 58
|
||||||
|
60: 25(int) Constant 4294967295
|
||||||
|
61: 26(ivec2) ConstantComposite 27 60
|
||||||
|
63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
|
||||||
|
64: TypePointer Function 63(PS_OUTPUT)
|
||||||
|
66: 6(float) Constant 1065353216
|
||||||
|
67: TypePointer Function 6(float)
|
||||||
|
71: TypeImage 6(float) 1D array sampled format:Unknown
|
||||||
|
72: TypePointer UniformConstant 71
|
||||||
|
73(g_tTex1df4a): 72(ptr) Variable UniformConstant
|
||||||
|
74(g_tTex1df4): 72(ptr) Variable UniformConstant
|
||||||
|
75: TypeImage 25(int) 1D array sampled format:Unknown
|
||||||
|
76: TypePointer UniformConstant 75
|
||||||
|
77(g_tTex1di4): 76(ptr) Variable UniformConstant
|
||||||
|
78: TypeImage 45(int) 1D array sampled format:Unknown
|
||||||
|
79: TypePointer UniformConstant 78
|
||||||
|
80(g_tTex1du4): 79(ptr) Variable UniformConstant
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(txval20): 8(ptr) Variable Function
|
||||||
|
33(txval21): 32(ptr) Variable Function
|
||||||
|
48(txval22): 47(ptr) Variable Function
|
||||||
|
65(psout): 64(ptr) Variable Function
|
||||||
|
13: 10 Load 12(g_tTex2df4)
|
||||||
|
17: 14 Load 16(g_sSamp)
|
||||||
|
19: 18 SampledImage 13 17
|
||||||
|
30: 7(fvec4) ImageGather 19 24 28 ConstOffset 29
|
||||||
|
Store 9(txval20) 30
|
||||||
|
37: 34 Load 36(g_tTex2di4)
|
||||||
|
38: 14 Load 16(g_sSamp)
|
||||||
|
40: 39 SampledImage 37 38
|
||||||
|
44: 31(ivec4) ImageGather 40 42 28 ConstOffset 43
|
||||||
|
Store 33(txval21) 44
|
||||||
|
52: 49 Load 51(g_tTex2du4)
|
||||||
|
53: 14 Load 16(g_sSamp)
|
||||||
|
55: 54 SampledImage 52 53
|
||||||
|
62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61
|
||||||
|
Store 48(txval22) 62
|
||||||
|
68: 67(ptr) AccessChain 65(psout) 27
|
||||||
|
Store 68 66
|
||||||
|
69:63(PS_OUTPUT) Load 65(psout)
|
||||||
|
ReturnValue 69
|
||||||
|
FunctionEnd
|
@ -10,7 +10,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:27 'txval10' (temp 4-component vector of float)
|
0:27 'txval10' (temp 4-component vector of float)
|
||||||
0:27 textureLod (global 4-component vector of float)
|
0:27 textureLod (global 4-component vector of float)
|
||||||
0:27 Construct combined texture-sampler (temp sampler1DArray)
|
0:27 Construct combined texture-sampler (temp sampler1DArray)
|
||||||
0:27 'g_tTex1df4' (uniform texture1DArray)
|
0:27 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
0:27 'g_sSamp' (uniform sampler)
|
0:27 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.100000
|
0:? 0.100000
|
||||||
@ -22,7 +22,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:28 'txval11' (temp 4-component vector of int)
|
0:28 'txval11' (temp 4-component vector of int)
|
||||||
0:28 textureLod (global 4-component vector of int)
|
0:28 textureLod (global 4-component vector of int)
|
||||||
0:28 Construct combined texture-sampler (temp isampler1DArray)
|
0:28 Construct combined texture-sampler (temp isampler1DArray)
|
||||||
0:28 'g_tTex1di4' (uniform itexture1DArray)
|
0:28 'g_tTex1di4a' (uniform itexture1DArray)
|
||||||
0:28 'g_sSamp' (uniform sampler)
|
0:28 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.200000
|
0:? 0.200000
|
||||||
@ -34,7 +34,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:29 'txval12' (temp 4-component vector of uint)
|
0:29 'txval12' (temp 4-component vector of uint)
|
||||||
0:29 textureLod (global 4-component vector of uint)
|
0:29 textureLod (global 4-component vector of uint)
|
||||||
0:29 Construct combined texture-sampler (temp usampler1DArray)
|
0:29 Construct combined texture-sampler (temp usampler1DArray)
|
||||||
0:29 'g_tTex1du4' (uniform utexture1DArray)
|
0:29 'g_tTex1du4a' (uniform utexture1DArray)
|
||||||
0:29 'g_sSamp' (uniform sampler)
|
0:29 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.300000
|
0:? 0.300000
|
||||||
@ -46,7 +46,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:31 'txval20' (temp 4-component vector of float)
|
0:31 'txval20' (temp 4-component vector of float)
|
||||||
0:31 textureLod (global 4-component vector of float)
|
0:31 textureLod (global 4-component vector of float)
|
||||||
0:31 Construct combined texture-sampler (temp sampler2DArray)
|
0:31 Construct combined texture-sampler (temp sampler2DArray)
|
||||||
0:31 'g_tTex2df4' (uniform texture2DArray)
|
0:31 'g_tTex2df4a' (uniform texture2DArray)
|
||||||
0:31 'g_sSamp' (uniform sampler)
|
0:31 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.100000
|
0:? 0.100000
|
||||||
@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:32 'txval21' (temp 4-component vector of int)
|
0:32 'txval21' (temp 4-component vector of int)
|
||||||
0:32 textureLod (global 4-component vector of int)
|
0:32 textureLod (global 4-component vector of int)
|
||||||
0:32 Construct combined texture-sampler (temp isampler2DArray)
|
0:32 Construct combined texture-sampler (temp isampler2DArray)
|
||||||
0:32 'g_tTex2di4' (uniform itexture2DArray)
|
0:32 'g_tTex2di4a' (uniform itexture2DArray)
|
||||||
0:32 'g_sSamp' (uniform sampler)
|
0:32 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.300000
|
0:? 0.300000
|
||||||
@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:33 'txval22' (temp 4-component vector of uint)
|
0:33 'txval22' (temp 4-component vector of uint)
|
||||||
0:33 textureLod (global 4-component vector of uint)
|
0:33 textureLod (global 4-component vector of uint)
|
||||||
0:33 Construct combined texture-sampler (temp usampler2DArray)
|
0:33 Construct combined texture-sampler (temp usampler2DArray)
|
||||||
0:33 'g_tTex2du4' (uniform utexture2DArray)
|
0:33 'g_tTex2du4a' (uniform utexture2DArray)
|
||||||
0:33 'g_sSamp' (uniform sampler)
|
0:33 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.500000
|
0:? 0.500000
|
||||||
@ -85,7 +85,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:35 'txval40' (temp 4-component vector of float)
|
0:35 'txval40' (temp 4-component vector of float)
|
||||||
0:35 textureLod (global 4-component vector of float)
|
0:35 textureLod (global 4-component vector of float)
|
||||||
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
||||||
0:35 'g_tTexcdf4' (uniform textureCubeArray)
|
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||||
0:35 'g_sSamp' (uniform sampler)
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.100000
|
0:? 0.100000
|
||||||
@ -99,7 +99,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:36 'txval41' (temp 4-component vector of int)
|
0:36 'txval41' (temp 4-component vector of int)
|
||||||
0:36 textureLod (global 4-component vector of int)
|
0:36 textureLod (global 4-component vector of int)
|
||||||
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
||||||
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
|
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||||
0:36 'g_sSamp' (uniform sampler)
|
0:36 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.400000
|
0:? 0.400000
|
||||||
@ -113,7 +113,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:37 'txval42' (temp 4-component vector of uint)
|
0:37 'txval42' (temp 4-component vector of uint)
|
||||||
0:37 textureLod (global 4-component vector of uint)
|
0:37 textureLod (global 4-component vector of uint)
|
||||||
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
||||||
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
|
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||||
0:37 'g_sSamp' (uniform sampler)
|
0:37 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.700000
|
0:? 0.700000
|
||||||
@ -135,14 +135,14 @@ gl_FragCoord origin is upper left
|
|||||||
0:? 'g_sSamp' (uniform sampler)
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
0:? 'g_tTex1df4' (uniform texture1DArray)
|
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||||
0:? 'g_tTex1di4' (uniform itexture1DArray)
|
0:? 'g_tTex1di4a' (uniform itexture1DArray)
|
||||||
0:? 'g_tTex1du4' (uniform utexture1DArray)
|
0:? 'g_tTex1du4a' (uniform utexture1DArray)
|
||||||
0:? 'g_tTex2df4' (uniform texture2DArray)
|
0:? 'g_tTex2df4a' (uniform texture2DArray)
|
||||||
0:? 'g_tTex2di4' (uniform itexture2DArray)
|
0:? 'g_tTex2di4a' (uniform itexture2DArray)
|
||||||
0:? 'g_tTex2du4' (uniform utexture2DArray)
|
0:? 'g_tTex2du4a' (uniform utexture2DArray)
|
||||||
0:? 'g_tTexcdf4' (uniform textureCubeArray)
|
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||||
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
|
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||||
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
|
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -159,7 +159,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:27 'txval10' (temp 4-component vector of float)
|
0:27 'txval10' (temp 4-component vector of float)
|
||||||
0:27 textureLod (global 4-component vector of float)
|
0:27 textureLod (global 4-component vector of float)
|
||||||
0:27 Construct combined texture-sampler (temp sampler1DArray)
|
0:27 Construct combined texture-sampler (temp sampler1DArray)
|
||||||
0:27 'g_tTex1df4' (uniform texture1DArray)
|
0:27 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
0:27 'g_sSamp' (uniform sampler)
|
0:27 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.100000
|
0:? 0.100000
|
||||||
@ -171,7 +171,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:28 'txval11' (temp 4-component vector of int)
|
0:28 'txval11' (temp 4-component vector of int)
|
||||||
0:28 textureLod (global 4-component vector of int)
|
0:28 textureLod (global 4-component vector of int)
|
||||||
0:28 Construct combined texture-sampler (temp isampler1DArray)
|
0:28 Construct combined texture-sampler (temp isampler1DArray)
|
||||||
0:28 'g_tTex1di4' (uniform itexture1DArray)
|
0:28 'g_tTex1di4a' (uniform itexture1DArray)
|
||||||
0:28 'g_sSamp' (uniform sampler)
|
0:28 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.200000
|
0:? 0.200000
|
||||||
@ -183,7 +183,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:29 'txval12' (temp 4-component vector of uint)
|
0:29 'txval12' (temp 4-component vector of uint)
|
||||||
0:29 textureLod (global 4-component vector of uint)
|
0:29 textureLod (global 4-component vector of uint)
|
||||||
0:29 Construct combined texture-sampler (temp usampler1DArray)
|
0:29 Construct combined texture-sampler (temp usampler1DArray)
|
||||||
0:29 'g_tTex1du4' (uniform utexture1DArray)
|
0:29 'g_tTex1du4a' (uniform utexture1DArray)
|
||||||
0:29 'g_sSamp' (uniform sampler)
|
0:29 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.300000
|
0:? 0.300000
|
||||||
@ -195,7 +195,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:31 'txval20' (temp 4-component vector of float)
|
0:31 'txval20' (temp 4-component vector of float)
|
||||||
0:31 textureLod (global 4-component vector of float)
|
0:31 textureLod (global 4-component vector of float)
|
||||||
0:31 Construct combined texture-sampler (temp sampler2DArray)
|
0:31 Construct combined texture-sampler (temp sampler2DArray)
|
||||||
0:31 'g_tTex2df4' (uniform texture2DArray)
|
0:31 'g_tTex2df4a' (uniform texture2DArray)
|
||||||
0:31 'g_sSamp' (uniform sampler)
|
0:31 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.100000
|
0:? 0.100000
|
||||||
@ -208,7 +208,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:32 'txval21' (temp 4-component vector of int)
|
0:32 'txval21' (temp 4-component vector of int)
|
||||||
0:32 textureLod (global 4-component vector of int)
|
0:32 textureLod (global 4-component vector of int)
|
||||||
0:32 Construct combined texture-sampler (temp isampler2DArray)
|
0:32 Construct combined texture-sampler (temp isampler2DArray)
|
||||||
0:32 'g_tTex2di4' (uniform itexture2DArray)
|
0:32 'g_tTex2di4a' (uniform itexture2DArray)
|
||||||
0:32 'g_sSamp' (uniform sampler)
|
0:32 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.300000
|
0:? 0.300000
|
||||||
@ -221,7 +221,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:33 'txval22' (temp 4-component vector of uint)
|
0:33 'txval22' (temp 4-component vector of uint)
|
||||||
0:33 textureLod (global 4-component vector of uint)
|
0:33 textureLod (global 4-component vector of uint)
|
||||||
0:33 Construct combined texture-sampler (temp usampler2DArray)
|
0:33 Construct combined texture-sampler (temp usampler2DArray)
|
||||||
0:33 'g_tTex2du4' (uniform utexture2DArray)
|
0:33 'g_tTex2du4a' (uniform utexture2DArray)
|
||||||
0:33 'g_sSamp' (uniform sampler)
|
0:33 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.500000
|
0:? 0.500000
|
||||||
@ -234,7 +234,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:35 'txval40' (temp 4-component vector of float)
|
0:35 'txval40' (temp 4-component vector of float)
|
||||||
0:35 textureLod (global 4-component vector of float)
|
0:35 textureLod (global 4-component vector of float)
|
||||||
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
||||||
0:35 'g_tTexcdf4' (uniform textureCubeArray)
|
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||||
0:35 'g_sSamp' (uniform sampler)
|
0:35 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.100000
|
0:? 0.100000
|
||||||
@ -248,7 +248,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:36 'txval41' (temp 4-component vector of int)
|
0:36 'txval41' (temp 4-component vector of int)
|
||||||
0:36 textureLod (global 4-component vector of int)
|
0:36 textureLod (global 4-component vector of int)
|
||||||
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
||||||
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
|
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||||
0:36 'g_sSamp' (uniform sampler)
|
0:36 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.400000
|
0:? 0.400000
|
||||||
@ -262,7 +262,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:37 'txval42' (temp 4-component vector of uint)
|
0:37 'txval42' (temp 4-component vector of uint)
|
||||||
0:37 textureLod (global 4-component vector of uint)
|
0:37 textureLod (global 4-component vector of uint)
|
||||||
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
||||||
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
|
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||||
0:37 'g_sSamp' (uniform sampler)
|
0:37 'g_sSamp' (uniform sampler)
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 0.700000
|
0:? 0.700000
|
||||||
@ -284,14 +284,14 @@ gl_FragCoord origin is upper left
|
|||||||
0:? 'g_sSamp' (uniform sampler)
|
0:? 'g_sSamp' (uniform sampler)
|
||||||
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||||
0:? 'g_tTex1df4' (uniform texture1DArray)
|
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||||
0:? 'g_tTex1di4' (uniform itexture1DArray)
|
0:? 'g_tTex1di4a' (uniform itexture1DArray)
|
||||||
0:? 'g_tTex1du4' (uniform utexture1DArray)
|
0:? 'g_tTex1du4a' (uniform utexture1DArray)
|
||||||
0:? 'g_tTex2df4' (uniform texture2DArray)
|
0:? 'g_tTex2df4a' (uniform texture2DArray)
|
||||||
0:? 'g_tTex2di4' (uniform itexture2DArray)
|
0:? 'g_tTex2di4a' (uniform itexture2DArray)
|
||||||
0:? 'g_tTex2du4' (uniform utexture2DArray)
|
0:? 'g_tTex2du4a' (uniform utexture2DArray)
|
||||||
0:? 'g_tTexcdf4' (uniform textureCubeArray)
|
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||||
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
|
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||||
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
|
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
@ -307,41 +307,41 @@ gl_FragCoord origin is upper left
|
|||||||
Source HLSL 450
|
Source HLSL 450
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "txval10"
|
Name 9 "txval10"
|
||||||
Name 12 "g_tTex1df4"
|
Name 12 "g_tTex1df4a"
|
||||||
Name 16 "g_sSamp"
|
Name 16 "g_sSamp"
|
||||||
Name 29 "txval11"
|
Name 29 "txval11"
|
||||||
Name 32 "g_tTex1di4"
|
Name 32 "g_tTex1di4a"
|
||||||
Name 43 "txval12"
|
Name 43 "txval12"
|
||||||
Name 46 "g_tTex1du4"
|
Name 46 "g_tTex1du4a"
|
||||||
Name 54 "txval20"
|
Name 54 "txval20"
|
||||||
Name 57 "g_tTex2df4"
|
Name 57 "g_tTex2df4a"
|
||||||
Name 65 "txval21"
|
Name 65 "txval21"
|
||||||
Name 68 "g_tTex2di4"
|
Name 68 "g_tTex2di4a"
|
||||||
Name 76 "txval22"
|
Name 76 "txval22"
|
||||||
Name 79 "g_tTex2du4"
|
Name 79 "g_tTex2du4a"
|
||||||
Name 88 "txval40"
|
Name 88 "txval40"
|
||||||
Name 91 "g_tTexcdf4"
|
Name 91 "g_tTexcdf4a"
|
||||||
Name 98 "txval41"
|
Name 98 "txval41"
|
||||||
Name 101 "g_tTexcdi4"
|
Name 101 "g_tTexcdi4a"
|
||||||
Name 108 "txval42"
|
Name 108 "txval42"
|
||||||
Name 111 "g_tTexcdu4"
|
Name 111 "g_tTexcdu4a"
|
||||||
Name 121 "PS_OUTPUT"
|
Name 121 "PS_OUTPUT"
|
||||||
MemberName 121(PS_OUTPUT) 0 "Color"
|
MemberName 121(PS_OUTPUT) 0 "Color"
|
||||||
MemberName 121(PS_OUTPUT) 1 "Depth"
|
MemberName 121(PS_OUTPUT) 1 "Depth"
|
||||||
Name 123 "psout"
|
Name 123 "psout"
|
||||||
Name 129 "g_tTex1df4a"
|
Name 129 "g_tTex1df4"
|
||||||
Decorate 12(g_tTex1df4) DescriptorSet 0
|
Decorate 12(g_tTex1df4a) DescriptorSet 0
|
||||||
Decorate 16(g_sSamp) DescriptorSet 0
|
Decorate 16(g_sSamp) DescriptorSet 0
|
||||||
Decorate 32(g_tTex1di4) DescriptorSet 0
|
Decorate 32(g_tTex1di4a) DescriptorSet 0
|
||||||
Decorate 46(g_tTex1du4) DescriptorSet 0
|
Decorate 46(g_tTex1du4a) DescriptorSet 0
|
||||||
Decorate 57(g_tTex2df4) DescriptorSet 0
|
Decorate 57(g_tTex2df4a) DescriptorSet 0
|
||||||
Decorate 68(g_tTex2di4) DescriptorSet 0
|
Decorate 68(g_tTex2di4a) DescriptorSet 0
|
||||||
Decorate 79(g_tTex2du4) DescriptorSet 0
|
Decorate 79(g_tTex2du4a) DescriptorSet 0
|
||||||
Decorate 91(g_tTexcdf4) DescriptorSet 0
|
Decorate 91(g_tTexcdf4a) DescriptorSet 0
|
||||||
Decorate 101(g_tTexcdi4) DescriptorSet 0
|
Decorate 101(g_tTexcdi4a) DescriptorSet 0
|
||||||
Decorate 111(g_tTexcdu4) DescriptorSet 0
|
Decorate 111(g_tTexcdu4a) DescriptorSet 0
|
||||||
MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth
|
MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth
|
||||||
Decorate 129(g_tTex1df4a) DescriptorSet 0
|
Decorate 129(g_tTex1df4) DescriptorSet 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -349,7 +349,7 @@ gl_FragCoord origin is upper left
|
|||||||
8: TypePointer Function 7(fvec4)
|
8: TypePointer Function 7(fvec4)
|
||||||
10: TypeImage 6(float) 1D array sampled format:Unknown
|
10: TypeImage 6(float) 1D array sampled format:Unknown
|
||||||
11: TypePointer UniformConstant 10
|
11: TypePointer UniformConstant 10
|
||||||
12(g_tTex1df4): 11(ptr) Variable UniformConstant
|
12(g_tTex1df4a): 11(ptr) Variable UniformConstant
|
||||||
14: TypeSampler
|
14: TypeSampler
|
||||||
15: TypePointer UniformConstant 14
|
15: TypePointer UniformConstant 14
|
||||||
16(g_sSamp): 15(ptr) Variable UniformConstant
|
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||||
@ -364,7 +364,7 @@ gl_FragCoord origin is upper left
|
|||||||
28: TypePointer Function 27(ivec4)
|
28: TypePointer Function 27(ivec4)
|
||||||
30: TypeImage 26(int) 1D array sampled format:Unknown
|
30: TypeImage 26(int) 1D array sampled format:Unknown
|
||||||
31: TypePointer UniformConstant 30
|
31: TypePointer UniformConstant 30
|
||||||
32(g_tTex1di4): 31(ptr) Variable UniformConstant
|
32(g_tTex1di4a): 31(ptr) Variable UniformConstant
|
||||||
35: TypeSampledImage 30
|
35: TypeSampledImage 30
|
||||||
37: 6(float) Constant 1050253722
|
37: 6(float) Constant 1050253722
|
||||||
38: 20(fvec2) ConstantComposite 22 37
|
38: 20(fvec2) ConstantComposite 22 37
|
||||||
@ -373,42 +373,42 @@ gl_FragCoord origin is upper left
|
|||||||
42: TypePointer Function 41(ivec4)
|
42: TypePointer Function 41(ivec4)
|
||||||
44: TypeImage 40(int) 1D array sampled format:Unknown
|
44: TypeImage 40(int) 1D array sampled format:Unknown
|
||||||
45: TypePointer UniformConstant 44
|
45: TypePointer UniformConstant 44
|
||||||
46(g_tTex1du4): 45(ptr) Variable UniformConstant
|
46(g_tTex1du4a): 45(ptr) Variable UniformConstant
|
||||||
49: TypeSampledImage 44
|
49: TypeSampledImage 44
|
||||||
51: 6(float) Constant 1053609165
|
51: 6(float) Constant 1053609165
|
||||||
52: 20(fvec2) ConstantComposite 37 51
|
52: 20(fvec2) ConstantComposite 37 51
|
||||||
55: TypeImage 6(float) 2D array sampled format:Unknown
|
55: TypeImage 6(float) 2D array sampled format:Unknown
|
||||||
56: TypePointer UniformConstant 55
|
56: TypePointer UniformConstant 55
|
||||||
57(g_tTex2df4): 56(ptr) Variable UniformConstant
|
57(g_tTex2df4a): 56(ptr) Variable UniformConstant
|
||||||
60: TypeSampledImage 55
|
60: TypeSampledImage 55
|
||||||
62: TypeVector 6(float) 3
|
62: TypeVector 6(float) 3
|
||||||
63: 62(fvec3) ConstantComposite 21 22 37
|
63: 62(fvec3) ConstantComposite 21 22 37
|
||||||
66: TypeImage 26(int) 2D array sampled format:Unknown
|
66: TypeImage 26(int) 2D array sampled format:Unknown
|
||||||
67: TypePointer UniformConstant 66
|
67: TypePointer UniformConstant 66
|
||||||
68(g_tTex2di4): 67(ptr) Variable UniformConstant
|
68(g_tTex2di4a): 67(ptr) Variable UniformConstant
|
||||||
71: TypeSampledImage 66
|
71: TypeSampledImage 66
|
||||||
73: 6(float) Constant 1056964608
|
73: 6(float) Constant 1056964608
|
||||||
74: 62(fvec3) ConstantComposite 37 51 73
|
74: 62(fvec3) ConstantComposite 37 51 73
|
||||||
77: TypeImage 40(int) 2D array sampled format:Unknown
|
77: TypeImage 40(int) 2D array sampled format:Unknown
|
||||||
78: TypePointer UniformConstant 77
|
78: TypePointer UniformConstant 77
|
||||||
79(g_tTex2du4): 78(ptr) Variable UniformConstant
|
79(g_tTex2du4a): 78(ptr) Variable UniformConstant
|
||||||
82: TypeSampledImage 77
|
82: TypeSampledImage 77
|
||||||
84: 6(float) Constant 1058642330
|
84: 6(float) Constant 1058642330
|
||||||
85: 6(float) Constant 1060320051
|
85: 6(float) Constant 1060320051
|
||||||
86: 62(fvec3) ConstantComposite 73 84 85
|
86: 62(fvec3) ConstantComposite 73 84 85
|
||||||
89: TypeImage 6(float) Cube array sampled format:Unknown
|
89: TypeImage 6(float) Cube array sampled format:Unknown
|
||||||
90: TypePointer UniformConstant 89
|
90: TypePointer UniformConstant 89
|
||||||
91(g_tTexcdf4): 90(ptr) Variable UniformConstant
|
91(g_tTexcdf4a): 90(ptr) Variable UniformConstant
|
||||||
94: TypeSampledImage 89
|
94: TypeSampledImage 89
|
||||||
96: 7(fvec4) ConstantComposite 21 22 37 51
|
96: 7(fvec4) ConstantComposite 21 22 37 51
|
||||||
99: TypeImage 26(int) Cube array sampled format:Unknown
|
99: TypeImage 26(int) Cube array sampled format:Unknown
|
||||||
100: TypePointer UniformConstant 99
|
100: TypePointer UniformConstant 99
|
||||||
101(g_tTexcdi4): 100(ptr) Variable UniformConstant
|
101(g_tTexcdi4a): 100(ptr) Variable UniformConstant
|
||||||
104: TypeSampledImage 99
|
104: TypeSampledImage 99
|
||||||
106: 7(fvec4) ConstantComposite 51 73 84 85
|
106: 7(fvec4) ConstantComposite 51 73 84 85
|
||||||
109: TypeImage 40(int) Cube array sampled format:Unknown
|
109: TypeImage 40(int) Cube array sampled format:Unknown
|
||||||
110: TypePointer UniformConstant 109
|
110: TypePointer UniformConstant 109
|
||||||
111(g_tTexcdu4): 110(ptr) Variable UniformConstant
|
111(g_tTexcdu4a): 110(ptr) Variable UniformConstant
|
||||||
114: TypeSampledImage 109
|
114: TypeSampledImage 109
|
||||||
116: 6(float) Constant 1061997773
|
116: 6(float) Constant 1061997773
|
||||||
117: 6(float) Constant 1063675494
|
117: 6(float) Constant 1063675494
|
||||||
@ -418,7 +418,7 @@ gl_FragCoord origin is upper left
|
|||||||
122: TypePointer Function 121(PS_OUTPUT)
|
122: TypePointer Function 121(PS_OUTPUT)
|
||||||
124: 26(int) Constant 1
|
124: 26(int) Constant 1
|
||||||
125: TypePointer Function 6(float)
|
125: TypePointer Function 6(float)
|
||||||
129(g_tTex1df4a): 11(ptr) Variable UniformConstant
|
129(g_tTex1df4): 11(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(txval10): 8(ptr) Variable Function
|
9(txval10): 8(ptr) Variable Function
|
||||||
@ -431,47 +431,47 @@ gl_FragCoord origin is upper left
|
|||||||
98(txval41): 28(ptr) Variable Function
|
98(txval41): 28(ptr) Variable Function
|
||||||
108(txval42): 42(ptr) Variable Function
|
108(txval42): 42(ptr) Variable Function
|
||||||
123(psout): 122(ptr) Variable Function
|
123(psout): 122(ptr) Variable Function
|
||||||
13: 10 Load 12(g_tTex1df4)
|
13: 10 Load 12(g_tTex1df4a)
|
||||||
17: 14 Load 16(g_sSamp)
|
17: 14 Load 16(g_sSamp)
|
||||||
19: 18 SampledImage 13 17
|
19: 18 SampledImage 13 17
|
||||||
25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24
|
25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24
|
||||||
Store 9(txval10) 25
|
Store 9(txval10) 25
|
||||||
33: 30 Load 32(g_tTex1di4)
|
33: 30 Load 32(g_tTex1di4a)
|
||||||
34: 14 Load 16(g_sSamp)
|
34: 14 Load 16(g_sSamp)
|
||||||
36: 35 SampledImage 33 34
|
36: 35 SampledImage 33 34
|
||||||
39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24
|
39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24
|
||||||
Store 29(txval11) 39
|
Store 29(txval11) 39
|
||||||
47: 44 Load 46(g_tTex1du4)
|
47: 44 Load 46(g_tTex1du4a)
|
||||||
48: 14 Load 16(g_sSamp)
|
48: 14 Load 16(g_sSamp)
|
||||||
50: 49 SampledImage 47 48
|
50: 49 SampledImage 47 48
|
||||||
53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24
|
53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24
|
||||||
Store 43(txval12) 53
|
Store 43(txval12) 53
|
||||||
58: 55 Load 57(g_tTex2df4)
|
58: 55 Load 57(g_tTex2df4a)
|
||||||
59: 14 Load 16(g_sSamp)
|
59: 14 Load 16(g_sSamp)
|
||||||
61: 60 SampledImage 58 59
|
61: 60 SampledImage 58 59
|
||||||
64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24
|
64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24
|
||||||
Store 54(txval20) 64
|
Store 54(txval20) 64
|
||||||
69: 66 Load 68(g_tTex2di4)
|
69: 66 Load 68(g_tTex2di4a)
|
||||||
70: 14 Load 16(g_sSamp)
|
70: 14 Load 16(g_sSamp)
|
||||||
72: 71 SampledImage 69 70
|
72: 71 SampledImage 69 70
|
||||||
75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24
|
75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24
|
||||||
Store 65(txval21) 75
|
Store 65(txval21) 75
|
||||||
80: 77 Load 79(g_tTex2du4)
|
80: 77 Load 79(g_tTex2du4a)
|
||||||
81: 14 Load 16(g_sSamp)
|
81: 14 Load 16(g_sSamp)
|
||||||
83: 82 SampledImage 80 81
|
83: 82 SampledImage 80 81
|
||||||
87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24
|
87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24
|
||||||
Store 76(txval22) 87
|
Store 76(txval22) 87
|
||||||
92: 89 Load 91(g_tTexcdf4)
|
92: 89 Load 91(g_tTexcdf4a)
|
||||||
93: 14 Load 16(g_sSamp)
|
93: 14 Load 16(g_sSamp)
|
||||||
95: 94 SampledImage 92 93
|
95: 94 SampledImage 92 93
|
||||||
97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24
|
97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24
|
||||||
Store 88(txval40) 97
|
Store 88(txval40) 97
|
||||||
102: 99 Load 101(g_tTexcdi4)
|
102: 99 Load 101(g_tTexcdi4a)
|
||||||
103: 14 Load 16(g_sSamp)
|
103: 14 Load 16(g_sSamp)
|
||||||
105: 104 SampledImage 102 103
|
105: 104 SampledImage 102 103
|
||||||
107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24
|
107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24
|
||||||
Store 98(txval41) 107
|
Store 98(txval41) 107
|
||||||
112: 109 Load 111(g_tTexcdu4)
|
112: 109 Load 111(g_tTexcdu4a)
|
||||||
113: 14 Load 16(g_sSamp)
|
113: 14 Load 16(g_sSamp)
|
||||||
115: 114 SampledImage 112 113
|
115: 114 SampledImage 112 113
|
||||||
120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24
|
120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24
|
||||||
|
43
Test/hlsl.gather.array.dx10.frag
Normal file
43
Test/hlsl.gather.array.dx10.frag
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
SamplerState g_sSamp : register(s0);
|
||||||
|
|
||||||
|
Texture1DArray g_tTex1df4a : register(t1);
|
||||||
|
|
||||||
|
uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
|
||||||
|
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;
|
||||||
|
|
||||||
|
// No 1D gathers
|
||||||
|
|
||||||
|
float4 txval20 = g_tTex2df4a . Gather(g_sSamp, float3(0.1, 0.2, 0.3));
|
||||||
|
int4 txval21 = g_tTex2di4a . Gather(g_sSamp, float3(0.3, 0.4, 0.5));
|
||||||
|
uint4 txval22 = g_tTex2du4a . Gather(g_sSamp, float3(0.5, 0.6, 0.7));
|
||||||
|
|
||||||
|
// no 3D gathers
|
||||||
|
|
||||||
|
float4 txval40 = g_tTexcdf4a . Gather(g_sSamp, float4(0.1, 0.2, 0.3, 0.4));
|
||||||
|
int4 txval41 = g_tTexcdi4a . Gather(g_sSamp, float4(0.4, 0.5, 0.6, 0.7));
|
||||||
|
uint4 txval42 = g_tTexcdu4a . Gather(g_sSamp, float4(0.7, 0.8, 0.9, 1.0));
|
||||||
|
|
||||||
|
psout.Color = 1.0;
|
||||||
|
psout.Depth = 1.0;
|
||||||
|
|
||||||
|
return psout;
|
||||||
|
}
|
48
Test/hlsl.gather.basic.dx10.frag
Normal file
48
Test/hlsl.gather.basic.dx10.frag
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
SamplerState g_sSamp : register(s0);
|
||||||
|
uniform sampler2D g_sSamp2d;
|
||||||
|
|
||||||
|
Texture1D g_tTex1df4a : register(t1);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
struct PS_OUTPUT
|
||||||
|
{
|
||||||
|
float4 Color : SV_Target0;
|
||||||
|
float Depth : SV_Depth;
|
||||||
|
};
|
||||||
|
|
||||||
|
PS_OUTPUT main()
|
||||||
|
{
|
||||||
|
PS_OUTPUT psout;
|
||||||
|
|
||||||
|
// no 1D gathers
|
||||||
|
|
||||||
|
float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2));
|
||||||
|
int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4));
|
||||||
|
uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6));
|
||||||
|
|
||||||
|
// no 3D gathers
|
||||||
|
|
||||||
|
float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3));
|
||||||
|
int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6));
|
||||||
|
uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9));
|
||||||
|
|
||||||
|
psout.Color = 1.0;
|
||||||
|
psout.Depth = 1.0;
|
||||||
|
|
||||||
|
return psout;
|
||||||
|
}
|
46
Test/hlsl.gather.basic.dx10.vert
Normal file
46
Test/hlsl.gather.basic.dx10.vert
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
SamplerState g_sSamp : register(s0);
|
||||||
|
uniform sampler2D g_sSamp2d;
|
||||||
|
|
||||||
|
Texture1D g_tTex1df4a : register(t1);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
struct VS_OUTPUT
|
||||||
|
{
|
||||||
|
float4 Pos : SV_Position;
|
||||||
|
};
|
||||||
|
|
||||||
|
VS_OUTPUT main()
|
||||||
|
{
|
||||||
|
VS_OUTPUT vsout;
|
||||||
|
|
||||||
|
// no 1D gathers
|
||||||
|
|
||||||
|
float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2));
|
||||||
|
int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4));
|
||||||
|
uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6));
|
||||||
|
|
||||||
|
// no 3D gathers
|
||||||
|
|
||||||
|
float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3));
|
||||||
|
int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6));
|
||||||
|
uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9));
|
||||||
|
|
||||||
|
vsout.Pos = float4(0,0,0,0);
|
||||||
|
|
||||||
|
return vsout;
|
||||||
|
}
|
44
Test/hlsl.gather.offset.dx10.frag
Normal file
44
Test/hlsl.gather.offset.dx10.frag
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
SamplerState g_sSamp : register(s0);
|
||||||
|
|
||||||
|
Texture1D g_tTex1df4a : register(t1);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
struct PS_OUTPUT
|
||||||
|
{
|
||||||
|
float4 Color : SV_Target0;
|
||||||
|
float Depth : SV_Depth;
|
||||||
|
};
|
||||||
|
|
||||||
|
PS_OUTPUT main()
|
||||||
|
{
|
||||||
|
PS_OUTPUT psout;
|
||||||
|
|
||||||
|
// no 1D Gathers
|
||||||
|
|
||||||
|
float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2), int2(1,0));
|
||||||
|
int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4), int2(1,1));
|
||||||
|
uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6), int2(1,-1));
|
||||||
|
|
||||||
|
// no 3D gathers
|
||||||
|
// No Cube offset gathers
|
||||||
|
|
||||||
|
psout.Color = 1.0;
|
||||||
|
psout.Depth = 1.0;
|
||||||
|
|
||||||
|
return psout;
|
||||||
|
}
|
36
Test/hlsl.gather.offsetarray.dx10.frag
Normal file
36
Test/hlsl.gather.offsetarray.dx10.frag
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
SamplerState g_sSamp : register(s0);
|
||||||
|
|
||||||
|
Texture1DArray g_tTex1df4a : register(t1);
|
||||||
|
|
||||||
|
uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
|
||||||
|
Texture1DArray <int4> g_tTex1di4;
|
||||||
|
Texture1DArray <uint4> g_tTex1du4;
|
||||||
|
|
||||||
|
Texture2DArray <float4> g_tTex2df4;
|
||||||
|
Texture2DArray <int4> g_tTex2di4;
|
||||||
|
Texture2DArray <uint4> g_tTex2du4;
|
||||||
|
|
||||||
|
struct PS_OUTPUT
|
||||||
|
{
|
||||||
|
float4 Color : SV_Target0;
|
||||||
|
float Depth : SV_Depth;
|
||||||
|
};
|
||||||
|
|
||||||
|
PS_OUTPUT main()
|
||||||
|
{
|
||||||
|
PS_OUTPUT psout;
|
||||||
|
|
||||||
|
// No 1D gathers
|
||||||
|
|
||||||
|
float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3), int2(1,0));
|
||||||
|
int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float3(0.3, 0.4, 0.4), int2(1,1));
|
||||||
|
uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float3(0.5, 0.6, 0.7), int2(1,-1));
|
||||||
|
|
||||||
|
// No 3D gathers
|
||||||
|
// No Cube offset gathers
|
||||||
|
|
||||||
|
psout.Color = 1.0;
|
||||||
|
psout.Depth = 1.0;
|
||||||
|
|
||||||
|
return psout;
|
||||||
|
}
|
@ -3,16 +3,16 @@ SamplerState g_sSamp : register(s0);
|
|||||||
Texture1DArray g_tTex1df4a : register(t1);
|
Texture1DArray g_tTex1df4a : register(t1);
|
||||||
|
|
||||||
uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
|
uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
|
||||||
Texture1DArray <int4> g_tTex1di4;
|
Texture1DArray <int4> g_tTex1di4a;
|
||||||
Texture1DArray <uint4> g_tTex1du4;
|
Texture1DArray <uint4> g_tTex1du4a;
|
||||||
|
|
||||||
Texture2DArray <float4> g_tTex2df4;
|
Texture2DArray <float4> g_tTex2df4a;
|
||||||
Texture2DArray <int4> g_tTex2di4;
|
Texture2DArray <int4> g_tTex2di4a;
|
||||||
Texture2DArray <uint4> g_tTex2du4;
|
Texture2DArray <uint4> g_tTex2du4a;
|
||||||
|
|
||||||
TextureCubeArray <float4> g_tTexcdf4;
|
TextureCubeArray <float4> g_tTexcdf4a;
|
||||||
TextureCubeArray <int4> g_tTexcdi4;
|
TextureCubeArray <int4> g_tTexcdi4a;
|
||||||
TextureCubeArray <uint4> g_tTexcdu4;
|
TextureCubeArray <uint4> g_tTexcdu4a;
|
||||||
|
|
||||||
struct PS_OUTPUT
|
struct PS_OUTPUT
|
||||||
{
|
{
|
||||||
@ -24,17 +24,17 @@ PS_OUTPUT main()
|
|||||||
{
|
{
|
||||||
PS_OUTPUT psout;
|
PS_OUTPUT psout;
|
||||||
|
|
||||||
float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
|
float4 txval10 = g_tTex1df4a . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
|
||||||
int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75);
|
int4 txval11 = g_tTex1di4a . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75);
|
||||||
uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75);
|
uint4 txval12 = g_tTex1du4a . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75);
|
||||||
|
|
||||||
float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
|
float4 txval20 = g_tTex2df4a . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
|
||||||
int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75);
|
int4 txval21 = g_tTex2di4a . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75);
|
||||||
uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75);
|
uint4 txval22 = g_tTex2du4a . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75);
|
||||||
|
|
||||||
float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
|
float4 txval40 = g_tTexcdf4a . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
|
||||||
int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75);
|
int4 txval41 = g_tTexcdi4a . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75);
|
||||||
uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75);
|
uint4 txval42 = g_tTexcdu4a . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75);
|
||||||
|
|
||||||
psout.Color = 1.0;
|
psout.Color = 1.0;
|
||||||
psout.Depth = 1.0;
|
psout.Depth = 1.0;
|
||||||
|
@ -81,6 +81,11 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
{"hlsl.float1.frag", "PixelShaderFunction"},
|
{"hlsl.float1.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.float4.frag", "PixelShaderFunction"},
|
{"hlsl.float4.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.forLoop.frag", "PixelShaderFunction"},
|
{"hlsl.forLoop.frag", "PixelShaderFunction"},
|
||||||
|
{"hlsl.gather.array.dx10.frag", "main"},
|
||||||
|
{"hlsl.gather.basic.dx10.frag", "main"},
|
||||||
|
{"hlsl.gather.basic.dx10.vert", "main"},
|
||||||
|
{"hlsl.gather.offset.dx10.frag", "main"},
|
||||||
|
{"hlsl.gather.offsetarray.dx10.frag", "main"},
|
||||||
{"hlsl.getdimensions.dx10.frag", "main"},
|
{"hlsl.getdimensions.dx10.frag", "main"},
|
||||||
{"hlsl.getdimensions.dx10.vert", "main"},
|
{"hlsl.getdimensions.dx10.vert", "main"},
|
||||||
{"hlsl.if.frag", "PixelShaderFunction"},
|
{"hlsl.if.frag", "PixelShaderFunction"},
|
||||||
|
@ -1221,6 +1221,35 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case EOpMethodGather:
|
||||||
|
{
|
||||||
|
TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
|
||||||
|
TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped();
|
||||||
|
TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped();
|
||||||
|
TIntermTyped* argOffset = nullptr;
|
||||||
|
|
||||||
|
// Offset is optional
|
||||||
|
if (argAggregate->getSequence().size() == 4)
|
||||||
|
argOffset = argAggregate->getSequence()[3]->getAsTyped();
|
||||||
|
|
||||||
|
const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset);
|
||||||
|
TIntermAggregate* txgather = new TIntermAggregate(textureOp);
|
||||||
|
|
||||||
|
TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
|
||||||
|
|
||||||
|
txgather->getSequence().push_back(txcombine);
|
||||||
|
txgather->getSequence().push_back(argCoord);
|
||||||
|
|
||||||
|
if (argOffset != nullptr)
|
||||||
|
txgather->getSequence().push_back(argOffset);
|
||||||
|
|
||||||
|
txgather->setType(node->getType());
|
||||||
|
txgather->setLoc(loc);
|
||||||
|
node = txgather;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break; // most pass through unchanged
|
break; // most pass through unchanged
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,7 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; }
|
bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; }
|
||||||
|
bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; }
|
||||||
bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; }
|
bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; }
|
||||||
// bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ...
|
// bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ...
|
||||||
|
|
||||||
@ -95,6 +96,14 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reject invalid Gathers
|
||||||
|
if (name == "Gather") {
|
||||||
|
if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers
|
||||||
|
return true;
|
||||||
|
if (dim0 == 4 && numArgs == 4) // there are no Cube gathers with offset
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Reject invalid Loads
|
// Reject invalid Loads
|
||||||
if (name == "Load" && dim0 == 4)
|
if (name == "Load" && dim0 == 4)
|
||||||
return true; // Load does not support any cubemaps, arrayed or not.
|
return true; // Load does not support any cubemaps, arrayed or not.
|
||||||
@ -119,6 +128,29 @@ bool HasMipInCoord(const glslang::TString& name)
|
|||||||
return name == "Load";
|
return name == "Load";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle IO params marked with > or <
|
||||||
|
const char* IoParam(glslang::TString& s, const char* nthArgOrder)
|
||||||
|
{
|
||||||
|
if (*nthArgOrder == '>') { // output params
|
||||||
|
++nthArgOrder;
|
||||||
|
s.append("out ");
|
||||||
|
} else if (*nthArgOrder == '<') { // input params
|
||||||
|
++nthArgOrder;
|
||||||
|
s.append("in ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return nthArgOrder;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle repeated args
|
||||||
|
void HandleRepeatArg(const char*& arg, const char*& prev, const char* current)
|
||||||
|
{
|
||||||
|
if (*arg == ',' || *arg == '\0')
|
||||||
|
arg = prev;
|
||||||
|
else
|
||||||
|
prev = current;
|
||||||
|
}
|
||||||
|
|
||||||
// Create and return a type name. This is done in GLSL, not HLSL conventions, until such
|
// 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.
|
// time as builtins are parsed using the HLSL parser.
|
||||||
//
|
//
|
||||||
@ -132,19 +164,16 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
|
|||||||
const bool isMatMul = (argOrder[0] == '#');
|
const bool isMatMul = (argOrder[0] == '#');
|
||||||
const bool isTexture = IsTextureType(argOrder[0]);
|
const bool isTexture = IsTextureType(argOrder[0]);
|
||||||
const bool isArrayed = IsTextureArrayed(argOrder[0]);
|
const bool isArrayed = IsTextureArrayed(argOrder[0]);
|
||||||
|
const bool isSampler = IsSamplerType(argType[0]);
|
||||||
//const bool isMS = IsTextureMS(argOrder[0]);
|
//const bool isMS = IsTextureMS(argOrder[0]);
|
||||||
|
|
||||||
char order = *argOrder;
|
|
||||||
char type = *argType;
|
char type = *argType;
|
||||||
|
|
||||||
if (isTranspose) { // Take transpose of matrix dimensions
|
if (isTranspose) { // Take transpose of matrix dimensions
|
||||||
order = *++argOrder;
|
|
||||||
std::swap(dim0, dim1);
|
std::swap(dim0, dim1);
|
||||||
} else if (isMatMul) {
|
} else if (isMatMul) {
|
||||||
order = *++argOrder;
|
|
||||||
dim0 = dim1; // set vector dimension to mat col
|
dim0 = dim1; // set vector dimension to mat col
|
||||||
} else if (isTexture) {
|
} else if (isTexture) {
|
||||||
order = *++argOrder;
|
|
||||||
if (type == 'F') // map base type to texture of that type.
|
if (type == 'F') // map base type to texture of that type.
|
||||||
type = 'T'; // e.g, int -> itexture, uint -> utexture, etc.
|
type = 'T'; // e.g, int -> itexture, uint -> utexture, etc.
|
||||||
else if (type == 'I')
|
else if (type == 'I')
|
||||||
@ -153,6 +182,11 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
|
|||||||
type = 'u';
|
type = 'u';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (!isalpha(*argOrder))
|
||||||
|
++argOrder;
|
||||||
|
|
||||||
|
char order = *argOrder;
|
||||||
|
|
||||||
if (UseHlslTypes) {
|
if (UseHlslTypes) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case '-': s += "void"; break;
|
case '-': s += "void"; break;
|
||||||
@ -197,8 +231,8 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
|
|||||||
dim0 = dim1 = fixedVecSize;
|
dim0 = dim1 = fixedVecSize;
|
||||||
|
|
||||||
// Add sampler dimensions
|
// Add sampler dimensions
|
||||||
if (type == 'S' || isTexture) {
|
if (isSampler || isTexture) {
|
||||||
if (order == 'V') {
|
if (order == 'V' || isTexture) {
|
||||||
switch (dim0) {
|
switch (dim0) {
|
||||||
case 1: s += "1D"; break;
|
case 1: s += "1D"; break;
|
||||||
case 2: s += "2D"; break;
|
case 2: s += "2D"; break;
|
||||||
@ -378,7 +412,9 @@ void TBuiltInParseablesHlsl::createMatTimesMat()
|
|||||||
//
|
//
|
||||||
void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/)
|
void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/)
|
||||||
{
|
{
|
||||||
static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1);
|
static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1);
|
||||||
|
static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask);
|
||||||
|
static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask);
|
||||||
|
|
||||||
// This structure encodes the prototype information for each HLSL intrinsic.
|
// This structure encodes the prototype information for each HLSL intrinsic.
|
||||||
// Because explicit enumeration would be cumbersome, it's procedurally generated.
|
// Because explicit enumeration would be cumbersome, it's procedurally generated.
|
||||||
@ -402,255 +438,244 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
|
|||||||
const char* argType; // argument type key
|
const char* argType; // argument type key
|
||||||
unsigned int stage; // stage mask
|
unsigned int stage; // stage mask
|
||||||
} hlslIntrinsics[] = {
|
} hlslIntrinsics[] = {
|
||||||
// name retOrd retType argOrder argType stage mask
|
// name retOrd retType argOrder argType stage mask
|
||||||
// -----------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------
|
||||||
{ "abort", nullptr, nullptr, "-", "-", EShLangAll },
|
{ "abort", nullptr, nullptr, "-", "-", EShLangAll },
|
||||||
{ "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
|
{ "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
|
||||||
{ "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "all", "S", "B", "SVM", "BFI", EShLangAll },
|
{ "all", "S", "B", "SVM", "BFI", EShLangAll },
|
||||||
{ "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
{ "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||||
{ "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
{ "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||||
{ "any", "S", "B", "SVM", "BFI", EShLangAll },
|
{ "any", "S", "B", "SVM", "BFI", EShLangAll },
|
||||||
{ "asdouble", "S", "D", "S,", "U,", EShLangAll },
|
{ "asdouble", "S", "D", "S,", "U,", EShLangAll },
|
||||||
{ "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
|
{ "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
|
||||||
{ "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
|
{ "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
|
||||||
{ "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "asint", nullptr, "I", "SVM", "FU", EShLangAll },
|
{ "asint", nullptr, "I", "SVM", "FU", EShLangAll },
|
||||||
{ "asuint", nullptr, "U", "SVM", "FU", EShLangAll },
|
{ "asuint", nullptr, "U", "SVM", "FU", EShLangAll },
|
||||||
{ "atan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "atan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
{ "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||||
{ "ceil", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "ceil", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangFragmentMask | EShLangComputeMask },
|
{ "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS },
|
||||||
{ "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll },
|
{ "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll },
|
||||||
{ "clip", "-", "-", "SVM", "F", EShLangFragmentMask },
|
{ "clip", "-", "-", "SVM", "F", EShLangFragmentMask },
|
||||||
{ "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
|
{ "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
|
||||||
{ "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
|
{ "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
|
||||||
{ "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
|
{ "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
|
||||||
{ "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "degrees", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "degrees", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "determinant", "S", "F", "M", "F", EShLangAll },
|
{ "determinant", "S", "F", "M", "F", EShLangAll },
|
||||||
{ "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangFragmentMask | EShLangComputeMask },
|
{ "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS },
|
||||||
{ "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
{ "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||||
{ "distance", "S", "F", "V,", "F,", EShLangAll },
|
{ "distance", "S", "F", "V,", "F,", EShLangAll },
|
||||||
{ "dot", "S", nullptr, "V,", "FI,", EShLangAll },
|
{ "dot", "S", nullptr, "V,", "FI,", EShLangAll },
|
||||||
{ "dst", nullptr, nullptr, "V4,V4", "F,", EShLangAll },
|
{ "dst", nullptr, nullptr, "V4,", "F,", EShLangAll },
|
||||||
// { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
// { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||||
{ "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
|
{ "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
|
||||||
{ "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
|
{ "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
|
||||||
{ "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
|
{ "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
|
||||||
{ "f32tof16", nullptr, "U", "SV", "F", EShLangAll },
|
{ "f32tof16", nullptr, "U", "SV", "F", EShLangAll },
|
||||||
{ "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll },
|
{ "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll },
|
||||||
{ "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll },
|
{ "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll },
|
||||||
{ "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll },
|
{ "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll },
|
||||||
{ "floor", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "floor", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll },
|
{ "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll },
|
||||||
{ "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
{ "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||||
{ "frac", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "frac", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
{ "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||||
{ "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll },
|
{ "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll },
|
||||||
{ "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll },
|
{ "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll },
|
||||||
{ "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
{ "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||||
{ "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
{ "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||||
{ "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||||
{ "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||||
{ "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS },
|
||||||
{ "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||||
{ "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||||
{ "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||||
{ "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||||
{ "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
{ "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||||
{ "isfinite", nullptr, "B" , "SVM", "F", EShLangAll },
|
{ "isfinite", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||||
{ "isinf", nullptr, "B" , "SVM", "F", EShLangAll },
|
{ "isinf", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||||
{ "isnan", nullptr, "B" , "SVM", "F", EShLangAll },
|
{ "isnan", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||||
{ "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
{ "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||||
{ "length", "S", "F", "V", "F", EShLangAll },
|
{ "length", "S", "F", "V", "F", EShLangAll },
|
||||||
{ "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
{ "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
||||||
{ "lit", "V4", "F", "S,,", "F,,", EShLangAll },
|
{ "lit", "V4", "F", "S,,", "F,,", EShLangAll },
|
||||||
{ "log", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "log", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
|
{ "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
|
||||||
{ "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
{ "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
||||||
{ "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
{ "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
||||||
{ "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
|
{ "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
|
||||||
{ "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
|
{ "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
|
||||||
{ "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
|
{ "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
|
||||||
{ "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
|
{ "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
|
||||||
{ "mul", "M", nullptr, "S,M", "FI,", EShLangAll },
|
{ "mul", "M", nullptr, "S,M", "FI,", EShLangAll },
|
||||||
{ "mul", "V", nullptr, "V,S", "FI,", EShLangAll },
|
{ "mul", "V", nullptr, "V,S", "FI,", EShLangAll },
|
||||||
{ "mul", "S", nullptr, "V,V", "FI,", EShLangAll },
|
{ "mul", "S", nullptr, "V,V", "FI,", EShLangAll },
|
||||||
{ "mul", "#V", nullptr, "V,M", "FI,", EShLangAll },
|
{ "mul", "#V", nullptr, "V,M", "FI,", EShLangAll },
|
||||||
{ "mul", "M", nullptr, "M,S", "FI,", EShLangAll },
|
{ "mul", "M", nullptr, "M,S", "FI,", EShLangAll },
|
||||||
{ "mul", "V", nullptr, "M,#V", "FI,", EShLangAll },
|
{ "mul", "V", nullptr, "M,#V", "FI,", EShLangAll },
|
||||||
// mat*mat form of mul is handled in createMatTimesMat()
|
// mat*mat form of mul is handled in createMatTimesMat()
|
||||||
{ "noise", "S", "F", "V", "F", EShLangFragmentMask },
|
{ "noise", "S", "F", "V", "F", EShLangFragmentMask },
|
||||||
{ "normalize", nullptr, nullptr, "V", "F", EShLangAll },
|
{ "normalize", nullptr, nullptr, "V", "F", EShLangAll },
|
||||||
{ "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
{ "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||||
// { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
// { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||||
{ "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
{ "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
{ "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
{ "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask },
|
{ "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask },
|
||||||
{ "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
{ "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
{ "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
{ "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
|
{ "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
|
{ "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
|
{ "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
|
||||||
{ "radians", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "radians", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
|
{ "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
|
||||||
{ "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
|
{ "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
|
||||||
{ "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
|
{ "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
|
||||||
{ "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
|
{ "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
|
||||||
{ "round", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "round", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
|
{ "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
|
||||||
{ "sign", nullptr, nullptr, "SVM", "FI", EShLangAll },
|
{ "sign", nullptr, nullptr, "SVM", "FI", EShLangAll },
|
||||||
{ "sin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "sin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll },
|
{ "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll },
|
||||||
{ "sinh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "sinh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
{ "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
||||||
{ "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "step", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
{ "step", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||||
{ "tan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "tan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "tanh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "tanh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask },
|
{ "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask },
|
||||||
{ "tex1D", "V4", "F", "V1,S,V1,V1", "S,F,F,F",EShLangFragmentMask },
|
{ "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
{ "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex1Dgrad", "V4", "F", "V1,V1,V1,V1","S,F,F,F",EShLangFragmentMask },
|
{ "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
{ "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
{ "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex2D", "V4", "F", "V2,V2", "S,F", EShLangFragmentMask },
|
{ "tex2D", "V4", "F", "V2,", "S,F", EShLangFragmentMask },
|
||||||
{ "tex2D", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
|
{ "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
{ "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex2Dgrad", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
|
{ "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
{ "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
{ "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex3D", "V4", "F", "V3,V3", "S,F", EShLangFragmentMask },
|
{ "tex3D", "V4", "F", "V3,", "S,F", EShLangFragmentMask },
|
||||||
{ "tex3D", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
{ "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
{ "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex3Dgrad", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
{ "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
{ "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
{ "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
||||||
{ "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask },
|
{ "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask },
|
||||||
{ "texCUBE", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
{ "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "texCUBEbias", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
|
{ "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
|
||||||
{ "texCUBEgrad", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
{ "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask },
|
||||||
{ "texCUBElod", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
|
{ "texCUBElod", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
|
||||||
{ "texCUBEproj", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
|
{ "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
|
||||||
{ "transpose", "^M", nullptr, "M", "F", EShLangAll },
|
{ "transpose", "^M", nullptr, "M", "F", EShLangAll },
|
||||||
{ "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
|
|
||||||
// Texture object methods. Return type can be overridden by shader declaration.
|
// Texture object methods. Return type can be overridden by shader declaration.
|
||||||
// !O = no offset, O = offset, !A = no array, A = array
|
// !O = no offset, O = offset
|
||||||
{ "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask },
|
{ "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangFragmentMask },
|
||||||
{ "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
|
{ "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangFragmentMask },
|
||||||
{ "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask },
|
|
||||||
{ "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
|
|
||||||
|
|
||||||
{ "SampleBias", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
|
{ "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangFragmentMask },
|
||||||
{ "SampleBias", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
|
{ "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangFragmentMask },
|
||||||
{ "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
|
|
||||||
{ "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
|
|
||||||
|
|
||||||
// TODO: FXC accepts int/uint samplers here. unclear what that means.
|
// 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*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangFragmentMask },
|
||||||
{ "SampleCmp", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
|
{ "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,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 },
|
|
||||||
|
|
||||||
// TODO: FXC accepts int/uint samplers here. unclear what that means.
|
// 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*/ "S", "F", "%@,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*/ "S", "F", "%@,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*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll },
|
||||||
{ "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
|
{ "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,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", EShLangAll },
|
{ "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll },
|
||||||
{ "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll },
|
{ "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll },
|
||||||
{ "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll },
|
|
||||||
{ "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll },
|
|
||||||
|
|
||||||
{ "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll },
|
{ "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll },
|
||||||
{ "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll },
|
{ "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll },
|
||||||
{ "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll },
|
|
||||||
{ "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll },
|
|
||||||
// TODO: MS variants of Load
|
// TODO: MS variants of Load
|
||||||
// { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll },
|
// { "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 },
|
// { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll },
|
||||||
|
|
||||||
|
{ "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangVSPSGS },
|
||||||
|
{ "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangVSPSGS },
|
||||||
|
|
||||||
// table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx
|
// table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx
|
||||||
//
|
//
|
||||||
// UINT Width
|
// UINT Width
|
||||||
// UINT MipLevel, UINT Width, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,U", EShLangAll },
|
{ "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,U", EShLangAll },
|
||||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,F", EShLangAll },
|
{ "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,F", EShLangAll },
|
||||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,F,F", EShLangAll },
|
{ "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll },
|
||||||
|
|
||||||
// UINT Width, UINT Elements
|
// UINT Width, UINT Elements
|
||||||
// UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,U,U", EShLangAll },
|
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,U,", EShLangAll },
|
||||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,F,F", EShLangAll },
|
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,F,", EShLangAll },
|
||||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
|
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll },
|
||||||
|
|
||||||
// UINT Width, UINT Height
|
// UINT Width, UINT Height
|
||||||
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,U,U", EShLangAll },
|
{ "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,U,", EShLangAll },
|
||||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,F,F", EShLangAll },
|
{ "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,F,", EShLangAll },
|
||||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
|
{ "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll },
|
||||||
|
|
||||||
// UINT Width, UINT Height, UINT Elements
|
// UINT Width, UINT Height, UINT Elements
|
||||||
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,U,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,F,F,F", EShLangAll },
|
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,F,F,F", EShLangAll },
|
||||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
|
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll },
|
||||||
|
|
||||||
// UINT Width, UINT Height, UINT Depth
|
// UINT Width, UINT Height, UINT Depth
|
||||||
// UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,U,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,F,F,F", EShLangAll },
|
{ "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,F,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
|
{ "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll },
|
||||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
|
{ "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll },
|
||||||
|
|
||||||
// UINT Width, UINT Height
|
// UINT Width, UINT Height
|
||||||
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,U,U", EShLangAll },
|
{ "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll },
|
||||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,F,F", EShLangAll },
|
{ "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll },
|
||||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
|
{ "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll },
|
||||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
|
{ "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll },
|
||||||
|
|
||||||
// UINT Width, UINT Height, UINT Elements
|
// UINT Width, UINT Height, UINT Elements
|
||||||
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
|
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
|
||||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,U,U,U", EShLangAll },
|
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll },
|
||||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,F,F,F", EShLangAll },
|
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll },
|
||||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
|
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll },
|
||||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
|
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll },
|
||||||
|
|
||||||
// TODO: GetDimensions for Texture2DMS, Texture2DMSArray
|
// TODO: GetDimensions for Texture2DMS, Texture2DMSArray
|
||||||
// UINT Width, UINT Height, UINT Samples
|
// UINT Width, UINT Height, UINT Samples
|
||||||
@ -709,6 +734,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
|
|||||||
s.append(intrinsic.name); // intrinsic name
|
s.append(intrinsic.name); // intrinsic name
|
||||||
s.append("("); // open paren
|
s.append("("); // open paren
|
||||||
|
|
||||||
|
const char* prevArgOrder = nullptr;
|
||||||
|
const char* prevArgType = nullptr;
|
||||||
|
|
||||||
// Append argument types, if any.
|
// Append argument types, if any.
|
||||||
for (int arg = 0; ; ++arg) {
|
for (int arg = 0; ; ++arg) {
|
||||||
const char* nthArgOrder(NthArg(argOrder, arg));
|
const char* nthArgOrder(NthArg(argOrder, arg));
|
||||||
@ -720,6 +748,18 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
|
|||||||
// cube textures use vec3 coordinates
|
// cube textures use vec3 coordinates
|
||||||
int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0;
|
int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0;
|
||||||
|
|
||||||
|
s.append(arg > 0 ? ", ": ""); // comma separator if needed
|
||||||
|
|
||||||
|
const char* orderBegin = nthArgOrder;
|
||||||
|
nthArgOrder = IoParam(s, nthArgOrder);
|
||||||
|
|
||||||
|
// Comma means use the previous argument order and type.
|
||||||
|
HandleRepeatArg(nthArgOrder, prevArgOrder, orderBegin);
|
||||||
|
HandleRepeatArg(nthArgType, prevArgType, nthArgType);
|
||||||
|
|
||||||
|
// In case the repeated arg has its own I/O marker
|
||||||
|
nthArgOrder = IoParam(s, nthArgOrder);
|
||||||
|
|
||||||
// arrayed textures have one extra coordinate dimension
|
// arrayed textures have one extra coordinate dimension
|
||||||
if (isArrayed && arg == coordArg)
|
if (isArrayed && arg == coordArg)
|
||||||
argDim0++;
|
argDim0++;
|
||||||
@ -732,34 +772,20 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
|
|||||||
if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V')
|
if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V')
|
||||||
nthArgOrder = "S";
|
nthArgOrder = "S";
|
||||||
|
|
||||||
s.append(arg > 0 ? ", ": ""); // comma separator if needed
|
|
||||||
|
|
||||||
if (*nthArgOrder == '>') { // output params
|
|
||||||
++nthArgOrder;
|
|
||||||
s.append("out ");
|
|
||||||
} else if (*nthArgOrder == '<') { // input params
|
|
||||||
++nthArgOrder;
|
|
||||||
s.append("in ");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Comma means use the 1st argument order and type.
|
|
||||||
if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder;
|
|
||||||
if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType;
|
|
||||||
|
|
||||||
AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments
|
AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments
|
||||||
}
|
}
|
||||||
|
|
||||||
s.append(");\n"); // close paren and trailing semicolon
|
s.append(");\n"); // close paren and trailing semicolon
|
||||||
}
|
} // dim 1 loop
|
||||||
}
|
} // dim 0 loop
|
||||||
}
|
} // arg type loop
|
||||||
|
|
||||||
// skip over special characters
|
// skip over special characters
|
||||||
if (isTexture)
|
if (isTexture && isalpha(argOrder[1]))
|
||||||
++argOrder;
|
++argOrder;
|
||||||
if (isdigit(argOrder[1]))
|
if (isdigit(argOrder[1]))
|
||||||
++argOrder;
|
++argOrder;
|
||||||
}
|
} // arg order loop
|
||||||
|
|
||||||
if (intrinsic.stage == EShLangAll) // common builtins are only added once.
|
if (intrinsic.stage == EShLangAll) // common builtins are only added once.
|
||||||
break;
|
break;
|
||||||
@ -946,6 +972,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
|
|||||||
symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel);
|
symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel);
|
||||||
symbolTable.relateToOperator("Load", EOpMethodLoad);
|
symbolTable.relateToOperator("Load", EOpMethodLoad);
|
||||||
symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions);
|
symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions);
|
||||||
|
symbolTable.relateToOperator("Gather", EOpMethodGather);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user