Front-end: Fix: Cubemap arrays only use 3-component coord when accessed as an image.
4 components are needed when used a texture, but not an image, which multiplies layers and faces into the same coordinate. This fixes it from using 4 everywhere, to only using 4 for textures and 3 for images.
This commit is contained in:
		
							parent
							
								
									3cd0024ea8
								
							
						
					
					
						commit
						6373574b13
					
				@ -265,6 +265,10 @@ uniform writeonly imageCubeArray  CA1;
 | 
				
			|||||||
uniform writeonly iimageCubeArray CA2;
 | 
					uniform writeonly iimageCubeArray CA2;
 | 
				
			||||||
uniform writeonly uimageCubeArray CA3;
 | 
					uniform writeonly uimageCubeArray CA3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					layout(rgba16f) uniform readonly imageCubeArray  rCA1;
 | 
				
			||||||
 | 
					layout(rgba32i) uniform readonly iimageCubeArray rCA2;
 | 
				
			||||||
 | 
					layout(r32ui) uniform readonly uimageCubeArray rCA3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef GL_OES_texture_cube_map_array
 | 
					#ifdef GL_OES_texture_cube_map_array
 | 
				
			||||||
uniform samplerCubeArray          CA4;
 | 
					uniform samplerCubeArray          CA4;
 | 
				
			||||||
uniform samplerCubeArrayShadow    CA5;
 | 
					uniform samplerCubeArrayShadow    CA5;
 | 
				
			||||||
@ -304,6 +308,14 @@ void CAT()
 | 
				
			|||||||
    highp ivec3 s1 = imageSize(CA1);
 | 
					    highp ivec3 s1 = imageSize(CA1);
 | 
				
			||||||
    highp ivec3 s2 = imageSize(CA2);
 | 
					    highp ivec3 s2 = imageSize(CA2);
 | 
				
			||||||
    highp ivec3 s3 = imageSize(CA3);
 | 
					    highp ivec3 s3 = imageSize(CA3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    imageStore(CA1, s3, vec4(1));
 | 
				
			||||||
 | 
					    imageStore(CA2, s3, ivec4(1));
 | 
				
			||||||
 | 
					    imageStore(CA3, s3, uvec4(1));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    highp vec4 cl1 = imageLoad(rCA1, s3);
 | 
				
			||||||
 | 
					    highp ivec4 cl2 = imageLoad(rCA2, s3);
 | 
				
			||||||
 | 
					    highp uvec4 cl3 = imageLoad(rCA3, s3);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uniform sampler2DMSArray  bad2DMS;    // ERROR, reserved
 | 
					uniform sampler2DMSArray  bad2DMS;    // ERROR, reserved
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -32,12 +32,12 @@ Linked fragment stage:
 | 
				
			|||||||
                              Name 133  "ic1D"
 | 
					                              Name 133  "ic1D"
 | 
				
			||||||
                              Name 143  "ic2D"
 | 
					                              Name 143  "ic2D"
 | 
				
			||||||
                              Name 153  "ic3D"
 | 
					                              Name 153  "ic3D"
 | 
				
			||||||
                              Name 172  "ic4D"
 | 
					                              Name 231  "ui"
 | 
				
			||||||
                              Name 234  "ui"
 | 
					                              Name 235  "ii1D"
 | 
				
			||||||
                              Name 238  "ii1D"
 | 
					                              Name 249  "ui2D"
 | 
				
			||||||
                              Name 252  "ui2D"
 | 
					                              Name 252  "value"
 | 
				
			||||||
                              Name 255  "value"
 | 
					                              Name 367  "fragData"
 | 
				
			||||||
                              Name 370  "fragData"
 | 
					                              Name 382  "ic4D"
 | 
				
			||||||
                              Decorate 15(i1D) Binding 0
 | 
					                              Decorate 15(i1D) Binding 0
 | 
				
			||||||
                              Decorate 25(i2D) Binding 1
 | 
					                              Decorate 25(i2D) Binding 1
 | 
				
			||||||
                              Decorate 36(i3D) Binding 2
 | 
					                              Decorate 36(i3D) Binding 2
 | 
				
			||||||
@ -49,8 +49,9 @@ Linked fragment stage:
 | 
				
			|||||||
                              Decorate 87(iBuffer) Binding 8
 | 
					                              Decorate 87(iBuffer) Binding 8
 | 
				
			||||||
                              Decorate 97(i2DMS) Binding 9
 | 
					                              Decorate 97(i2DMS) Binding 9
 | 
				
			||||||
                              Decorate 107(i2DMSArray) Binding 10
 | 
					                              Decorate 107(i2DMSArray) Binding 10
 | 
				
			||||||
                              Decorate 238(ii1D) Binding 11
 | 
					                              Decorate 235(ii1D) Binding 11
 | 
				
			||||||
                              Decorate 252(ui2D) Binding 12
 | 
					                              Decorate 249(ui2D) Binding 12
 | 
				
			||||||
 | 
					                              Decorate 382(ic4D) NoStaticUse
 | 
				
			||||||
               2:             TypeVoid
 | 
					               2:             TypeVoid
 | 
				
			||||||
               3:             TypeFunction 2
 | 
					               3:             TypeFunction 2
 | 
				
			||||||
               6:             TypeInt 32 1
 | 
					               6:             TypeInt 32 1
 | 
				
			||||||
@ -103,46 +104,46 @@ Linked fragment stage:
 | 
				
			|||||||
       143(ic2D):    142(ptr) Variable UniformConstant
 | 
					       143(ic2D):    142(ptr) Variable UniformConstant
 | 
				
			||||||
             152:             TypePointer UniformConstant 7(ivec3)
 | 
					             152:             TypePointer UniformConstant 7(ivec3)
 | 
				
			||||||
       153(ic3D):    152(ptr) Variable UniformConstant
 | 
					       153(ic3D):    152(ptr) Variable UniformConstant
 | 
				
			||||||
             170:             TypeVector 6(int) 4
 | 
					             211:      6(int) Constant 1
 | 
				
			||||||
             171:             TypePointer UniformConstant 170(ivec4)
 | 
					             217:      6(int) Constant 2
 | 
				
			||||||
       172(ic4D):    171(ptr) Variable UniformConstant
 | 
					             221:      6(int) Constant 3
 | 
				
			||||||
             214:      6(int) Constant 1
 | 
					             227:      6(int) Constant 4
 | 
				
			||||||
             220:      6(int) Constant 2
 | 
					             229:             TypeInt 32 0
 | 
				
			||||||
             224:      6(int) Constant 3
 | 
					             230:             TypePointer Function 229(int)
 | 
				
			||||||
             230:      6(int) Constant 4
 | 
					             232:    229(int) Constant 0
 | 
				
			||||||
             232:             TypeInt 32 0
 | 
					             233:             TypeImage 6(int) 1D nonsampled format:R32i
 | 
				
			||||||
             233:             TypePointer Function 232(int)
 | 
					             234:             TypePointer UniformConstant 233
 | 
				
			||||||
             235:    232(int) Constant 0
 | 
					       235(ii1D):    234(ptr) Variable UniformConstant
 | 
				
			||||||
             236:             TypeImage 6(int) 1D nonsampled format:R32i
 | 
					             237:      6(int) Constant 10
 | 
				
			||||||
             237:             TypePointer UniformConstant 236
 | 
					             238:             TypePointer Image 6(int)
 | 
				
			||||||
       238(ii1D):    237(ptr) Variable UniformConstant
 | 
					             240:    229(int) Constant 1
 | 
				
			||||||
             240:      6(int) Constant 10
 | 
					             247:             TypeImage 229(int) 2D nonsampled format:R32ui
 | 
				
			||||||
             241:             TypePointer Image 6(int)
 | 
					             248:             TypePointer UniformConstant 247
 | 
				
			||||||
             243:    232(int) Constant 1
 | 
					       249(ui2D):    248(ptr) Variable UniformConstant
 | 
				
			||||||
             250:             TypeImage 232(int) 2D nonsampled format:R32ui
 | 
					             251:             TypePointer UniformConstant 229(int)
 | 
				
			||||||
             251:             TypePointer UniformConstant 250
 | 
					      252(value):    251(ptr) Variable UniformConstant
 | 
				
			||||||
       252(ui2D):    251(ptr) Variable UniformConstant
 | 
					             254:             TypePointer Image 229(int)
 | 
				
			||||||
             254:             TypePointer UniformConstant 232(int)
 | 
					             260:      6(int) Constant 11
 | 
				
			||||||
      255(value):    254(ptr) Variable UniformConstant
 | 
					             275:      6(int) Constant 12
 | 
				
			||||||
             257:             TypePointer Image 232(int)
 | 
					             290:      6(int) Constant 13
 | 
				
			||||||
             263:      6(int) Constant 11
 | 
					             305:      6(int) Constant 14
 | 
				
			||||||
             278:      6(int) Constant 12
 | 
					             320:      6(int) Constant 15
 | 
				
			||||||
             293:      6(int) Constant 13
 | 
					             335:      6(int) Constant 16
 | 
				
			||||||
             308:      6(int) Constant 14
 | 
					             350:      6(int) Constant 18
 | 
				
			||||||
             323:      6(int) Constant 15
 | 
					             351:      6(int) Constant 17
 | 
				
			||||||
             338:      6(int) Constant 16
 | 
					             360:    229(int) Constant 19
 | 
				
			||||||
             353:      6(int) Constant 18
 | 
					             366:             TypePointer Output 126(fvec4)
 | 
				
			||||||
             354:      6(int) Constant 17
 | 
					   367(fragData):    366(ptr) Variable Output
 | 
				
			||||||
             363:    232(int) Constant 19
 | 
					             373:             TypeBool
 | 
				
			||||||
             369:             TypePointer Output 126(fvec4)
 | 
					             380:             TypeVector 6(int) 4
 | 
				
			||||||
   370(fragData):    369(ptr) Variable Output
 | 
					             381:             TypePointer UniformConstant 380(ivec4)
 | 
				
			||||||
             376:             TypeBool
 | 
					       382(ic4D):    381(ptr) Variable UniformConstant
 | 
				
			||||||
         4(main):           2 Function None 3
 | 
					         4(main):           2 Function None 3
 | 
				
			||||||
               5:             Label
 | 
					               5:             Label
 | 
				
			||||||
           9(iv):      8(ptr) Variable Function
 | 
					           9(iv):      8(ptr) Variable Function
 | 
				
			||||||
          128(v):    127(ptr) Variable Function
 | 
					          128(v):    127(ptr) Variable Function
 | 
				
			||||||
         234(ui):    233(ptr) Variable Function
 | 
					         231(ui):    230(ptr) Variable Function
 | 
				
			||||||
             371:    127(ptr) Variable Function
 | 
					             368:    127(ptr) Variable Function
 | 
				
			||||||
                              Store 9(iv) 11
 | 
					                              Store 9(iv) 11
 | 
				
			||||||
              16:          13 Load 15(i1D)
 | 
					              16:          13 Load 15(i1D)
 | 
				
			||||||
              17:      6(int) ImageQuerySize 16
 | 
					              17:      6(int) ImageQuerySize 16
 | 
				
			||||||
@ -278,220 +279,220 @@ Linked fragment stage:
 | 
				
			|||||||
             168:  126(fvec4) Load 128(v)
 | 
					             168:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              ImageWrite 166 167 168
 | 
					                              ImageWrite 166 167 168
 | 
				
			||||||
             169:          51 Load 53(iCubeArray)
 | 
					             169:          51 Load 53(iCubeArray)
 | 
				
			||||||
             173:  170(ivec4) Load 172(ic4D)
 | 
					             170:    7(ivec3) Load 153(ic3D)
 | 
				
			||||||
             174:  126(fvec4) ImageRead 169 173
 | 
					             171:  126(fvec4) ImageRead 169 170
 | 
				
			||||||
             175:  126(fvec4) Load 128(v)
 | 
					             172:  126(fvec4) Load 128(v)
 | 
				
			||||||
             176:  126(fvec4) FAdd 175 174
 | 
					             173:  126(fvec4) FAdd 172 171
 | 
				
			||||||
                              Store 128(v) 176
 | 
					                              Store 128(v) 173
 | 
				
			||||||
             177:          51 Load 53(iCubeArray)
 | 
					             174:          51 Load 53(iCubeArray)
 | 
				
			||||||
             178:  170(ivec4) Load 172(ic4D)
 | 
					             175:    7(ivec3) Load 153(ic3D)
 | 
				
			||||||
             179:  126(fvec4) Load 128(v)
 | 
					             176:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              ImageWrite 177 178 179
 | 
					                              ImageWrite 174 175 176
 | 
				
			||||||
             180:          58 Load 60(i2DRect)
 | 
					             177:          58 Load 60(i2DRect)
 | 
				
			||||||
             181:   27(ivec2) Load 143(ic2D)
 | 
					             178:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             182:  126(fvec4) ImageRead 180 181
 | 
					             179:  126(fvec4) ImageRead 177 178
 | 
				
			||||||
             183:  126(fvec4) Load 128(v)
 | 
					             180:  126(fvec4) Load 128(v)
 | 
				
			||||||
             184:  126(fvec4) FAdd 183 182
 | 
					             181:  126(fvec4) FAdd 180 179
 | 
				
			||||||
                              Store 128(v) 184
 | 
					                              Store 128(v) 181
 | 
				
			||||||
             185:          58 Load 60(i2DRect)
 | 
					             182:          58 Load 60(i2DRect)
 | 
				
			||||||
 | 
					             183:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
 | 
					             184:  126(fvec4) Load 128(v)
 | 
				
			||||||
 | 
					                              ImageWrite 182 183 184
 | 
				
			||||||
 | 
					             185:          68 Load 70(i1DArray)
 | 
				
			||||||
             186:   27(ivec2) Load 143(ic2D)
 | 
					             186:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             187:  126(fvec4) Load 128(v)
 | 
					             187:  126(fvec4) ImageRead 185 186
 | 
				
			||||||
                              ImageWrite 185 186 187
 | 
					             188:  126(fvec4) Load 128(v)
 | 
				
			||||||
             188:          68 Load 70(i1DArray)
 | 
					             189:  126(fvec4) FAdd 188 187
 | 
				
			||||||
             189:   27(ivec2) Load 143(ic2D)
 | 
					                              Store 128(v) 189
 | 
				
			||||||
             190:  126(fvec4) ImageRead 188 189
 | 
					             190:          68 Load 70(i1DArray)
 | 
				
			||||||
             191:  126(fvec4) Load 128(v)
 | 
					             191:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             192:  126(fvec4) FAdd 191 190
 | 
					             192:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              Store 128(v) 192
 | 
					                              ImageWrite 190 191 192
 | 
				
			||||||
             193:          68 Load 70(i1DArray)
 | 
					             193:          78 Load 80(i2DArray)
 | 
				
			||||||
             194:   27(ivec2) Load 143(ic2D)
 | 
					             194:    7(ivec3) Load 153(ic3D)
 | 
				
			||||||
             195:  126(fvec4) Load 128(v)
 | 
					             195:  126(fvec4) ImageRead 193 194
 | 
				
			||||||
                              ImageWrite 193 194 195
 | 
					             196:  126(fvec4) Load 128(v)
 | 
				
			||||||
             196:          78 Load 80(i2DArray)
 | 
					             197:  126(fvec4) FAdd 196 195
 | 
				
			||||||
             197:    7(ivec3) Load 153(ic3D)
 | 
					                              Store 128(v) 197
 | 
				
			||||||
             198:  126(fvec4) ImageRead 196 197
 | 
					             198:          78 Load 80(i2DArray)
 | 
				
			||||||
             199:  126(fvec4) Load 128(v)
 | 
					             199:    7(ivec3) Load 153(ic3D)
 | 
				
			||||||
             200:  126(fvec4) FAdd 199 198
 | 
					             200:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              Store 128(v) 200
 | 
					                              ImageWrite 198 199 200
 | 
				
			||||||
             201:          78 Load 80(i2DArray)
 | 
					             201:          85 Load 87(iBuffer)
 | 
				
			||||||
             202:    7(ivec3) Load 153(ic3D)
 | 
					             202:      6(int) Load 133(ic1D)
 | 
				
			||||||
             203:  126(fvec4) Load 128(v)
 | 
					             203:  126(fvec4) ImageRead 201 202
 | 
				
			||||||
                              ImageWrite 201 202 203
 | 
					             204:  126(fvec4) Load 128(v)
 | 
				
			||||||
             204:          85 Load 87(iBuffer)
 | 
					             205:  126(fvec4) FAdd 204 203
 | 
				
			||||||
             205:      6(int) Load 133(ic1D)
 | 
					                              Store 128(v) 205
 | 
				
			||||||
             206:  126(fvec4) ImageRead 204 205
 | 
					             206:          85 Load 87(iBuffer)
 | 
				
			||||||
             207:  126(fvec4) Load 128(v)
 | 
					             207:      6(int) Load 133(ic1D)
 | 
				
			||||||
             208:  126(fvec4) FAdd 207 206
 | 
					             208:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              Store 128(v) 208
 | 
					                              ImageWrite 206 207 208
 | 
				
			||||||
             209:          85 Load 87(iBuffer)
 | 
					             209:          95 Load 97(i2DMS)
 | 
				
			||||||
             210:      6(int) Load 133(ic1D)
 | 
					             210:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             211:  126(fvec4) Load 128(v)
 | 
					             212:  126(fvec4) ImageRead 209 210
 | 
				
			||||||
                              ImageWrite 209 210 211
 | 
					             213:  126(fvec4) Load 128(v)
 | 
				
			||||||
             212:          95 Load 97(i2DMS)
 | 
					             214:  126(fvec4) FAdd 213 212
 | 
				
			||||||
             213:   27(ivec2) Load 143(ic2D)
 | 
					                              Store 128(v) 214
 | 
				
			||||||
             215:  126(fvec4) ImageRead 212 213
 | 
					             215:          95 Load 97(i2DMS)
 | 
				
			||||||
             216:  126(fvec4) Load 128(v)
 | 
					             216:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             217:  126(fvec4) FAdd 216 215
 | 
					             218:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              Store 128(v) 217
 | 
					                              ImageWrite 215 216 217
 | 
				
			||||||
             218:          95 Load 97(i2DMS)
 | 
					             219:         105 Load 107(i2DMSArray)
 | 
				
			||||||
             219:   27(ivec2) Load 143(ic2D)
 | 
					             220:    7(ivec3) Load 153(ic3D)
 | 
				
			||||||
             221:  126(fvec4) Load 128(v)
 | 
					             222:  126(fvec4) ImageRead 219 220
 | 
				
			||||||
                              ImageWrite 218 219 220
 | 
					             223:  126(fvec4) Load 128(v)
 | 
				
			||||||
             222:         105 Load 107(i2DMSArray)
 | 
					             224:  126(fvec4) FAdd 223 222
 | 
				
			||||||
             223:    7(ivec3) Load 153(ic3D)
 | 
					                              Store 128(v) 224
 | 
				
			||||||
             225:  126(fvec4) ImageRead 222 223
 | 
					             225:         105 Load 107(i2DMSArray)
 | 
				
			||||||
             226:  126(fvec4) Load 128(v)
 | 
					             226:    7(ivec3) Load 153(ic3D)
 | 
				
			||||||
             227:  126(fvec4) FAdd 226 225
 | 
					             228:  126(fvec4) Load 128(v)
 | 
				
			||||||
                              Store 128(v) 227
 | 
					                              ImageWrite 225 226 227
 | 
				
			||||||
             228:         105 Load 107(i2DMSArray)
 | 
					                              Store 231(ui) 232
 | 
				
			||||||
             229:    7(ivec3) Load 153(ic3D)
 | 
					             236:      6(int) Load 133(ic1D)
 | 
				
			||||||
             231:  126(fvec4) Load 128(v)
 | 
					             239:    238(ptr) ImageTexelPointer 235(ii1D) 236 0
 | 
				
			||||||
                              ImageWrite 228 229 230
 | 
					             241:      6(int) AtomicIAdd 239 240 232 237
 | 
				
			||||||
                              Store 234(ui) 235
 | 
					             242:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             239:      6(int) Load 133(ic1D)
 | 
					             243:      6(int) CompositeExtract 242 0
 | 
				
			||||||
             242:    241(ptr) ImageTexelPointer 238(ii1D) 239 0
 | 
					             244:      6(int) IAdd 243 241
 | 
				
			||||||
             244:      6(int) AtomicIAdd 242 243 235 240
 | 
					 | 
				
			||||||
             245:    7(ivec3) Load 9(iv)
 | 
					             245:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             246:      6(int) CompositeExtract 245 0
 | 
					             246:    7(ivec3) CompositeInsert 244 245 0
 | 
				
			||||||
             247:      6(int) IAdd 246 244
 | 
					                              Store 9(iv) 246
 | 
				
			||||||
             248:    7(ivec3) Load 9(iv)
 | 
					             250:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             249:    7(ivec3) CompositeInsert 247 248 0
 | 
					             253:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 249
 | 
					             255:    254(ptr) ImageTexelPointer 249(ui2D) 250 0
 | 
				
			||||||
             253:   27(ivec2) Load 143(ic2D)
 | 
					             256:    229(int) AtomicIAdd 255 240 232 253
 | 
				
			||||||
             256:    232(int) Load 255(value)
 | 
					             257:    229(int) Load 231(ui)
 | 
				
			||||||
             258:    257(ptr) ImageTexelPointer 252(ui2D) 253 0
 | 
					             258:    229(int) IAdd 257 256
 | 
				
			||||||
             259:    232(int) AtomicIAdd 258 243 235 256
 | 
					                              Store 231(ui) 258
 | 
				
			||||||
             260:    232(int) Load 234(ui)
 | 
					             259:      6(int) Load 133(ic1D)
 | 
				
			||||||
             261:    232(int) IAdd 260 259
 | 
					             261:    238(ptr) ImageTexelPointer 235(ii1D) 259 0
 | 
				
			||||||
                              Store 234(ui) 261
 | 
					             262:      6(int) AtomicSMin 261 240 232 260
 | 
				
			||||||
             262:      6(int) Load 133(ic1D)
 | 
					             263:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             264:    241(ptr) ImageTexelPointer 238(ii1D) 262 0
 | 
					             264:      6(int) CompositeExtract 263 0
 | 
				
			||||||
             265:      6(int) AtomicSMin 264 243 235 263
 | 
					             265:      6(int) IAdd 264 262
 | 
				
			||||||
             266:    7(ivec3) Load 9(iv)
 | 
					             266:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             267:      6(int) CompositeExtract 266 0
 | 
					             267:    7(ivec3) CompositeInsert 265 266 0
 | 
				
			||||||
             268:      6(int) IAdd 267 265
 | 
					                              Store 9(iv) 267
 | 
				
			||||||
             269:    7(ivec3) Load 9(iv)
 | 
					             268:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             270:    7(ivec3) CompositeInsert 268 269 0
 | 
					             269:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 270
 | 
					             270:    254(ptr) ImageTexelPointer 249(ui2D) 268 0
 | 
				
			||||||
             271:   27(ivec2) Load 143(ic2D)
 | 
					             271:    229(int) AtomicUMin 270 240 232 269
 | 
				
			||||||
             272:    232(int) Load 255(value)
 | 
					             272:    229(int) Load 231(ui)
 | 
				
			||||||
             273:    257(ptr) ImageTexelPointer 252(ui2D) 271 0
 | 
					             273:    229(int) IAdd 272 271
 | 
				
			||||||
             274:    232(int) AtomicUMin 273 243 235 272
 | 
					                              Store 231(ui) 273
 | 
				
			||||||
             275:    232(int) Load 234(ui)
 | 
					             274:      6(int) Load 133(ic1D)
 | 
				
			||||||
             276:    232(int) IAdd 275 274
 | 
					             276:    238(ptr) ImageTexelPointer 235(ii1D) 274 0
 | 
				
			||||||
                              Store 234(ui) 276
 | 
					             277:      6(int) AtomicSMax 276 240 232 275
 | 
				
			||||||
             277:      6(int) Load 133(ic1D)
 | 
					             278:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             279:    241(ptr) ImageTexelPointer 238(ii1D) 277 0
 | 
					             279:      6(int) CompositeExtract 278 0
 | 
				
			||||||
             280:      6(int) AtomicSMax 279 243 235 278
 | 
					             280:      6(int) IAdd 279 277
 | 
				
			||||||
             281:    7(ivec3) Load 9(iv)
 | 
					             281:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             282:      6(int) CompositeExtract 281 0
 | 
					             282:    7(ivec3) CompositeInsert 280 281 0
 | 
				
			||||||
             283:      6(int) IAdd 282 280
 | 
					                              Store 9(iv) 282
 | 
				
			||||||
             284:    7(ivec3) Load 9(iv)
 | 
					             283:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             285:    7(ivec3) CompositeInsert 283 284 0
 | 
					             284:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 285
 | 
					             285:    254(ptr) ImageTexelPointer 249(ui2D) 283 0
 | 
				
			||||||
             286:   27(ivec2) Load 143(ic2D)
 | 
					             286:    229(int) AtomicUMax 285 240 232 284
 | 
				
			||||||
             287:    232(int) Load 255(value)
 | 
					             287:    229(int) Load 231(ui)
 | 
				
			||||||
             288:    257(ptr) ImageTexelPointer 252(ui2D) 286 0
 | 
					             288:    229(int) IAdd 287 286
 | 
				
			||||||
             289:    232(int) AtomicUMax 288 243 235 287
 | 
					                              Store 231(ui) 288
 | 
				
			||||||
             290:    232(int) Load 234(ui)
 | 
					             289:      6(int) Load 133(ic1D)
 | 
				
			||||||
             291:    232(int) IAdd 290 289
 | 
					             291:    238(ptr) ImageTexelPointer 235(ii1D) 289 0
 | 
				
			||||||
                              Store 234(ui) 291
 | 
					             292:      6(int) AtomicAnd 291 240 232 290
 | 
				
			||||||
             292:      6(int) Load 133(ic1D)
 | 
					             293:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             294:    241(ptr) ImageTexelPointer 238(ii1D) 292 0
 | 
					             294:      6(int) CompositeExtract 293 0
 | 
				
			||||||
             295:      6(int) AtomicAnd 294 243 235 293
 | 
					             295:      6(int) IAdd 294 292
 | 
				
			||||||
             296:    7(ivec3) Load 9(iv)
 | 
					             296:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             297:      6(int) CompositeExtract 296 0
 | 
					             297:    7(ivec3) CompositeInsert 295 296 0
 | 
				
			||||||
             298:      6(int) IAdd 297 295
 | 
					                              Store 9(iv) 297
 | 
				
			||||||
             299:    7(ivec3) Load 9(iv)
 | 
					             298:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             300:    7(ivec3) CompositeInsert 298 299 0
 | 
					             299:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 300
 | 
					             300:    254(ptr) ImageTexelPointer 249(ui2D) 298 0
 | 
				
			||||||
             301:   27(ivec2) Load 143(ic2D)
 | 
					             301:    229(int) AtomicAnd 300 240 232 299
 | 
				
			||||||
             302:    232(int) Load 255(value)
 | 
					             302:    229(int) Load 231(ui)
 | 
				
			||||||
             303:    257(ptr) ImageTexelPointer 252(ui2D) 301 0
 | 
					             303:    229(int) IAdd 302 301
 | 
				
			||||||
             304:    232(int) AtomicAnd 303 243 235 302
 | 
					                              Store 231(ui) 303
 | 
				
			||||||
             305:    232(int) Load 234(ui)
 | 
					             304:      6(int) Load 133(ic1D)
 | 
				
			||||||
             306:    232(int) IAdd 305 304
 | 
					             306:    238(ptr) ImageTexelPointer 235(ii1D) 304 0
 | 
				
			||||||
                              Store 234(ui) 306
 | 
					             307:      6(int) AtomicOr 306 240 232 305
 | 
				
			||||||
             307:      6(int) Load 133(ic1D)
 | 
					             308:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             309:    241(ptr) ImageTexelPointer 238(ii1D) 307 0
 | 
					             309:      6(int) CompositeExtract 308 0
 | 
				
			||||||
             310:      6(int) AtomicOr 309 243 235 308
 | 
					             310:      6(int) IAdd 309 307
 | 
				
			||||||
             311:    7(ivec3) Load 9(iv)
 | 
					             311:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             312:      6(int) CompositeExtract 311 0
 | 
					             312:    7(ivec3) CompositeInsert 310 311 0
 | 
				
			||||||
             313:      6(int) IAdd 312 310
 | 
					                              Store 9(iv) 312
 | 
				
			||||||
             314:    7(ivec3) Load 9(iv)
 | 
					             313:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             315:    7(ivec3) CompositeInsert 313 314 0
 | 
					             314:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 315
 | 
					             315:    254(ptr) ImageTexelPointer 249(ui2D) 313 0
 | 
				
			||||||
             316:   27(ivec2) Load 143(ic2D)
 | 
					             316:    229(int) AtomicOr 315 240 232 314
 | 
				
			||||||
             317:    232(int) Load 255(value)
 | 
					             317:    229(int) Load 231(ui)
 | 
				
			||||||
             318:    257(ptr) ImageTexelPointer 252(ui2D) 316 0
 | 
					             318:    229(int) IAdd 317 316
 | 
				
			||||||
             319:    232(int) AtomicOr 318 243 235 317
 | 
					                              Store 231(ui) 318
 | 
				
			||||||
             320:    232(int) Load 234(ui)
 | 
					             319:      6(int) Load 133(ic1D)
 | 
				
			||||||
             321:    232(int) IAdd 320 319
 | 
					             321:    238(ptr) ImageTexelPointer 235(ii1D) 319 0
 | 
				
			||||||
                              Store 234(ui) 321
 | 
					             322:      6(int) AtomicXor 321 240 232 320
 | 
				
			||||||
             322:      6(int) Load 133(ic1D)
 | 
					             323:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             324:    241(ptr) ImageTexelPointer 238(ii1D) 322 0
 | 
					             324:      6(int) CompositeExtract 323 0
 | 
				
			||||||
             325:      6(int) AtomicXor 324 243 235 323
 | 
					             325:      6(int) IAdd 324 322
 | 
				
			||||||
             326:    7(ivec3) Load 9(iv)
 | 
					             326:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             327:      6(int) CompositeExtract 326 0
 | 
					             327:    7(ivec3) CompositeInsert 325 326 0
 | 
				
			||||||
             328:      6(int) IAdd 327 325
 | 
					                              Store 9(iv) 327
 | 
				
			||||||
             329:    7(ivec3) Load 9(iv)
 | 
					             328:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             330:    7(ivec3) CompositeInsert 328 329 0
 | 
					             329:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 330
 | 
					             330:    254(ptr) ImageTexelPointer 249(ui2D) 328 0
 | 
				
			||||||
             331:   27(ivec2) Load 143(ic2D)
 | 
					             331:    229(int) AtomicXor 330 240 232 329
 | 
				
			||||||
             332:    232(int) Load 255(value)
 | 
					             332:    229(int) Load 231(ui)
 | 
				
			||||||
             333:    257(ptr) ImageTexelPointer 252(ui2D) 331 0
 | 
					             333:    229(int) IAdd 332 331
 | 
				
			||||||
             334:    232(int) AtomicXor 333 243 235 332
 | 
					                              Store 231(ui) 333
 | 
				
			||||||
             335:    232(int) Load 234(ui)
 | 
					             334:      6(int) Load 133(ic1D)
 | 
				
			||||||
             336:    232(int) IAdd 335 334
 | 
					             336:    238(ptr) ImageTexelPointer 235(ii1D) 334 0
 | 
				
			||||||
                              Store 234(ui) 336
 | 
					             337:      6(int) AtomicExchange 336 240 232 335
 | 
				
			||||||
             337:      6(int) Load 133(ic1D)
 | 
					             338:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             339:    241(ptr) ImageTexelPointer 238(ii1D) 337 0
 | 
					             339:      6(int) CompositeExtract 338 0
 | 
				
			||||||
             340:      6(int) AtomicExchange 339 243 235 338
 | 
					             340:      6(int) IAdd 339 337
 | 
				
			||||||
             341:    7(ivec3) Load 9(iv)
 | 
					             341:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             342:      6(int) CompositeExtract 341 0
 | 
					             342:    7(ivec3) CompositeInsert 340 341 0
 | 
				
			||||||
             343:      6(int) IAdd 342 340
 | 
					                              Store 9(iv) 342
 | 
				
			||||||
             344:    7(ivec3) Load 9(iv)
 | 
					             343:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             345:    7(ivec3) CompositeInsert 343 344 0
 | 
					             344:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 345
 | 
					             345:    254(ptr) ImageTexelPointer 249(ui2D) 343 0
 | 
				
			||||||
             346:   27(ivec2) Load 143(ic2D)
 | 
					             346:    229(int) AtomicExchange 345 240 232 344
 | 
				
			||||||
             347:    232(int) Load 255(value)
 | 
					             347:    229(int) Load 231(ui)
 | 
				
			||||||
             348:    257(ptr) ImageTexelPointer 252(ui2D) 346 0
 | 
					             348:    229(int) IAdd 347 346
 | 
				
			||||||
             349:    232(int) AtomicExchange 348 243 235 347
 | 
					                              Store 231(ui) 348
 | 
				
			||||||
             350:    232(int) Load 234(ui)
 | 
					             349:      6(int) Load 133(ic1D)
 | 
				
			||||||
             351:    232(int) IAdd 350 349
 | 
					             352:    238(ptr) ImageTexelPointer 235(ii1D) 349 0
 | 
				
			||||||
                              Store 234(ui) 351
 | 
					             353:      6(int) AtomicCompareExchange 352 240 232 232 351 350
 | 
				
			||||||
             352:      6(int) Load 133(ic1D)
 | 
					             354:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             355:    241(ptr) ImageTexelPointer 238(ii1D) 352 0
 | 
					             355:      6(int) CompositeExtract 354 0
 | 
				
			||||||
             356:      6(int) AtomicCompareExchange 355 243 235 235 354 353
 | 
					             356:      6(int) IAdd 355 353
 | 
				
			||||||
             357:    7(ivec3) Load 9(iv)
 | 
					             357:    7(ivec3) Load 9(iv)
 | 
				
			||||||
             358:      6(int) CompositeExtract 357 0
 | 
					             358:    7(ivec3) CompositeInsert 356 357 0
 | 
				
			||||||
             359:      6(int) IAdd 358 356
 | 
					                              Store 9(iv) 358
 | 
				
			||||||
             360:    7(ivec3) Load 9(iv)
 | 
					             359:   27(ivec2) Load 143(ic2D)
 | 
				
			||||||
             361:    7(ivec3) CompositeInsert 359 360 0
 | 
					             361:    229(int) Load 252(value)
 | 
				
			||||||
                              Store 9(iv) 361
 | 
					             362:    254(ptr) ImageTexelPointer 249(ui2D) 359 0
 | 
				
			||||||
             362:   27(ivec2) Load 143(ic2D)
 | 
					             363:    229(int) AtomicCompareExchange 362 240 232 232 361 360
 | 
				
			||||||
             364:    232(int) Load 255(value)
 | 
					             364:    229(int) Load 231(ui)
 | 
				
			||||||
             365:    257(ptr) ImageTexelPointer 252(ui2D) 362 0
 | 
					             365:    229(int) IAdd 364 363
 | 
				
			||||||
             366:    232(int) AtomicCompareExchange 365 243 235 235 364 363
 | 
					                              Store 231(ui) 365
 | 
				
			||||||
             367:    232(int) Load 234(ui)
 | 
					             369:    229(int) Load 231(ui)
 | 
				
			||||||
             368:    232(int) IAdd 367 366
 | 
					             370:    7(ivec3) Load 9(iv)
 | 
				
			||||||
                              Store 234(ui) 368
 | 
					             371:      6(int) CompositeExtract 370 1
 | 
				
			||||||
             372:    232(int) Load 234(ui)
 | 
					             372:    229(int) Bitcast 371
 | 
				
			||||||
             373:    7(ivec3) Load 9(iv)
 | 
					             374:   373(bool) INotEqual 369 372
 | 
				
			||||||
             374:      6(int) CompositeExtract 373 1
 | 
					                              SelectionMerge 376 None
 | 
				
			||||||
             375:    232(int) Bitcast 374
 | 
					                              BranchConditional 374 375 378
 | 
				
			||||||
             377:   376(bool) INotEqual 372 375
 | 
					             375:               Label
 | 
				
			||||||
                              SelectionMerge 379 None
 | 
					             377:  126(fvec4)   Load 128(v)
 | 
				
			||||||
                              BranchConditional 377 378 381
 | 
					                                Store 368 377
 | 
				
			||||||
 | 
					                                Branch 376
 | 
				
			||||||
             378:               Label
 | 
					             378:               Label
 | 
				
			||||||
             380:  126(fvec4)   Load 128(v)
 | 
					                                Store 368 130
 | 
				
			||||||
                                Store 371 380
 | 
					                                Branch 376
 | 
				
			||||||
                                Branch 379
 | 
					             376:             Label
 | 
				
			||||||
             381:               Label
 | 
					             379:  126(fvec4) Load 368
 | 
				
			||||||
                                Store 371 130
 | 
					                              Store 367(fragData) 379
 | 
				
			||||||
                                Branch 379
 | 
					 | 
				
			||||||
             379:             Label
 | 
					 | 
				
			||||||
             382:  126(fvec4) Load 371
 | 
					 | 
				
			||||||
                              Store 370(fragData) 382
 | 
					 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
                              FunctionEnd
 | 
					                              FunctionEnd
 | 
				
			||||||
 | 
				
			|||||||
@ -51,8 +51,8 @@ void main()
 | 
				
			|||||||
    imageStore(i3D, ic3D, v);
 | 
					    imageStore(i3D, ic3D, v);
 | 
				
			||||||
    v += imageLoad(iCube, ic3D);
 | 
					    v += imageLoad(iCube, ic3D);
 | 
				
			||||||
    imageStore(iCube, ic3D, v);
 | 
					    imageStore(iCube, ic3D, v);
 | 
				
			||||||
    v += imageLoad(iCubeArray, ic4D);
 | 
					    v += imageLoad(iCubeArray, ic3D);
 | 
				
			||||||
    imageStore(iCubeArray, ic4D, v);
 | 
					    imageStore(iCubeArray, ic3D, v);
 | 
				
			||||||
    v += imageLoad(i2DRect, ic2D);
 | 
					    v += imageLoad(i2DRect, ic2D);
 | 
				
			||||||
    imageStore(i2DRect, ic2D, v);
 | 
					    imageStore(i2DRect, ic2D, v);
 | 
				
			||||||
    v += imageLoad(i1DArray, ic2D);
 | 
					    v += imageLoad(i1DArray, ic2D);
 | 
				
			||||||
 | 
				
			|||||||
@ -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.776"
 | 
					#define GLSLANG_REVISION "3.0.777"
 | 
				
			||||||
#define GLSLANG_DATE "30-Sep-2015"
 | 
					#define GLSLANG_DATE "01-Oct-2015"
 | 
				
			||||||
 | 
				
			|||||||
@ -2024,7 +2024,11 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int version, EProfile profile)
 | 
					void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int version, EProfile profile)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int dims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0);
 | 
					    int dims = dimMap[sampler.dim];
 | 
				
			||||||
 | 
					    // most things with an array add a dimension, except for cubemaps
 | 
				
			||||||
 | 
					    if (sampler.arrayed && sampler.dim != EsdCube)
 | 
				
			||||||
 | 
					        ++dims;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TString imageParams = typeName;
 | 
					    TString imageParams = typeName;
 | 
				
			||||||
    if (dims == 1)
 | 
					    if (dims == 1)
 | 
				
			||||||
        imageParams.append(", int");
 | 
					        imageParams.append(", int");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user