mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-05 01:37:07 +00:00
0842dbb39a
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.
327 lines
15 KiB
Plaintext
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
|