glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
steve-lunarg 0842dbb39a HLSL: use HLSL parser to parse HLSL intrinsic prototypes, enable int/bool mats
This PR adds a CreateParseContext() fn analogous to CreateBuiltInParseables(),
to create a language specific built in parser.  (This code was present before
but not encapsualted in a fn).  This can now be used to create a source language
specific parser for builtins.

Along with this, the code creating HLSL intrinsic prototypes can now produce
them in HLSL syntax, rather than GLSL syntax.  This relaxes certain prior
restrictions at the parser level.  Lower layers (e.g, SPIR-V) may still have
such restrictions, such as around Nx1 matrices: this code does not impact
that.

This PR also fleshes out matrix types for bools and ints, both of which were
partially in place before.  This was easier than maintaining the restrictions
in the HLSL prototype generator to avoid creating protoypes with those types.

Many tests change because the result type from intrinsics moves from "global"
to "temp".

Several new tests are added for the new types.
2016-11-16 11:19:22 -07:00

327 lines
15 KiB
Plaintext

hlsl.gather.offsetarray.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float 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 (temp 4-component vector of float)
0:25 Construct combined texture-sampler (temp sampler2DArray)
0:25 'g_tTex2df4' (uniform texture2DArray)
0:25 'g_sSamp' (layout(binding=0 ) 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 (temp 4-component vector of int)
0:26 Construct combined texture-sampler (temp isampler2DArray)
0:26 'g_tTex2di4' (uniform itexture2DArray)
0:26 'g_sSamp' (layout(binding=0 ) 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 (temp 4-component vector of uint)
0:27 Construct combined texture-sampler (temp usampler2DArray)
0:27 'g_tTex2du4' (uniform utexture2DArray)
0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:? Constant:
0:? 1 (const int)
0:? -1 (const int)
0:32 move second child to first child (temp 4-component vector of float)
0:32 Color: direct index for structure (temp 4-component vector of float)
0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:33 move second child to first child (temp float)
0:33 Depth: direct index for structure (temp float)
0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1.000000
0:35 Sequence
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:35 Color: direct index for structure (temp 4-component vector of float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 0 (const int)
0:35 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:35 Depth: direct index for structure (temp float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 1 (const int)
0:35 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) 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:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float 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 (temp 4-component vector of float)
0:25 Construct combined texture-sampler (temp sampler2DArray)
0:25 'g_tTex2df4' (uniform texture2DArray)
0:25 'g_sSamp' (layout(binding=0 ) 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 (temp 4-component vector of int)
0:26 Construct combined texture-sampler (temp isampler2DArray)
0:26 'g_tTex2di4' (uniform itexture2DArray)
0:26 'g_sSamp' (layout(binding=0 ) 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 (temp 4-component vector of uint)
0:27 Construct combined texture-sampler (temp usampler2DArray)
0:27 'g_tTex2du4' (uniform utexture2DArray)
0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:? Constant:
0:? 1 (const int)
0:? -1 (const int)
0:32 move second child to first child (temp 4-component vector of float)
0:32 Color: direct index for structure (temp 4-component vector of float)
0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:33 move second child to first child (temp float)
0:33 Depth: direct index for structure (temp float)
0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1.000000
0:35 Sequence
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:35 Color: direct index for structure (temp 4-component vector of float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 0 (const int)
0:35 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:35 Depth: direct index for structure (temp float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 1 (const int)
0:35 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) 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 90
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 72 76
ExecutionMode 4 OriginUpperLeft
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 72 "Color"
Name 76 "Depth"
Name 82 "g_tTex1df4a"
Name 83 "g_tTex1df4"
Name 86 "g_tTex1di4"
Name 89 "g_tTex1du4"
Decorate 12(g_tTex2df4) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 36(g_tTex2di4) DescriptorSet 0
Decorate 51(g_tTex2du4) DescriptorSet 0
Decorate 72(Color) Location 0
Decorate 76(Depth) BuiltIn FragDepth
Decorate 82(g_tTex1df4a) DescriptorSet 0
Decorate 82(g_tTex1df4a) Binding 1
Decorate 83(g_tTex1df4) DescriptorSet 0
Decorate 83(g_tTex1df4) Binding 0
Decorate 86(g_tTex1di4) DescriptorSet 0
Decorate 89(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: 7(fvec4) ConstantComposite 66 66 66 66
69: TypePointer Function 6(float)
71: TypePointer Output 7(fvec4)
72(Color): 71(ptr) Variable Output
75: TypePointer Output 6(float)
76(Depth): 75(ptr) Variable Output
80: TypeImage 6(float) 1D array sampled format:Unknown
81: TypePointer UniformConstant 80
82(g_tTex1df4a): 81(ptr) Variable UniformConstant
83(g_tTex1df4): 81(ptr) Variable UniformConstant
84: TypeImage 25(int) 1D array sampled format:Unknown
85: TypePointer UniformConstant 84
86(g_tTex1di4): 85(ptr) Variable UniformConstant
87: TypeImage 45(int) 1D array sampled format:Unknown
88: TypePointer UniformConstant 87
89(g_tTex1du4): 88(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: 8(ptr) AccessChain 65(psout) 28
Store 68 67
70: 69(ptr) AccessChain 65(psout) 27
Store 70 66
73: 8(ptr) AccessChain 65(psout) 28
74: 7(fvec4) Load 73
Store 72(Color) 74
77: 69(ptr) AccessChain 65(psout) 27
78: 6(float) Load 77
Store 76(Depth) 78
Return
FunctionEnd