SPV constants and constOffsets completion: isConstant() and disassembler to see results.

Expand to full isConstant() implementation.
Fix disassembler to generate texture look-up masks.
This commit is contained in:
John Kessenich 2015-10-13 10:39:19 -06:00
parent d4a7a8e721
commit 716312771c
7 changed files with 74 additions and 57 deletions

View File

@ -500,6 +500,27 @@ Id Builder::findScalarConstant(Op typeClass, Id typeId, unsigned v1, unsigned v2
return 0; return 0;
} }
bool Builder::isConstantOpCode(Op opcode) const
{
switch (opcode) {
case OpUndef:
case OpConstantTrue:
case OpConstantFalse:
case OpConstant:
case OpConstantComposite:
case OpConstantSampler:
case OpConstantNull:
case OpSpecConstantTrue:
case OpSpecConstantFalse:
case OpSpecConstant:
case OpSpecConstantComposite:
case OpSpecConstantOp:
return true;
default:
return false;
}
}
Id Builder::makeBoolConstant(bool b) Id Builder::makeBoolConstant(bool b)
{ {
Id typeId = makeBoolType(); Id typeId = makeBoolType();
@ -1194,7 +1215,6 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b
mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask); mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask);
texArgs[numArgs++] = parameters.offset; texArgs[numArgs++] = parameters.offset;
} }
// TBD: if Offset is constant, use ImageOperandsConstOffsetMask
if (parameters.offsets) { if (parameters.offsets) {
mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask); mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask);
texArgs[numArgs++] = parameters.offsets; texArgs[numArgs++] = parameters.offsets;

View File

@ -136,11 +136,8 @@ public:
bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; }
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; }
bool isConstant(Id resultId) const bool isConstantOpCode(Op opcode) const;
{ bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); }
Op opCode = getOpCode(resultId);
return opCode == OpConstantTrue || opCode == OpConstantFalse || opCode == OpConstant || opCode == OpConstantComposite || opCode == OpConstantNull;
}
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; } bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); } unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }

View File

@ -398,7 +398,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
disassembleIds(numOperands); disassembleIds(numOperands);
return; return;
case OperandOptionalImage: case OperandOptionalImage:
outputMask(operandClass, stream[word++]); outputMask(OperandImageOperands, stream[word++]);
--numOperands; --numOperands;
disassembleIds(numOperands); disassembleIds(numOperands);
return; return;

View File

@ -184,7 +184,7 @@ Linked fragment stage:
Store 9(v) 30 Store 9(v) 30
35: 32 Load 34(s2DArray) 35: 32 Load 34(s2DArray)
39: 36(fvec3) Load 38(c3D) 39: 36(fvec3) Load 38(c3D)
41: 7(fvec4) ImageSampleExplicitLod 35 39 40 41: 7(fvec4) ImageSampleExplicitLod 35 39 Lod 40
42: 7(fvec4) Load 9(v) 42: 7(fvec4) Load 9(v)
43: 7(fvec4) FAdd 42 41 43: 7(fvec4) FAdd 42 41
Store 9(v) 43 Store 9(v) 43
@ -192,7 +192,7 @@ Linked fragment stage:
49: 36(fvec3) Load 38(c3D) 49: 36(fvec3) Load 38(c3D)
56: 6(float) Load 55(c1D) 56: 6(float) Load 55(c1D)
57: 6(float) CompositeExtract 49 2 57: 6(float) CompositeExtract 49 2
58: 6(float) ImageSampleDrefImplicitLod 48 49 57 56 53 58: 6(float) ImageSampleDrefImplicitLod 48 49 57 Bias ConstOffset 56 53
59: 7(fvec4) Load 9(v) 59: 7(fvec4) Load 9(v)
60: 6(float) CompositeExtract 59 1 60: 6(float) CompositeExtract 59 1
61: 6(float) FAdd 60 58 61: 6(float) FAdd 60 58
@ -202,19 +202,19 @@ Linked fragment stage:
64: 21 Load 23(s3D) 64: 21 Load 23(s3D)
68: 65(ivec3) Load 67(ic3D) 68: 65(ivec3) Load 67(ic3D)
71: 50(int) Load 70(ic1D) 71: 50(int) Load 70(ic1D)
72: 7(fvec4) ImageFetch 64 68 71 72: 7(fvec4) ImageFetch 64 68 Lod 71
73: 7(fvec4) Load 9(v) 73: 7(fvec4) Load 9(v)
74: 7(fvec4) FAdd 73 72 74: 7(fvec4) FAdd 73 72
Store 9(v) 74 Store 9(v) 74
75: 11 Load 13(s2D) 75: 11 Load 13(s2D)
78: 51(ivec2) Load 77(ic2D) 78: 51(ivec2) Load 77(ic2D)
80: 7(fvec4) ImageFetch 75 78 79 53 80: 7(fvec4) ImageFetch 75 78 Lod ConstOffset 79 53
81: 7(fvec4) Load 9(v) 81: 7(fvec4) Load 9(v)
82: 7(fvec4) FAdd 81 80 82: 7(fvec4) FAdd 81 80
Store 9(v) 82 Store 9(v) 82
87: 84 Load 86(sr) 87: 84 Load 86(sr)
88: 51(ivec2) Load 77(ic2D) 88: 51(ivec2) Load 77(ic2D)
90: 7(fvec4) ImageFetch 87 88 89 90: 7(fvec4) ImageFetch 87 88 ConstOffset 89
91: 7(fvec4) Load 9(v) 91: 7(fvec4) Load 9(v)
92: 7(fvec4) FAdd 91 90 92: 7(fvec4) FAdd 91 90
Store 9(v) 92 Store 9(v) 92
@ -222,7 +222,7 @@ Linked fragment stage:
94: 36(fvec3) Load 38(c3D) 94: 36(fvec3) Load 38(c3D)
95: 6(float) Load 55(c1D) 95: 6(float) Load 55(c1D)
96: 6(float) CompositeExtract 94 2 96: 6(float) CompositeExtract 94 2
97: 6(float) ImageSampleDrefExplicitLod 93 94 96 95 53 97: 6(float) ImageSampleDrefExplicitLod 93 94 96 Lod ConstOffset 95 53
98: 7(fvec4) Load 9(v) 98: 7(fvec4) Load 9(v)
99: 6(float) CompositeExtract 98 1 99: 6(float) CompositeExtract 98 1
100: 6(float) FAdd 99 97 100: 6(float) FAdd 99 97
@ -232,7 +232,7 @@ Linked fragment stage:
103: 11 Load 13(s2D) 103: 11 Load 13(s2D)
104: 36(fvec3) Load 38(c3D) 104: 36(fvec3) Load 38(c3D)
105: 6(float) Load 55(c1D) 105: 6(float) Load 55(c1D)
106: 7(fvec4) ImageSampleProjExplicitLod 103 104 105 53 106: 7(fvec4) ImageSampleProjExplicitLod 103 104 Lod ConstOffset 105 53
107: 7(fvec4) Load 9(v) 107: 7(fvec4) Load 9(v)
108: 7(fvec4) FAdd 107 106 108: 7(fvec4) FAdd 107 106
Store 9(v) 108 Store 9(v) 108
@ -240,7 +240,7 @@ Linked fragment stage:
114: 36(fvec3) Load 38(c3D) 114: 36(fvec3) Load 38(c3D)
115: 36(fvec3) Load 38(c3D) 115: 36(fvec3) Load 38(c3D)
116: 36(fvec3) Load 38(c3D) 116: 36(fvec3) Load 38(c3D)
117: 7(fvec4) ImageSampleExplicitLod 113 114 115 116 117: 7(fvec4) ImageSampleExplicitLod 113 114 Grad 115 116
118: 7(fvec4) Load 9(v) 118: 7(fvec4) Load 9(v)
119: 7(fvec4) FAdd 118 117 119: 7(fvec4) FAdd 118 117
Store 9(v) 119 Store 9(v) 119
@ -249,7 +249,7 @@ Linked fragment stage:
126: 15(fvec2) Load 17(c2D) 126: 15(fvec2) Load 17(c2D)
127: 15(fvec2) Load 17(c2D) 127: 15(fvec2) Load 17(c2D)
128: 6(float) CompositeExtract 125 3 128: 6(float) CompositeExtract 125 3
129: 6(float) ImageSampleDrefExplicitLod 124 125 128 126 127 53 129: 6(float) ImageSampleDrefExplicitLod 124 125 128 Grad ConstOffset 126 127 53
130: 7(fvec4) Load 9(v) 130: 7(fvec4) Load 9(v)
131: 6(float) CompositeExtract 130 0 131: 6(float) CompositeExtract 130 0
132: 6(float) FAdd 131 129 132: 6(float) FAdd 131 129
@ -260,7 +260,7 @@ Linked fragment stage:
136: 7(fvec4) Load 26(c4D) 136: 7(fvec4) Load 26(c4D)
137: 36(fvec3) Load 38(c3D) 137: 36(fvec3) Load 38(c3D)
138: 36(fvec3) Load 38(c3D) 138: 36(fvec3) Load 38(c3D)
139: 7(fvec4) ImageSampleProjExplicitLod 135 136 137 138 139: 7(fvec4) ImageSampleProjExplicitLod 135 136 Grad 137 138
140: 7(fvec4) Load 9(v) 140: 7(fvec4) Load 9(v)
141: 7(fvec4) FAdd 140 139 141: 7(fvec4) FAdd 140 139
Store 9(v) 141 Store 9(v) 141
@ -268,7 +268,7 @@ Linked fragment stage:
143: 36(fvec3) Load 38(c3D) 143: 36(fvec3) Load 38(c3D)
144: 15(fvec2) Load 17(c2D) 144: 15(fvec2) Load 17(c2D)
145: 15(fvec2) Load 17(c2D) 145: 15(fvec2) Load 17(c2D)
146: 7(fvec4) ImageSampleProjExplicitLod 142 143 144 145 53 146: 7(fvec4) ImageSampleProjExplicitLod 142 143 Grad ConstOffset 144 145 53
147: 7(fvec4) Load 9(v) 147: 7(fvec4) Load 9(v)
148: 7(fvec4) FAdd 147 146 148: 7(fvec4) FAdd 147 146
Store 9(v) 148 Store 9(v) 148
@ -283,7 +283,7 @@ Linked fragment stage:
Store 9(v) 162 Store 9(v) 162
163: 153 Load 155(is2D) 163: 153 Load 155(is2D)
164: 7(fvec4) Load 26(c4D) 164: 7(fvec4) Load 26(c4D)
165: 149(ivec4) ImageSampleProjImplicitLod 163 164 53 165: 149(ivec4) ImageSampleProjImplicitLod 163 164 ConstOffset 53
Store 151(iv) 165 Store 151(iv) 165
166: 149(ivec4) Load 151(iv) 166: 149(ivec4) Load 151(iv)
167: 7(fvec4) ConvertSToF 166 167: 7(fvec4) ConvertSToF 166
@ -293,7 +293,7 @@ Linked fragment stage:
170: 153 Load 155(is2D) 170: 153 Load 155(is2D)
171: 36(fvec3) Load 38(c3D) 171: 36(fvec3) Load 38(c3D)
172: 6(float) Load 55(c1D) 172: 6(float) Load 55(c1D)
173: 149(ivec4) ImageSampleProjExplicitLod 170 171 172 173: 149(ivec4) ImageSampleProjExplicitLod 170 171 Lod 172
Store 151(iv) 173 Store 151(iv) 173
174: 149(ivec4) Load 151(iv) 174: 149(ivec4) Load 151(iv)
175: 7(fvec4) ConvertSToF 174 175: 7(fvec4) ConvertSToF 174
@ -304,7 +304,7 @@ Linked fragment stage:
179: 36(fvec3) Load 38(c3D) 179: 36(fvec3) Load 38(c3D)
180: 15(fvec2) Load 17(c2D) 180: 15(fvec2) Load 17(c2D)
181: 15(fvec2) Load 17(c2D) 181: 15(fvec2) Load 17(c2D)
182: 149(ivec4) ImageSampleProjExplicitLod 178 179 180 181 182: 149(ivec4) ImageSampleProjExplicitLod 178 179 Grad 180 181
Store 151(iv) 182 Store 151(iv) 182
183: 149(ivec4) Load 151(iv) 183: 149(ivec4) Load 151(iv)
184: 7(fvec4) ConvertSToF 183 184: 7(fvec4) ConvertSToF 183
@ -313,7 +313,7 @@ Linked fragment stage:
Store 9(v) 186 Store 9(v) 186
191: 188 Load 190(is3D) 191: 188 Load 190(is3D)
192: 36(fvec3) Load 38(c3D) 192: 36(fvec3) Load 38(c3D)
194: 149(ivec4) ImageSampleImplicitLod 191 192 193 194: 149(ivec4) ImageSampleImplicitLod 191 192 Bias 193
Store 151(iv) 194 Store 151(iv) 194
195: 149(ivec4) Load 151(iv) 195: 149(ivec4) Load 151(iv)
196: 7(fvec4) ConvertSToF 195 196: 7(fvec4) ConvertSToF 195
@ -323,7 +323,7 @@ Linked fragment stage:
203: 200 Load 202(isCube) 203: 200 Load 202(isCube)
204: 36(fvec3) Load 38(c3D) 204: 36(fvec3) Load 38(c3D)
205: 6(float) Load 55(c1D) 205: 6(float) Load 55(c1D)
206: 149(ivec4) ImageSampleExplicitLod 203 204 205 206: 149(ivec4) ImageSampleExplicitLod 203 204 Lod 205
Store 151(iv) 206 Store 151(iv) 206
207: 149(ivec4) Load 151(iv) 207: 149(ivec4) Load 151(iv)
208: 7(fvec4) ConvertSToF 207 208: 7(fvec4) ConvertSToF 207
@ -333,7 +333,7 @@ Linked fragment stage:
215: 212 Load 214(is2DArray) 215: 212 Load 214(is2DArray)
216: 65(ivec3) Load 67(ic3D) 216: 65(ivec3) Load 67(ic3D)
217: 50(int) Load 70(ic1D) 217: 50(int) Load 70(ic1D)
218: 149(ivec4) ImageFetch 215 216 217 218: 149(ivec4) ImageFetch 215 216 Lod 217
Store 151(iv) 218 Store 151(iv) 218
219: 149(ivec4) Load 151(iv) 219: 149(ivec4) Load 151(iv)
220: 7(fvec4) ConvertSToF 219 220: 7(fvec4) ConvertSToF 219

View File

@ -142,7 +142,7 @@ Linked fragment stage:
38: 30 Load 32(texSampler1D) 38: 30 Load 32(texSampler1D)
39: 6(float) Load 15(coords1D) 39: 6(float) Load 15(coords1D)
40: 6(float) Load 10(bias) 40: 6(float) Load 10(bias)
41: 22(fvec4) ImageSampleImplicitLod 38 39 40 41: 22(fvec4) ImageSampleImplicitLod 38 39 Bias 40
42: 22(fvec4) Load 26(color) 42: 22(fvec4) Load 26(color)
43: 22(fvec4) FAdd 42 41 43: 22(fvec4) FAdd 42 41
Store 26(color) 43 Store 26(color) 43
@ -161,14 +161,14 @@ Linked fragment stage:
57: 30 Load 32(texSampler1D) 57: 30 Load 32(texSampler1D)
58: 45(fvec2) Load 47(coords2D) 58: 45(fvec2) Load 47(coords2D)
59: 6(float) Load 10(bias) 59: 6(float) Load 10(bias)
60: 22(fvec4) ImageSampleProjImplicitLod 57 58 59 60: 22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59
61: 22(fvec4) Load 26(color) 61: 22(fvec4) Load 26(color)
62: 22(fvec4) FAdd 61 60 62: 22(fvec4) FAdd 61 60
Store 26(color) 62 Store 26(color) 62
63: 30 Load 32(texSampler1D) 63: 30 Load 32(texSampler1D)
64: 22(fvec4) Load 24(coords4D) 64: 22(fvec4) Load 24(coords4D)
65: 6(float) Load 10(bias) 65: 6(float) Load 10(bias)
66: 22(fvec4) ImageSampleProjImplicitLod 63 64 65 66: 22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65
67: 22(fvec4) Load 26(color) 67: 22(fvec4) Load 26(color)
68: 22(fvec4) FAdd 67 66 68: 22(fvec4) FAdd 67 66
Store 26(color) 68 Store 26(color) 68
@ -181,7 +181,7 @@ Linked fragment stage:
78: 70 Load 72(texSampler2D) 78: 70 Load 72(texSampler2D)
79: 45(fvec2) Load 47(coords2D) 79: 45(fvec2) Load 47(coords2D)
80: 6(float) Load 10(bias) 80: 6(float) Load 10(bias)
81: 22(fvec4) ImageSampleImplicitLod 78 79 80 81: 22(fvec4) ImageSampleImplicitLod 78 79 Bias 80
82: 22(fvec4) Load 26(color) 82: 22(fvec4) Load 26(color)
83: 22(fvec4) FAdd 82 81 83: 22(fvec4) FAdd 82 81
Store 26(color) 83 Store 26(color) 83
@ -194,7 +194,7 @@ Linked fragment stage:
89: 70 Load 72(texSampler2D) 89: 70 Load 72(texSampler2D)
90: 22(fvec4) Load 24(coords4D) 90: 22(fvec4) Load 24(coords4D)
91: 6(float) Load 10(bias) 91: 6(float) Load 10(bias)
92: 22(fvec4) ImageSampleProjImplicitLod 89 90 91 92: 22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91
93: 22(fvec4) Load 26(color) 93: 22(fvec4) Load 26(color)
94: 22(fvec4) FAdd 93 92 94: 22(fvec4) FAdd 93 92
Store 26(color) 94 Store 26(color) 94
@ -207,7 +207,7 @@ Linked fragment stage:
104: 96 Load 98(texSampler3D) 104: 96 Load 98(texSampler3D)
105: 16(fvec3) Load 18(coords3D) 105: 16(fvec3) Load 18(coords3D)
106: 6(float) Load 10(bias) 106: 6(float) Load 10(bias)
107: 22(fvec4) ImageSampleImplicitLod 104 105 106 107: 22(fvec4) ImageSampleImplicitLod 104 105 Bias 106
108: 22(fvec4) Load 26(color) 108: 22(fvec4) Load 26(color)
109: 22(fvec4) FAdd 108 107 109: 22(fvec4) FAdd 108 107
Store 26(color) 109 Store 26(color) 109
@ -220,7 +220,7 @@ Linked fragment stage:
115: 96 Load 98(texSampler3D) 115: 96 Load 98(texSampler3D)
116: 22(fvec4) Load 24(coords4D) 116: 22(fvec4) Load 24(coords4D)
117: 6(float) Load 10(bias) 117: 6(float) Load 10(bias)
118: 22(fvec4) ImageSampleProjImplicitLod 115 116 117 118: 22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117
119: 22(fvec4) Load 26(color) 119: 22(fvec4) Load 26(color)
120: 22(fvec4) FAdd 119 118 120: 22(fvec4) FAdd 119 118
Store 26(color) 120 Store 26(color) 120
@ -233,7 +233,7 @@ Linked fragment stage:
130: 122 Load 124(texSamplerCube) 130: 122 Load 124(texSamplerCube)
131: 16(fvec3) Load 18(coords3D) 131: 16(fvec3) Load 18(coords3D)
132: 6(float) Load 10(bias) 132: 6(float) Load 10(bias)
133: 22(fvec4) ImageSampleImplicitLod 130 131 132 133: 22(fvec4) ImageSampleImplicitLod 130 131 Bias 132
134: 22(fvec4) Load 26(color) 134: 22(fvec4) Load 26(color)
135: 22(fvec4) FAdd 134 133 135: 22(fvec4) FAdd 134 133
Store 26(color) 135 Store 26(color) 135
@ -249,7 +249,7 @@ Linked fragment stage:
148: 16(fvec3) Load 18(coords3D) 148: 16(fvec3) Load 18(coords3D)
149: 6(float) Load 10(bias) 149: 6(float) Load 10(bias)
150: 6(float) CompositeExtract 148 2 150: 6(float) CompositeExtract 148 2
151: 6(float) ImageSampleDrefImplicitLod 147 148 150 149 151: 6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149
152: 22(fvec4) CompositeConstruct 151 151 151 151 152: 22(fvec4) CompositeConstruct 151 151 151 151
153: 22(fvec4) Load 26(color) 153: 22(fvec4) Load 26(color)
154: 22(fvec4) FAdd 153 152 154: 22(fvec4) FAdd 153 152
@ -266,7 +266,7 @@ Linked fragment stage:
167: 16(fvec3) Load 18(coords3D) 167: 16(fvec3) Load 18(coords3D)
168: 6(float) Load 10(bias) 168: 6(float) Load 10(bias)
169: 6(float) CompositeExtract 167 2 169: 6(float) CompositeExtract 167 2
170: 6(float) ImageSampleDrefImplicitLod 166 167 169 168 170: 6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168
171: 22(fvec4) CompositeConstruct 170 170 170 170 171: 22(fvec4) CompositeConstruct 170 170 170 170
172: 22(fvec4) Load 26(color) 172: 22(fvec4) Load 26(color)
173: 22(fvec4) FAdd 172 171 173: 22(fvec4) FAdd 172 171
@ -283,7 +283,7 @@ Linked fragment stage:
182: 22(fvec4) Load 24(coords4D) 182: 22(fvec4) Load 24(coords4D)
183: 6(float) Load 10(bias) 183: 6(float) Load 10(bias)
184: 6(float) CompositeExtract 182 3 184: 6(float) CompositeExtract 182 3
185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 183 185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183
186: 22(fvec4) CompositeConstruct 185 185 185 185 186: 22(fvec4) CompositeConstruct 185 185 185 185
187: 22(fvec4) Load 26(color) 187: 22(fvec4) Load 26(color)
188: 22(fvec4) FAdd 187 186 188: 22(fvec4) FAdd 187 186
@ -300,7 +300,7 @@ Linked fragment stage:
197: 22(fvec4) Load 24(coords4D) 197: 22(fvec4) Load 24(coords4D)
198: 6(float) Load 10(bias) 198: 6(float) Load 10(bias)
199: 6(float) CompositeExtract 197 3 199: 6(float) CompositeExtract 197 3
200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 198 200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198
201: 22(fvec4) CompositeConstruct 200 200 200 200 201: 22(fvec4) CompositeConstruct 200 200 200 200
202: 22(fvec4) Load 26(color) 202: 22(fvec4) Load 26(color)
203: 22(fvec4) FAdd 202 201 203: 22(fvec4) FAdd 202 201
@ -310,7 +310,7 @@ Linked fragment stage:
214: 70 Load 72(texSampler2D) 214: 70 Load 72(texSampler2D)
215: 205(ivec2) Load 207(iCoords2D) 215: 205(ivec2) Load 207(iCoords2D)
216: 204(int) Load 212(iLod) 216: 204(int) Load 212(iLod)
217: 22(fvec4) ImageFetch 214 215 216 217: 22(fvec4) ImageFetch 214 215 Lod 216
218: 22(fvec4) Load 26(color) 218: 22(fvec4) Load 26(color)
219: 22(fvec4) FAdd 218 217 219: 22(fvec4) FAdd 218 217
Store 26(color) 219 Store 26(color) 219
@ -324,7 +324,7 @@ Linked fragment stage:
228: 45(fvec2) Load 47(coords2D) 228: 45(fvec2) Load 47(coords2D)
229: 45(fvec2) Load 221(gradX) 229: 45(fvec2) Load 221(gradX)
230: 45(fvec2) Load 224(gradY) 230: 45(fvec2) Load 224(gradY)
231: 22(fvec4) ImageSampleExplicitLod 227 228 229 230 231: 22(fvec4) ImageSampleExplicitLod 227 228 Grad 229 230
232: 22(fvec4) Load 26(color) 232: 22(fvec4) Load 26(color)
233: 22(fvec4) FAdd 232 231 233: 22(fvec4) FAdd 232 231
Store 26(color) 233 Store 26(color) 233
@ -336,7 +336,7 @@ Linked fragment stage:
239: 16(fvec3) CompositeConstruct 237 238 236 239: 16(fvec3) CompositeConstruct 237 238 236
240: 45(fvec2) Load 221(gradX) 240: 45(fvec2) Load 221(gradX)
241: 45(fvec2) Load 224(gradY) 241: 45(fvec2) Load 224(gradY)
242: 22(fvec4) ImageSampleProjExplicitLod 234 239 240 241 242: 22(fvec4) ImageSampleProjExplicitLod 234 239 Grad 240 241
243: 22(fvec4) Load 26(color) 243: 22(fvec4) Load 26(color)
244: 22(fvec4) FAdd 243 242 244: 22(fvec4) FAdd 243 242
Store 26(color) 244 Store 26(color) 244
@ -344,7 +344,7 @@ Linked fragment stage:
246: 45(fvec2) Load 47(coords2D) 246: 45(fvec2) Load 47(coords2D)
247: 45(fvec2) Load 221(gradX) 247: 45(fvec2) Load 221(gradX)
248: 45(fvec2) Load 224(gradY) 248: 45(fvec2) Load 224(gradY)
252: 22(fvec4) ImageSampleExplicitLod 245 246 247 248 251 252: 22(fvec4) ImageSampleExplicitLod 245 246 Grad ConstOffset 247 248 251
253: 22(fvec4) Load 26(color) 253: 22(fvec4) Load 26(color)
254: 22(fvec4) FAdd 253 252 254: 22(fvec4) FAdd 253 252
Store 26(color) 254 Store 26(color) 254
@ -352,7 +352,7 @@ Linked fragment stage:
256: 16(fvec3) Load 18(coords3D) 256: 16(fvec3) Load 18(coords3D)
257: 45(fvec2) Load 221(gradX) 257: 45(fvec2) Load 221(gradX)
258: 45(fvec2) Load 224(gradY) 258: 45(fvec2) Load 224(gradY)
259: 22(fvec4) ImageSampleProjExplicitLod 255 256 257 258 251 259: 22(fvec4) ImageSampleProjExplicitLod 255 256 Grad ConstOffset 257 258 251
260: 22(fvec4) Load 26(color) 260: 22(fvec4) Load 26(color)
261: 22(fvec4) FAdd 260 259 261: 22(fvec4) FAdd 260 259
Store 26(color) 261 Store 26(color) 261
@ -365,7 +365,7 @@ Linked fragment stage:
268: 45(fvec2) Load 221(gradX) 268: 45(fvec2) Load 221(gradX)
269: 45(fvec2) Load 224(gradY) 269: 45(fvec2) Load 224(gradY)
270: 6(float) CompositeExtract 267 2 270: 6(float) CompositeExtract 267 2
271: 6(float) ImageSampleDrefExplicitLod 262 267 270 268 269 271: 6(float) ImageSampleDrefExplicitLod 262 267 270 Grad 268 269
272: 22(fvec4) Load 26(color) 272: 22(fvec4) Load 26(color)
273: 22(fvec4) CompositeConstruct 271 271 271 271 273: 22(fvec4) CompositeConstruct 271 271 271 271
274: 22(fvec4) FAdd 272 273 274: 22(fvec4) FAdd 272 273

View File

@ -94,63 +94,63 @@ Linked vertex stage:
30: 27 Load 29(texSampler1D) 30: 27 Load 29(texSampler1D)
31: 6(float) Load 10(coords1D) 31: 6(float) Load 10(coords1D)
32: 6(float) Load 8(lod) 32: 6(float) Load 8(lod)
33: 18(fvec4) ImageSampleExplicitLod 30 31 32 33: 18(fvec4) ImageSampleExplicitLod 30 31 Lod 32
34: 18(fvec4) Load 23(color) 34: 18(fvec4) Load 23(color)
35: 18(fvec4) FAdd 34 33 35: 18(fvec4) FAdd 34 33
Store 23(color) 35 Store 23(color) 35
36: 27 Load 29(texSampler1D) 36: 27 Load 29(texSampler1D)
40: 37(fvec2) Load 39(coords2D) 40: 37(fvec2) Load 39(coords2D)
41: 6(float) Load 8(lod) 41: 6(float) Load 8(lod)
42: 18(fvec4) ImageSampleProjExplicitLod 36 40 41 42: 18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41
43: 18(fvec4) Load 23(color) 43: 18(fvec4) Load 23(color)
44: 18(fvec4) FAdd 43 42 44: 18(fvec4) FAdd 43 42
Store 23(color) 44 Store 23(color) 44
45: 27 Load 29(texSampler1D) 45: 27 Load 29(texSampler1D)
46: 18(fvec4) Load 20(coords4D) 46: 18(fvec4) Load 20(coords4D)
47: 6(float) Load 8(lod) 47: 6(float) Load 8(lod)
48: 18(fvec4) ImageSampleProjExplicitLod 45 46 47 48: 18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47
49: 18(fvec4) Load 23(color) 49: 18(fvec4) Load 23(color)
50: 18(fvec4) FAdd 49 48 50: 18(fvec4) FAdd 49 48
Store 23(color) 50 Store 23(color) 50
55: 52 Load 54(texSampler2D) 55: 52 Load 54(texSampler2D)
56: 37(fvec2) Load 39(coords2D) 56: 37(fvec2) Load 39(coords2D)
57: 6(float) Load 8(lod) 57: 6(float) Load 8(lod)
58: 18(fvec4) ImageSampleExplicitLod 55 56 57 58: 18(fvec4) ImageSampleExplicitLod 55 56 Lod 57
59: 18(fvec4) Load 23(color) 59: 18(fvec4) Load 23(color)
60: 18(fvec4) FAdd 59 58 60: 18(fvec4) FAdd 59 58
Store 23(color) 60 Store 23(color) 60
61: 52 Load 54(texSampler2D) 61: 52 Load 54(texSampler2D)
62: 12(fvec3) Load 14(coords3D) 62: 12(fvec3) Load 14(coords3D)
63: 6(float) Load 8(lod) 63: 6(float) Load 8(lod)
64: 18(fvec4) ImageSampleProjExplicitLod 61 62 63 64: 18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63
65: 18(fvec4) Load 23(color) 65: 18(fvec4) Load 23(color)
66: 18(fvec4) FAdd 65 64 66: 18(fvec4) FAdd 65 64
Store 23(color) 66 Store 23(color) 66
67: 52 Load 54(texSampler2D) 67: 52 Load 54(texSampler2D)
68: 18(fvec4) Load 20(coords4D) 68: 18(fvec4) Load 20(coords4D)
69: 6(float) Load 8(lod) 69: 6(float) Load 8(lod)
70: 18(fvec4) ImageSampleProjExplicitLod 67 68 69 70: 18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69
71: 18(fvec4) Load 23(color) 71: 18(fvec4) Load 23(color)
72: 18(fvec4) FAdd 71 70 72: 18(fvec4) FAdd 71 70
Store 23(color) 72 Store 23(color) 72
77: 74 Load 76(texSampler3D) 77: 74 Load 76(texSampler3D)
78: 12(fvec3) Load 14(coords3D) 78: 12(fvec3) Load 14(coords3D)
79: 6(float) Load 8(lod) 79: 6(float) Load 8(lod)
80: 18(fvec4) ImageSampleExplicitLod 77 78 79 80: 18(fvec4) ImageSampleExplicitLod 77 78 Lod 79
81: 18(fvec4) Load 23(color) 81: 18(fvec4) Load 23(color)
82: 18(fvec4) FAdd 81 80 82: 18(fvec4) FAdd 81 80
Store 23(color) 82 Store 23(color) 82
83: 74 Load 76(texSampler3D) 83: 74 Load 76(texSampler3D)
84: 18(fvec4) Load 20(coords4D) 84: 18(fvec4) Load 20(coords4D)
85: 6(float) Load 8(lod) 85: 6(float) Load 8(lod)
86: 18(fvec4) ImageSampleProjExplicitLod 83 84 85 86: 18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85
87: 18(fvec4) Load 23(color) 87: 18(fvec4) Load 23(color)
88: 18(fvec4) FAdd 87 86 88: 18(fvec4) FAdd 87 86
Store 23(color) 88 Store 23(color) 88
93: 90 Load 92(texSamplerCube) 93: 90 Load 92(texSamplerCube)
94: 12(fvec3) Load 14(coords3D) 94: 12(fvec3) Load 14(coords3D)
95: 6(float) Load 8(lod) 95: 6(float) Load 8(lod)
96: 18(fvec4) ImageSampleExplicitLod 93 94 95 96: 18(fvec4) ImageSampleExplicitLod 93 94 Lod 95
97: 18(fvec4) Load 23(color) 97: 18(fvec4) Load 23(color)
98: 18(fvec4) FAdd 97 96 98: 18(fvec4) FAdd 97 96
Store 23(color) 98 Store 23(color) 98
@ -158,7 +158,7 @@ Linked vertex stage:
104: 12(fvec3) Load 14(coords3D) 104: 12(fvec3) Load 14(coords3D)
105: 6(float) Load 8(lod) 105: 6(float) Load 8(lod)
106: 6(float) CompositeExtract 104 2 106: 6(float) CompositeExtract 104 2
107: 6(float) ImageSampleDrefExplicitLod 103 104 106 105 107: 6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105
108: 18(fvec4) CompositeConstruct 107 107 107 107 108: 18(fvec4) CompositeConstruct 107 107 107 107
109: 18(fvec4) Load 23(color) 109: 18(fvec4) Load 23(color)
110: 18(fvec4) FAdd 109 108 110: 18(fvec4) FAdd 109 108
@ -167,7 +167,7 @@ Linked vertex stage:
116: 12(fvec3) Load 14(coords3D) 116: 12(fvec3) Load 14(coords3D)
117: 6(float) Load 8(lod) 117: 6(float) Load 8(lod)
118: 6(float) CompositeExtract 116 2 118: 6(float) CompositeExtract 116 2
119: 6(float) ImageSampleDrefExplicitLod 115 116 118 117 119: 6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117
120: 18(fvec4) CompositeConstruct 119 119 119 119 120: 18(fvec4) CompositeConstruct 119 119 119 119
121: 18(fvec4) Load 23(color) 121: 18(fvec4) Load 23(color)
122: 18(fvec4) FAdd 121 120 122: 18(fvec4) FAdd 121 120
@ -176,7 +176,7 @@ Linked vertex stage:
124: 18(fvec4) Load 20(coords4D) 124: 18(fvec4) Load 20(coords4D)
125: 6(float) Load 8(lod) 125: 6(float) Load 8(lod)
126: 6(float) CompositeExtract 124 3 126: 6(float) CompositeExtract 124 3
127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 125 127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125
128: 18(fvec4) CompositeConstruct 127 127 127 127 128: 18(fvec4) CompositeConstruct 127 127 127 127
129: 18(fvec4) Load 23(color) 129: 18(fvec4) Load 23(color)
130: 18(fvec4) FAdd 129 128 130: 18(fvec4) FAdd 129 128
@ -185,7 +185,7 @@ Linked vertex stage:
132: 18(fvec4) Load 20(coords4D) 132: 18(fvec4) Load 20(coords4D)
133: 6(float) Load 8(lod) 133: 6(float) Load 8(lod)
134: 6(float) CompositeExtract 132 3 134: 6(float) CompositeExtract 132 3
135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 133 135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133
136: 18(fvec4) CompositeConstruct 135 135 135 135 136: 18(fvec4) CompositeConstruct 135 135 135 135
137: 18(fvec4) Load 23(color) 137: 18(fvec4) Load 23(color)
138: 18(fvec4) FAdd 137 136 138: 18(fvec4) FAdd 137 136

View File

@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "3.0.780" #define GLSLANG_REVISION "3.0.785"
#define GLSLANG_DATE "06-Oct-2015" #define GLSLANG_DATE "13-Oct-2015"