mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
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 textureLod (global 4-component vector of float)
|
||||
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:? Constant:
|
||||
0:? 0.100000
|
||||
@ -22,7 +22,7 @@ gl_FragCoord origin is upper left
|
||||
0:28 'txval11' (temp 4-component vector of int)
|
||||
0:28 textureLod (global 4-component vector of int)
|
||||
0:28 Construct combined texture-sampler (temp isampler1DArray)
|
||||
0:28 'g_tTex1di4' (uniform itexture1DArray)
|
||||
0:28 'g_tTex1di4a' (uniform itexture1DArray)
|
||||
0:28 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.200000
|
||||
@ -34,7 +34,7 @@ gl_FragCoord origin is upper left
|
||||
0:29 'txval12' (temp 4-component vector of uint)
|
||||
0:29 textureLod (global 4-component vector of uint)
|
||||
0:29 Construct combined texture-sampler (temp usampler1DArray)
|
||||
0:29 'g_tTex1du4' (uniform utexture1DArray)
|
||||
0:29 'g_tTex1du4a' (uniform utexture1DArray)
|
||||
0:29 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.300000
|
||||
@ -46,7 +46,7 @@ gl_FragCoord origin is upper left
|
||||
0:31 'txval20' (temp 4-component vector of float)
|
||||
0:31 textureLod (global 4-component vector of float)
|
||||
0:31 Construct combined texture-sampler (temp sampler2DArray)
|
||||
0:31 'g_tTex2df4' (uniform texture2DArray)
|
||||
0:31 'g_tTex2df4a' (uniform texture2DArray)
|
||||
0:31 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.100000
|
||||
@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
|
||||
0:32 'txval21' (temp 4-component vector of int)
|
||||
0:32 textureLod (global 4-component vector of int)
|
||||
0:32 Construct combined texture-sampler (temp isampler2DArray)
|
||||
0:32 'g_tTex2di4' (uniform itexture2DArray)
|
||||
0:32 'g_tTex2di4a' (uniform itexture2DArray)
|
||||
0:32 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.300000
|
||||
@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
|
||||
0:33 'txval22' (temp 4-component vector of uint)
|
||||
0:33 textureLod (global 4-component vector of uint)
|
||||
0:33 Construct combined texture-sampler (temp usampler2DArray)
|
||||
0:33 'g_tTex2du4' (uniform utexture2DArray)
|
||||
0:33 'g_tTex2du4a' (uniform utexture2DArray)
|
||||
0:33 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.500000
|
||||
@ -85,7 +85,7 @@ gl_FragCoord origin is upper left
|
||||
0:35 'txval40' (temp 4-component vector of float)
|
||||
0:35 textureLod (global 4-component vector of float)
|
||||
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
||||
0:35 'g_tTexcdf4' (uniform textureCubeArray)
|
||||
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||
0:35 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.100000
|
||||
@ -99,7 +99,7 @@ gl_FragCoord origin is upper left
|
||||
0:36 'txval41' (temp 4-component vector of int)
|
||||
0:36 textureLod (global 4-component vector of int)
|
||||
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
||||
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
|
||||
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||
0:36 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.400000
|
||||
@ -113,7 +113,7 @@ gl_FragCoord origin is upper left
|
||||
0:37 'txval42' (temp 4-component vector of uint)
|
||||
0:37 textureLod (global 4-component vector of uint)
|
||||
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
||||
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
|
||||
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||
0:37 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.700000
|
||||
@ -135,14 +135,14 @@ gl_FragCoord origin is upper left
|
||||
0:? 'g_sSamp' (uniform sampler)
|
||||
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||
0:? 'g_tTex1di4' (uniform itexture1DArray)
|
||||
0:? 'g_tTex1du4' (uniform utexture1DArray)
|
||||
0:? 'g_tTex2df4' (uniform texture2DArray)
|
||||
0:? 'g_tTex2di4' (uniform itexture2DArray)
|
||||
0:? 'g_tTex2du4' (uniform utexture2DArray)
|
||||
0:? 'g_tTexcdf4' (uniform textureCubeArray)
|
||||
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
|
||||
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
|
||||
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:
|
||||
@ -159,7 +159,7 @@ gl_FragCoord origin is upper left
|
||||
0:27 'txval10' (temp 4-component vector of float)
|
||||
0:27 textureLod (global 4-component vector of float)
|
||||
0:27 Construct combined texture-sampler (temp sampler1DArray)
|
||||
0:27 'g_tTex1df4' (uniform texture1DArray)
|
||||
0:27 'g_tTex1df4a' (uniform texture1DArray)
|
||||
0:27 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.100000
|
||||
@ -171,7 +171,7 @@ gl_FragCoord origin is upper left
|
||||
0:28 'txval11' (temp 4-component vector of int)
|
||||
0:28 textureLod (global 4-component vector of int)
|
||||
0:28 Construct combined texture-sampler (temp isampler1DArray)
|
||||
0:28 'g_tTex1di4' (uniform itexture1DArray)
|
||||
0:28 'g_tTex1di4a' (uniform itexture1DArray)
|
||||
0:28 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.200000
|
||||
@ -183,7 +183,7 @@ gl_FragCoord origin is upper left
|
||||
0:29 'txval12' (temp 4-component vector of uint)
|
||||
0:29 textureLod (global 4-component vector of uint)
|
||||
0:29 Construct combined texture-sampler (temp usampler1DArray)
|
||||
0:29 'g_tTex1du4' (uniform utexture1DArray)
|
||||
0:29 'g_tTex1du4a' (uniform utexture1DArray)
|
||||
0:29 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.300000
|
||||
@ -195,7 +195,7 @@ gl_FragCoord origin is upper left
|
||||
0:31 'txval20' (temp 4-component vector of float)
|
||||
0:31 textureLod (global 4-component vector of float)
|
||||
0:31 Construct combined texture-sampler (temp sampler2DArray)
|
||||
0:31 'g_tTex2df4' (uniform texture2DArray)
|
||||
0:31 'g_tTex2df4a' (uniform texture2DArray)
|
||||
0:31 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.100000
|
||||
@ -208,7 +208,7 @@ gl_FragCoord origin is upper left
|
||||
0:32 'txval21' (temp 4-component vector of int)
|
||||
0:32 textureLod (global 4-component vector of int)
|
||||
0:32 Construct combined texture-sampler (temp isampler2DArray)
|
||||
0:32 'g_tTex2di4' (uniform itexture2DArray)
|
||||
0:32 'g_tTex2di4a' (uniform itexture2DArray)
|
||||
0:32 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.300000
|
||||
@ -221,7 +221,7 @@ gl_FragCoord origin is upper left
|
||||
0:33 'txval22' (temp 4-component vector of uint)
|
||||
0:33 textureLod (global 4-component vector of uint)
|
||||
0:33 Construct combined texture-sampler (temp usampler2DArray)
|
||||
0:33 'g_tTex2du4' (uniform utexture2DArray)
|
||||
0:33 'g_tTex2du4a' (uniform utexture2DArray)
|
||||
0:33 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.500000
|
||||
@ -234,7 +234,7 @@ gl_FragCoord origin is upper left
|
||||
0:35 'txval40' (temp 4-component vector of float)
|
||||
0:35 textureLod (global 4-component vector of float)
|
||||
0:35 Construct combined texture-sampler (temp samplerCubeArray)
|
||||
0:35 'g_tTexcdf4' (uniform textureCubeArray)
|
||||
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
|
||||
0:35 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.100000
|
||||
@ -248,7 +248,7 @@ gl_FragCoord origin is upper left
|
||||
0:36 'txval41' (temp 4-component vector of int)
|
||||
0:36 textureLod (global 4-component vector of int)
|
||||
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
|
||||
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
|
||||
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
|
||||
0:36 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.400000
|
||||
@ -262,7 +262,7 @@ gl_FragCoord origin is upper left
|
||||
0:37 'txval42' (temp 4-component vector of uint)
|
||||
0:37 textureLod (global 4-component vector of uint)
|
||||
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
|
||||
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
|
||||
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
|
||||
0:37 'g_sSamp' (uniform sampler)
|
||||
0:? Constant:
|
||||
0:? 0.700000
|
||||
@ -284,14 +284,14 @@ gl_FragCoord origin is upper left
|
||||
0:? 'g_sSamp' (uniform sampler)
|
||||
0:? 'g_tTex1df4a' (uniform texture1DArray)
|
||||
0:? 'g_tTex1df4' (uniform texture1DArray)
|
||||
0:? 'g_tTex1di4' (uniform itexture1DArray)
|
||||
0:? 'g_tTex1du4' (uniform utexture1DArray)
|
||||
0:? 'g_tTex2df4' (uniform texture2DArray)
|
||||
0:? 'g_tTex2di4' (uniform itexture2DArray)
|
||||
0:? 'g_tTex2du4' (uniform utexture2DArray)
|
||||
0:? 'g_tTexcdf4' (uniform textureCubeArray)
|
||||
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
|
||||
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
|
||||
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
|
||||
@ -307,41 +307,41 @@ gl_FragCoord origin is upper left
|
||||
Source HLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "txval10"
|
||||
Name 12 "g_tTex1df4"
|
||||
Name 12 "g_tTex1df4a"
|
||||
Name 16 "g_sSamp"
|
||||
Name 29 "txval11"
|
||||
Name 32 "g_tTex1di4"
|
||||
Name 32 "g_tTex1di4a"
|
||||
Name 43 "txval12"
|
||||
Name 46 "g_tTex1du4"
|
||||
Name 46 "g_tTex1du4a"
|
||||
Name 54 "txval20"
|
||||
Name 57 "g_tTex2df4"
|
||||
Name 57 "g_tTex2df4a"
|
||||
Name 65 "txval21"
|
||||
Name 68 "g_tTex2di4"
|
||||
Name 68 "g_tTex2di4a"
|
||||
Name 76 "txval22"
|
||||
Name 79 "g_tTex2du4"
|
||||
Name 79 "g_tTex2du4a"
|
||||
Name 88 "txval40"
|
||||
Name 91 "g_tTexcdf4"
|
||||
Name 91 "g_tTexcdf4a"
|
||||
Name 98 "txval41"
|
||||
Name 101 "g_tTexcdi4"
|
||||
Name 101 "g_tTexcdi4a"
|
||||
Name 108 "txval42"
|
||||
Name 111 "g_tTexcdu4"
|
||||
Name 111 "g_tTexcdu4a"
|
||||
Name 121 "PS_OUTPUT"
|
||||
MemberName 121(PS_OUTPUT) 0 "Color"
|
||||
MemberName 121(PS_OUTPUT) 1 "Depth"
|
||||
Name 123 "psout"
|
||||
Name 129 "g_tTex1df4a"
|
||||
Decorate 12(g_tTex1df4) DescriptorSet 0
|
||||
Name 129 "g_tTex1df4"
|
||||
Decorate 12(g_tTex1df4a) DescriptorSet 0
|
||||
Decorate 16(g_sSamp) DescriptorSet 0
|
||||
Decorate 32(g_tTex1di4) DescriptorSet 0
|
||||
Decorate 46(g_tTex1du4) DescriptorSet 0
|
||||
Decorate 57(g_tTex2df4) DescriptorSet 0
|
||||
Decorate 68(g_tTex2di4) DescriptorSet 0
|
||||
Decorate 79(g_tTex2du4) DescriptorSet 0
|
||||
Decorate 91(g_tTexcdf4) DescriptorSet 0
|
||||
Decorate 101(g_tTexcdi4) DescriptorSet 0
|
||||
Decorate 111(g_tTexcdu4) DescriptorSet 0
|
||||
Decorate 32(g_tTex1di4a) DescriptorSet 0
|
||||
Decorate 46(g_tTex1du4a) DescriptorSet 0
|
||||
Decorate 57(g_tTex2df4a) DescriptorSet 0
|
||||
Decorate 68(g_tTex2di4a) DescriptorSet 0
|
||||
Decorate 79(g_tTex2du4a) DescriptorSet 0
|
||||
Decorate 91(g_tTexcdf4a) DescriptorSet 0
|
||||
Decorate 101(g_tTexcdi4a) DescriptorSet 0
|
||||
Decorate 111(g_tTexcdu4a) DescriptorSet 0
|
||||
MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth
|
||||
Decorate 129(g_tTex1df4a) DescriptorSet 0
|
||||
Decorate 129(g_tTex1df4) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -349,7 +349,7 @@ gl_FragCoord origin is upper left
|
||||
8: TypePointer Function 7(fvec4)
|
||||
10: TypeImage 6(float) 1D array sampled format:Unknown
|
||||
11: TypePointer UniformConstant 10
|
||||
12(g_tTex1df4): 11(ptr) Variable UniformConstant
|
||||
12(g_tTex1df4a): 11(ptr) Variable UniformConstant
|
||||
14: TypeSampler
|
||||
15: TypePointer UniformConstant 14
|
||||
16(g_sSamp): 15(ptr) Variable UniformConstant
|
||||
@ -364,7 +364,7 @@ gl_FragCoord origin is upper left
|
||||
28: TypePointer Function 27(ivec4)
|
||||
30: TypeImage 26(int) 1D array sampled format:Unknown
|
||||
31: TypePointer UniformConstant 30
|
||||
32(g_tTex1di4): 31(ptr) Variable UniformConstant
|
||||
32(g_tTex1di4a): 31(ptr) Variable UniformConstant
|
||||
35: TypeSampledImage 30
|
||||
37: 6(float) Constant 1050253722
|
||||
38: 20(fvec2) ConstantComposite 22 37
|
||||
@ -373,42 +373,42 @@ gl_FragCoord origin is upper left
|
||||
42: TypePointer Function 41(ivec4)
|
||||
44: TypeImage 40(int) 1D array sampled format:Unknown
|
||||
45: TypePointer UniformConstant 44
|
||||
46(g_tTex1du4): 45(ptr) Variable UniformConstant
|
||||
46(g_tTex1du4a): 45(ptr) Variable UniformConstant
|
||||
49: TypeSampledImage 44
|
||||
51: 6(float) Constant 1053609165
|
||||
52: 20(fvec2) ConstantComposite 37 51
|
||||
55: TypeImage 6(float) 2D array sampled format:Unknown
|
||||
56: TypePointer UniformConstant 55
|
||||
57(g_tTex2df4): 56(ptr) Variable UniformConstant
|
||||
57(g_tTex2df4a): 56(ptr) Variable UniformConstant
|
||||
60: TypeSampledImage 55
|
||||
62: TypeVector 6(float) 3
|
||||
63: 62(fvec3) ConstantComposite 21 22 37
|
||||
66: TypeImage 26(int) 2D array sampled format:Unknown
|
||||
67: TypePointer UniformConstant 66
|
||||
68(g_tTex2di4): 67(ptr) Variable UniformConstant
|
||||
68(g_tTex2di4a): 67(ptr) Variable UniformConstant
|
||||
71: TypeSampledImage 66
|
||||
73: 6(float) Constant 1056964608
|
||||
74: 62(fvec3) ConstantComposite 37 51 73
|
||||
77: TypeImage 40(int) 2D array sampled format:Unknown
|
||||
78: TypePointer UniformConstant 77
|
||||
79(g_tTex2du4): 78(ptr) Variable UniformConstant
|
||||
79(g_tTex2du4a): 78(ptr) Variable UniformConstant
|
||||
82: TypeSampledImage 77
|
||||
84: 6(float) Constant 1058642330
|
||||
85: 6(float) Constant 1060320051
|
||||
86: 62(fvec3) ConstantComposite 73 84 85
|
||||
89: TypeImage 6(float) Cube array sampled format:Unknown
|
||||
90: TypePointer UniformConstant 89
|
||||
91(g_tTexcdf4): 90(ptr) Variable UniformConstant
|
||||
91(g_tTexcdf4a): 90(ptr) Variable UniformConstant
|
||||
94: TypeSampledImage 89
|
||||
96: 7(fvec4) ConstantComposite 21 22 37 51
|
||||
99: TypeImage 26(int) Cube array sampled format:Unknown
|
||||
100: TypePointer UniformConstant 99
|
||||
101(g_tTexcdi4): 100(ptr) Variable UniformConstant
|
||||
101(g_tTexcdi4a): 100(ptr) Variable UniformConstant
|
||||
104: TypeSampledImage 99
|
||||
106: 7(fvec4) ConstantComposite 51 73 84 85
|
||||
109: TypeImage 40(int) Cube array sampled format:Unknown
|
||||
110: TypePointer UniformConstant 109
|
||||
111(g_tTexcdu4): 110(ptr) Variable UniformConstant
|
||||
111(g_tTexcdu4a): 110(ptr) Variable UniformConstant
|
||||
114: TypeSampledImage 109
|
||||
116: 6(float) Constant 1061997773
|
||||
117: 6(float) Constant 1063675494
|
||||
@ -418,7 +418,7 @@ gl_FragCoord origin is upper left
|
||||
122: TypePointer Function 121(PS_OUTPUT)
|
||||
124: 26(int) Constant 1
|
||||
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
|
||||
5: Label
|
||||
9(txval10): 8(ptr) Variable Function
|
||||
@ -431,47 +431,47 @@ gl_FragCoord origin is upper left
|
||||
98(txval41): 28(ptr) Variable Function
|
||||
108(txval42): 42(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)
|
||||
19: 18 SampledImage 13 17
|
||||
25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24
|
||||
Store 9(txval10) 25
|
||||
33: 30 Load 32(g_tTex1di4)
|
||||
33: 30 Load 32(g_tTex1di4a)
|
||||
34: 14 Load 16(g_sSamp)
|
||||
36: 35 SampledImage 33 34
|
||||
39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24
|
||||
Store 29(txval11) 39
|
||||
47: 44 Load 46(g_tTex1du4)
|
||||
47: 44 Load 46(g_tTex1du4a)
|
||||
48: 14 Load 16(g_sSamp)
|
||||
50: 49 SampledImage 47 48
|
||||
53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24
|
||||
Store 43(txval12) 53
|
||||
58: 55 Load 57(g_tTex2df4)
|
||||
58: 55 Load 57(g_tTex2df4a)
|
||||
59: 14 Load 16(g_sSamp)
|
||||
61: 60 SampledImage 58 59
|
||||
64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24
|
||||
Store 54(txval20) 64
|
||||
69: 66 Load 68(g_tTex2di4)
|
||||
69: 66 Load 68(g_tTex2di4a)
|
||||
70: 14 Load 16(g_sSamp)
|
||||
72: 71 SampledImage 69 70
|
||||
75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24
|
||||
Store 65(txval21) 75
|
||||
80: 77 Load 79(g_tTex2du4)
|
||||
80: 77 Load 79(g_tTex2du4a)
|
||||
81: 14 Load 16(g_sSamp)
|
||||
83: 82 SampledImage 80 81
|
||||
87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24
|
||||
Store 76(txval22) 87
|
||||
92: 89 Load 91(g_tTexcdf4)
|
||||
92: 89 Load 91(g_tTexcdf4a)
|
||||
93: 14 Load 16(g_sSamp)
|
||||
95: 94 SampledImage 92 93
|
||||
97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24
|
||||
Store 88(txval40) 97
|
||||
102: 99 Load 101(g_tTexcdi4)
|
||||
102: 99 Load 101(g_tTexcdi4a)
|
||||
103: 14 Load 16(g_sSamp)
|
||||
105: 104 SampledImage 102 103
|
||||
107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24
|
||||
Store 98(txval41) 107
|
||||
112: 109 Load 111(g_tTexcdu4)
|
||||
112: 109 Load 111(g_tTexcdu4a)
|
||||
113: 14 Load 16(g_sSamp)
|
||||
115: 114 SampledImage 112 113
|
||||
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);
|
||||
|
||||
uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
|
||||
Texture1DArray <int4> g_tTex1di4;
|
||||
Texture1DArray <uint4> g_tTex1du4;
|
||||
Texture1DArray <int4> g_tTex1di4a;
|
||||
Texture1DArray <uint4> g_tTex1du4a;
|
||||
|
||||
Texture2DArray <float4> g_tTex2df4;
|
||||
Texture2DArray <int4> g_tTex2di4;
|
||||
Texture2DArray <uint4> g_tTex2du4;
|
||||
Texture2DArray <float4> g_tTex2df4a;
|
||||
Texture2DArray <int4> g_tTex2di4a;
|
||||
Texture2DArray <uint4> g_tTex2du4a;
|
||||
|
||||
TextureCubeArray <float4> g_tTexcdf4;
|
||||
TextureCubeArray <int4> g_tTexcdi4;
|
||||
TextureCubeArray <uint4> g_tTexcdu4;
|
||||
TextureCubeArray <float4> g_tTexcdf4a;
|
||||
TextureCubeArray <int4> g_tTexcdi4a;
|
||||
TextureCubeArray <uint4> g_tTexcdu4a;
|
||||
|
||||
struct PS_OUTPUT
|
||||
{
|
||||
@ -24,17 +24,17 @@ PS_OUTPUT main()
|
||||
{
|
||||
PS_OUTPUT psout;
|
||||
|
||||
float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
|
||||
int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75);
|
||||
uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75);
|
||||
float4 txval10 = g_tTex1df4a . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
|
||||
int4 txval11 = g_tTex1di4a . SampleLevel(g_sSamp, float2(0.2, 0.3), 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);
|
||||
int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75);
|
||||
uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75);
|
||||
float4 txval20 = g_tTex2df4a . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
|
||||
int4 txval21 = g_tTex2di4a . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 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);
|
||||
int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75);
|
||||
uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75);
|
||||
float4 txval40 = g_tTexcdf4a . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
|
||||
int4 txval41 = g_tTexcdi4a . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 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.Depth = 1.0;
|
||||
|
@ -81,6 +81,11 @@ INSTANTIATE_TEST_CASE_P(
|
||||
{"hlsl.float1.frag", "PixelShaderFunction"},
|
||||
{"hlsl.float4.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.vert", "main"},
|
||||
{"hlsl.if.frag", "PixelShaderFunction"},
|
||||
|
@ -1221,6 +1221,35 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
|
||||
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:
|
||||
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 IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; }
|
||||
bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; }
|
||||
// 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;
|
||||
}
|
||||
|
||||
// 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
|
||||
if (name == "Load" && dim0 == 4)
|
||||
return true; // Load does not support any cubemaps, arrayed or not.
|
||||
@ -119,6 +128,29 @@ bool HasMipInCoord(const glslang::TString& name)
|
||||
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
|
||||
// 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 isTexture = IsTextureType(argOrder[0]);
|
||||
const bool isArrayed = IsTextureArrayed(argOrder[0]);
|
||||
const bool isSampler = IsSamplerType(argType[0]);
|
||||
//const bool isMS = IsTextureMS(argOrder[0]);
|
||||
|
||||
char order = *argOrder;
|
||||
char type = *argType;
|
||||
|
||||
if (isTranspose) { // Take transpose of matrix dimensions
|
||||
order = *++argOrder;
|
||||
std::swap(dim0, dim1);
|
||||
} else if (isMatMul) {
|
||||
order = *++argOrder;
|
||||
dim0 = dim1; // set vector dimension to mat col
|
||||
} else if (isTexture) {
|
||||
order = *++argOrder;
|
||||
if (type == 'F') // map base type to texture of that type.
|
||||
type = 'T'; // e.g, int -> itexture, uint -> utexture, etc.
|
||||
else if (type == 'I')
|
||||
@ -153,6 +182,11 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
|
||||
type = 'u';
|
||||
}
|
||||
|
||||
while (!isalpha(*argOrder))
|
||||
++argOrder;
|
||||
|
||||
char order = *argOrder;
|
||||
|
||||
if (UseHlslTypes) {
|
||||
switch (type) {
|
||||
case '-': s += "void"; break;
|
||||
@ -197,8 +231,8 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
|
||||
dim0 = dim1 = fixedVecSize;
|
||||
|
||||
// Add sampler dimensions
|
||||
if (type == 'S' || isTexture) {
|
||||
if (order == 'V') {
|
||||
if (isSampler || isTexture) {
|
||||
if (order == 'V' || isTexture) {
|
||||
switch (dim0) {
|
||||
case 1: s += "1D"; break;
|
||||
case 2: s += "2D"; break;
|
||||
@ -378,7 +412,9 @@ void TBuiltInParseablesHlsl::createMatTimesMat()
|
||||
//
|
||||
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.
|
||||
// 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
|
||||
unsigned int stage; // stage mask
|
||||
} hlslIntrinsics[] = {
|
||||
// name retOrd retType argOrder argType stage mask
|
||||
// name retOrd retType argOrder argType stage mask
|
||||
// -----------------------------------------------------------------------------------------------
|
||||
{ "abort", nullptr, nullptr, "-", "-", EShLangAll },
|
||||
{ "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
|
||||
{ "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "all", "S", "B", "SVM", "BFI", EShLangAll },
|
||||
{ "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "any", "S", "B", "SVM", "BFI", EShLangAll },
|
||||
{ "asdouble", "S", "D", "S,", "U,", EShLangAll },
|
||||
{ "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
|
||||
{ "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
|
||||
{ "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "asint", nullptr, "I", "SVM", "FU", EShLangAll },
|
||||
{ "asuint", nullptr, "U", "SVM", "FU", EShLangAll },
|
||||
{ "atan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "ceil", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll },
|
||||
{ "clip", "-", "-", "SVM", "F", EShLangFragmentMask },
|
||||
{ "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
|
||||
{ "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
|
||||
{ "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
|
||||
{ "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "degrees", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "determinant", "S", "F", "M", "F", EShLangAll },
|
||||
{ "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "distance", "S", "F", "V,", "F,", EShLangAll },
|
||||
{ "dot", "S", nullptr, "V,", "FI,", EShLangAll },
|
||||
{ "dst", nullptr, nullptr, "V4,V4", "F,", EShLangAll },
|
||||
// { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||
{ "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
|
||||
{ "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
|
||||
{ "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
|
||||
{ "f32tof16", nullptr, "U", "SV", "F", EShLangAll },
|
||||
{ "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll },
|
||||
{ "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll },
|
||||
{ "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll },
|
||||
{ "floor", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll },
|
||||
{ "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "frac", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll },
|
||||
{ "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll },
|
||||
{ "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
|
||||
{ "isfinite", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||
{ "isinf", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||
{ "isnan", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||
{ "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "length", "S", "F", "V", "F", EShLangAll },
|
||||
{ "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
||||
{ "lit", "V4", "F", "S,,", "F,,", EShLangAll },
|
||||
{ "log", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
|
||||
{ "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
||||
{ "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
||||
{ "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
|
||||
{ "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
|
||||
{ "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
|
||||
{ "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
|
||||
{ "mul", "M", nullptr, "S,M", "FI,", EShLangAll },
|
||||
{ "mul", "V", nullptr, "V,S", "FI,", EShLangAll },
|
||||
{ "mul", "S", nullptr, "V,V", "FI,", EShLangAll },
|
||||
{ "mul", "#V", nullptr, "V,M", "FI,", EShLangAll },
|
||||
{ "mul", "M", nullptr, "M,S", "FI,", EShLangAll },
|
||||
{ "mul", "V", nullptr, "M,#V", "FI,", EShLangAll },
|
||||
{ "abort", nullptr, nullptr, "-", "-", EShLangAll },
|
||||
{ "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
|
||||
{ "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "all", "S", "B", "SVM", "BFI", EShLangAll },
|
||||
{ "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "any", "S", "B", "SVM", "BFI", EShLangAll },
|
||||
{ "asdouble", "S", "D", "S,", "U,", EShLangAll },
|
||||
{ "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
|
||||
{ "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
|
||||
{ "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "asint", nullptr, "I", "SVM", "FU", EShLangAll },
|
||||
{ "asuint", nullptr, "U", "SVM", "FU", EShLangAll },
|
||||
{ "atan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "ceil", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS },
|
||||
{ "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll },
|
||||
{ "clip", "-", "-", "SVM", "F", EShLangFragmentMask },
|
||||
{ "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
|
||||
{ "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
|
||||
{ "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
|
||||
{ "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "degrees", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "determinant", "S", "F", "M", "F", EShLangAll },
|
||||
{ "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS },
|
||||
{ "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "distance", "S", "F", "V,", "F,", EShLangAll },
|
||||
{ "dot", "S", nullptr, "V,", "FI,", EShLangAll },
|
||||
{ "dst", nullptr, nullptr, "V4,", "F,", EShLangAll },
|
||||
// { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||
{ "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
|
||||
{ "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
|
||||
{ "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
|
||||
{ "f32tof16", nullptr, "U", "SV", "F", EShLangAll },
|
||||
{ "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll },
|
||||
{ "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll },
|
||||
{ "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll },
|
||||
{ "floor", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll },
|
||||
{ "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "frac", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||
{ "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll },
|
||||
{ "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll },
|
||||
{ "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
|
||||
{ "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||
{ "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||
{ "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS },
|
||||
{ "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||
{ "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||
{ "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||
{ "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
|
||||
{ "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS },
|
||||
{ "isfinite", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||
{ "isinf", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||
{ "isnan", nullptr, "B" , "SVM", "F", EShLangAll },
|
||||
{ "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "length", "S", "F", "V", "F", EShLangAll },
|
||||
{ "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
||||
{ "lit", "V4", "F", "S,,", "F,,", EShLangAll },
|
||||
{ "log", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
|
||||
{ "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
||||
{ "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
|
||||
{ "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
|
||||
{ "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
|
||||
{ "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
|
||||
{ "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
|
||||
{ "mul", "M", nullptr, "S,M", "FI,", EShLangAll },
|
||||
{ "mul", "V", nullptr, "V,S", "FI,", EShLangAll },
|
||||
{ "mul", "S", nullptr, "V,V", "FI,", EShLangAll },
|
||||
{ "mul", "#V", nullptr, "V,M", "FI,", EShLangAll },
|
||||
{ "mul", "M", nullptr, "M,S", "FI,", EShLangAll },
|
||||
{ "mul", "V", nullptr, "M,#V", "FI,", EShLangAll },
|
||||
// mat*mat form of mul is handled in createMatTimesMat()
|
||||
{ "noise", "S", "F", "V", "F", EShLangFragmentMask },
|
||||
{ "normalize", nullptr, nullptr, "V", "F", EShLangAll },
|
||||
{ "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
// { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||
{ "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
||||
{ "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
||||
{ "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask },
|
||||
{ "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
|
||||
{ "radians", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
|
||||
{ "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
|
||||
{ "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
|
||||
{ "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
|
||||
{ "round", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
|
||||
{ "sign", nullptr, nullptr, "SVM", "FI", EShLangAll },
|
||||
{ "sin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll },
|
||||
{ "sinh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
||||
{ "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "step", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "tan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "tanh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask },
|
||||
{ "tex1D", "V4", "F", "V1,S,V1,V1", "S,F,F,F",EShLangFragmentMask },
|
||||
{ "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex1Dgrad", "V4", "F", "V1,V1,V1,V1","S,F,F,F",EShLangFragmentMask },
|
||||
{ "tex1Dlod", "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,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
|
||||
{ "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex2Dgrad", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
|
||||
{ "tex2Dlod", "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,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
||||
{ "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex3Dgrad", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
||||
{ "tex3Dlod", "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,V3,V3","S,F,F,F",EShLangFragmentMask },
|
||||
{ "texCUBEbias", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
|
||||
{ "texCUBEgrad", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
|
||||
{ "texCUBElod", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
|
||||
{ "texCUBEproj", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
|
||||
{ "transpose", "^M", nullptr, "M", "F", EShLangAll },
|
||||
{ "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "noise", "S", "F", "V", "F", EShLangFragmentMask },
|
||||
{ "normalize", nullptr, nullptr, "V", "F", EShLangAll },
|
||||
{ "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
// { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||
{ "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||
{ "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||
{ "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask },
|
||||
{ "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
|
||||
{ "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
|
||||
{ "radians", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
|
||||
{ "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
|
||||
{ "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
|
||||
{ "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
|
||||
{ "round", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
|
||||
{ "sign", nullptr, nullptr, "SVM", "FI", EShLangAll },
|
||||
{ "sin", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll },
|
||||
{ "sinh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
|
||||
{ "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "step", nullptr, nullptr, "SVM,", "F,", EShLangAll },
|
||||
{ "tan", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "tanh", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
{ "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask },
|
||||
{ "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangFragmentMask },
|
||||
{ "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangFragmentMask },
|
||||
{ "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex2D", "V4", "F", "V2,", "S,F", EShLangFragmentMask },
|
||||
{ "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask },
|
||||
{ "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask },
|
||||
{ "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex3D", "V4", "F", "V3,", "S,F", EShLangFragmentMask },
|
||||
{ "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask },
|
||||
{ "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
|
||||
{ "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask },
|
||||
{ "tex3Dlod", "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 },
|
||||
{ "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
|
||||
{ "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask },
|
||||
{ "texCUBElod", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
|
||||
{ "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
|
||||
{ "transpose", "^M", nullptr, "M", "F", EShLangAll },
|
||||
{ "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||
|
||||
// Texture object methods. Return type can be overridden by shader declaration.
|
||||
// !O = no offset, O = offset, !A = no array, A = array
|
||||
{ "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask },
|
||||
{ "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
|
||||
{ "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask },
|
||||
{ "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
|
||||
// !O = no offset, O = offset
|
||||
{ "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangFragmentMask },
|
||||
{ "Sample", /* O*/ "V4", nullptr, "%@,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 },
|
||||
{ "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
|
||||
{ "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
|
||||
{ "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangFragmentMask },
|
||||
{ "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangFragmentMask },
|
||||
|
||||
// TODO: FXC accepts int/uint samplers here. unclear what that means.
|
||||
{ "SampleCmp", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
|
||||
{ "SampleCmp", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
|
||||
{ "SampleCmp", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
|
||||
{ "SampleCmp", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
|
||||
{ "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangFragmentMask },
|
||||
{ "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangFragmentMask },
|
||||
|
||||
// TODO: FXC accepts int/uint samplers here. unclear what that means.
|
||||
{ "SampleCmpLevelZero", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
|
||||
{ "SampleCmpLevelZero", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
|
||||
{ "SampleCmpLevelZero", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
|
||||
{ "SampleCmpLevelZero", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
|
||||
{ "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
|
||||
{ "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
|
||||
|
||||
{ "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll },
|
||||
{ "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
|
||||
{ "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll },
|
||||
{ "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
|
||||
{ "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll },
|
||||
{ "SampleGrad", /* O*/ "V4", nullptr, "%@,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 },
|
||||
{ "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll },
|
||||
{ "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll },
|
||||
{ "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll },
|
||||
{ "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll },
|
||||
|
||||
{ "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll },
|
||||
{ "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll },
|
||||
{ "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll },
|
||||
{ "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll },
|
||||
{ "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll },
|
||||
{ "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll },
|
||||
// TODO: MS variants of Load
|
||||
// { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll },
|
||||
// { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll },
|
||||
// { "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 },
|
||||
|
||||
{ "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
|
||||
//
|
||||
// UINT Width
|
||||
// UINT MipLevel, UINT Width, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,U", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,F", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,U", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,F", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll },
|
||||
{ "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll },
|
||||
|
||||
// UINT Width, UINT Elements
|
||||
// UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,U,", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,F,", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll },
|
||||
{ "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll },
|
||||
|
||||
// UINT Width, UINT Height
|
||||
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,U,", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,F,", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll },
|
||||
{ "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll },
|
||||
|
||||
// UINT Width, UINT Height, UINT Elements
|
||||
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,U,,", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll },
|
||||
{ "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll },
|
||||
|
||||
// UINT Width, UINT Height, UINT Depth
|
||||
// UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,U,,", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,F,,", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll },
|
||||
{ "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll },
|
||||
|
||||
// UINT Width, UINT Height
|
||||
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll },
|
||||
{ "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll },
|
||||
|
||||
// UINT Width, UINT Height, UINT Elements
|
||||
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll },
|
||||
{ "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll },
|
||||
|
||||
// TODO: GetDimensions for Texture2DMS, Texture2DMSArray
|
||||
// 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("("); // open paren
|
||||
|
||||
const char* prevArgOrder = nullptr;
|
||||
const char* prevArgType = nullptr;
|
||||
|
||||
// Append argument types, if any.
|
||||
for (int arg = 0; ; ++arg) {
|
||||
const char* nthArgOrder(NthArg(argOrder, arg));
|
||||
@ -720,6 +748,18 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
|
||||
// cube textures use vec3 coordinates
|
||||
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
|
||||
if (isArrayed && arg == coordArg)
|
||||
argDim0++;
|
||||
@ -732,34 +772,20 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
|
||||
if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V')
|
||||
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
|
||||
}
|
||||
|
||||
s.append(");\n"); // close paren and trailing semicolon
|
||||
}
|
||||
}
|
||||
}
|
||||
} // dim 1 loop
|
||||
} // dim 0 loop
|
||||
} // arg type loop
|
||||
|
||||
// skip over special characters
|
||||
if (isTexture)
|
||||
if (isTexture && isalpha(argOrder[1]))
|
||||
++argOrder;
|
||||
if (isdigit(argOrder[1]))
|
||||
++argOrder;
|
||||
}
|
||||
} // arg order loop
|
||||
|
||||
if (intrinsic.stage == EShLangAll) // common builtins are only added once.
|
||||
break;
|
||||
@ -946,6 +972,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
|
||||
symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel);
|
||||
symbolTable.relateToOperator("Load", EOpMethodLoad);
|
||||
symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions);
|
||||
symbolTable.relateToOperator("Gather", EOpMethodGather);
|
||||
}
|
||||
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user