blob: 84c7e570f47ea0a285489b01d15e97690e066a98 [file] [log] [blame]
SKIP: FAILED
<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: LeftOver = struct @align(16) {
u_World:mat4x4<f32> @offset(0)
u_ViewProjection:mat4x4<f32> @offset(64)
u_bumpStrength:f32 @offset(128)
padding:u32 @offset(132)
u_cameraPosition:vec3<f32> @offset(144)
u_parallaxScale:f32 @offset(156)
textureInfoName:f32 @offset(160)
padding_1:u32 @offset(164)
tangentSpaceParameter0:vec2<f32> @offset(168)
}
Light0 = struct @align(16) {
vLightData:vec4<f32> @offset(0)
vLightDiffuse:vec4<f32> @offset(16)
vLightSpecular:vec4<f32> @offset(32)
vLightGround:vec3<f32> @offset(48)
padding_2:u32 @offset(60)
shadowsInfo:vec4<f32> @offset(64)
depthValues:vec2<f32> @offset(80)
}
lightingInfo = struct @align(16) {
diffuse:vec3<f32> @offset(0)
specular:vec3<f32> @offset(16)
}
main_out = struct @align(16) {
glFragColor_1:vec4<f32> @offset(0), @location(0)
}
%b1 = block { # root
%u_Float:ptr<private, f32, read_write> = var
%u_Color:ptr<private, vec3<f32>, read_write> = var
%TextureSamplerTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(2, 1)
%TextureSamplerSampler:ptr<handle, sampler, read> = var @binding_point(2, 0)
%vMainuv:ptr<private, vec2<f32>, read_write> = var
%x_269:ptr<uniform, LeftOver, read> = var @binding_point(2, 6)
%v_output1:ptr<private, vec4<f32>, read_write> = var
%gl_FrontFacing:ptr<private, bool, read_write> = var
%v_uv:ptr<private, vec2<f32>, read_write> = var
%v_output2:ptr<private, vec4<f32>, read_write> = var
%TextureSampler1Texture:ptr<handle, texture_2d<f32>, read> = var @binding_point(2, 3)
%TextureSampler1Sampler:ptr<handle, sampler, read> = var @binding_point(2, 2)
%light0:ptr<uniform, Light0, read> = var @binding_point(0, 5)
%glFragColor:ptr<private, vec4<f32>, read_write> = var
%bumpSamplerSampler:ptr<handle, sampler, read> = var @binding_point(2, 4)
%bumpSamplerTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(2, 5)
}
%cotangent_frame_vf3_vf3_vf2_vf2_ = func(%normal_1:ptr<function, vec3<f32>, read_write>, %p:ptr<function, vec3<f32>, read_write>, %uv:ptr<function, vec2<f32>, read_write>, %tangentSpaceParams:ptr<function, vec2<f32>, read_write>):mat3x3<f32> -> %b2 {
%b2 = block {
%dp1:ptr<function, vec3<f32>, read_write> = var
%dp2:ptr<function, vec3<f32>, read_write> = var
%duv1:ptr<function, vec2<f32>, read_write> = var
%duv2:ptr<function, vec2<f32>, read_write> = var
%dp2perp:ptr<function, vec3<f32>, read_write> = var
%dp1perp:ptr<function, vec3<f32>, read_write> = var
%tangent:ptr<function, vec3<f32>, read_write> = var
%bitangent:ptr<function, vec3<f32>, read_write> = var
%invmax:ptr<function, f32, read_write> = var
%x_133:vec3<f32> = load %p
%32:vec3<f32> = dpdx %x_133
store %dp1, %32
%x_136:vec3<f32> = load %p
%34:vec3<f32> = dpdy %x_136
store %dp2, %34
%x_139:vec2<f32> = load %uv
%36:vec2<f32> = dpdx %x_139
store %duv1, %36
%x_142:vec2<f32> = load %uv
%38:vec2<f32> = dpdy %x_142
store %duv2, %38
%x_145:vec3<f32> = load %dp2
%x_146:vec3<f32> = load %normal_1
%41:vec3<f32> = cross %x_145, %x_146
store %dp2perp, %41
%x_149:vec3<f32> = load %normal_1
%x_150:vec3<f32> = load %dp1
%44:vec3<f32> = cross %x_149, %x_150
store %dp1perp, %44
%x_153:vec3<f32> = load %dp2perp
%x_155:f32 = load_vector_element %duv1, 0u
%x_157:vec3<f32> = load %dp1perp
%x_159:f32 = load_vector_element %duv2, 0u
%49:vec3<f32> = mul %x_153, %x_155
%50:vec3<f32> = mul %x_157, %x_159
%51:vec3<f32> = add %49, %50
store %tangent, %51
%x_163:vec3<f32> = load %dp2perp
%x_165:f32 = load_vector_element %duv1, 1u
%x_167:vec3<f32> = load %dp1perp
%x_169:f32 = load_vector_element %duv2, 1u
%56:vec3<f32> = mul %x_163, %x_165
%57:vec3<f32> = mul %x_167, %x_169
%58:vec3<f32> = add %56, %57
store %bitangent, %58
%x_173:f32 = load_vector_element %tangentSpaceParams, 0u
%x_174:vec3<f32> = load %tangent
%61:vec3<f32> = mul %x_174, %x_173
store %tangent, %61
%x_177:f32 = load_vector_element %tangentSpaceParams, 1u
%x_178:vec3<f32> = load %bitangent
%64:vec3<f32> = mul %x_178, %x_177
store %bitangent, %64
%x_181:vec3<f32> = load %tangent
%x_182:vec3<f32> = load %tangent
%x_184:vec3<f32> = load %bitangent
%x_185:vec3<f32> = load %bitangent
%69:f32 = dot %x_181, %x_182
%70:f32 = dot %x_184, %x_185
%71:f32 = max %69, %70
%72:f32 = inverseSqrt %71
store %invmax, %72
%x_189:vec3<f32> = load %tangent
%x_190:f32 = load %invmax
%x_191:vec3<f32> = mul %x_189, %x_190
%x_192:vec3<f32> = load %bitangent
%x_193:f32 = load %invmax
%x_194:vec3<f32> = mul %x_192, %x_193
%x_195:vec3<f32> = load %normal_1
%80:f32 = access %x_191, 0u
%81:f32 = access %x_191, 1u
%82:f32 = access %x_191, 2u
%83:vec3<f32> = construct %80, %81, %82
%84:f32 = access %x_194, 0u
%85:f32 = access %x_194, 1u
%86:f32 = access %x_194, 2u
%87:vec3<f32> = construct %84, %85, %86
%88:f32 = access %x_195, 0u
%89:f32 = access %x_195, 1u
%90:f32 = access %x_195, 2u
%91:vec3<f32> = construct %88, %89, %90
%92:mat3x3<f32> = construct %83, %87, %91
ret %92
}
}
%transposeMat3_mf33_ = func(%inMatrix:ptr<function, mat3x3<f32>, read_write>):mat3x3<f32> -> %b3 {
%b3 = block {
%i0:ptr<function, vec3<f32>, read_write> = var
%i1:ptr<function, vec3<f32>, read_write> = var
%i2:ptr<function, vec3<f32>, read_write> = var
%outMatrix:ptr<function, mat3x3<f32>, read_write> = var
%99:ptr<function, vec3<f32>, read_write> = access %inMatrix, 0i
%x_60:vec3<f32> = load %99
store %i0, %x_60
%101:ptr<function, vec3<f32>, read_write> = access %inMatrix, 1i
%x_64:vec3<f32> = load %101
store %i1, %x_64
%103:ptr<function, vec3<f32>, read_write> = access %inMatrix, 2i
%x_68:vec3<f32> = load %103
store %i2, %x_68
%x_73:f32 = load_vector_element %i0, 0u
%x_75:f32 = load_vector_element %i1, 0u
%x_77:f32 = load_vector_element %i2, 0u
%x_78:vec3<f32> = construct %x_73, %x_75, %x_77
%x_81:f32 = load_vector_element %i0, 1u
%x_83:f32 = load_vector_element %i1, 1u
%x_85:f32 = load_vector_element %i2, 1u
%x_86:vec3<f32> = construct %x_81, %x_83, %x_85
%x_89:f32 = load_vector_element %i0, 2u
%x_91:f32 = load_vector_element %i1, 2u
%x_93:f32 = load_vector_element %i2, 2u
%x_94:vec3<f32> = construct %x_89, %x_91, %x_93
%117:f32 = access %x_78, 0u
%118:f32 = access %x_78, 1u
%119:f32 = access %x_78, 2u
%120:vec3<f32> = construct %117, %118, %119
%121:f32 = access %x_86, 0u
%122:f32 = access %x_86, 1u
%123:f32 = access %x_86, 2u
%124:vec3<f32> = construct %121, %122, %123
%125:f32 = access %x_94, 0u
%126:f32 = access %x_94, 1u
%127:f32 = access %x_94, 2u
%128:vec3<f32> = construct %125, %126, %127
%129:mat3x3<f32> = construct %120, %124, %128
store %outMatrix, %129
%x_110:mat3x3<f32> = load %outMatrix
ret %x_110
}
}
%perturbNormalBase_mf33_vf3_f1_ = func(%cotangentFrame:ptr<function, mat3x3<f32>, read_write>, %normal:ptr<function, vec3<f32>, read_write>, %scale:ptr<function, f32, read_write>):vec3<f32> -> %b4 {
%b4 = block {
%x_113:mat3x3<f32> = load %cotangentFrame
%x_114:vec3<f32> = load %normal
%137:vec3<f32> = mul %x_113, %x_114
%138:vec3<f32> = normalize %137
ret %138
}
}
%perturbNormal_mf33_vf3_f1_ = func(%cotangentFrame_1:ptr<function, mat3x3<f32>, read_write>, %textureSample:ptr<function, vec3<f32>, read_write>, %scale_1:ptr<function, f32, read_write>):vec3<f32> -> %b5 {
%b5 = block {
%param:ptr<function, mat3x3<f32>, read_write> = var
%param_1:ptr<function, vec3<f32>, read_write> = var
%param_2:ptr<function, f32, read_write> = var
%x_119:vec3<f32> = load %textureSample
%x_125:mat3x3<f32> = load %cotangentFrame_1
store %param, %x_125
%148:vec3<f32> = mul %x_119, 2.0f
%149:vec3<f32> = sub %148, vec3<f32>(1.0f)
store %param_1, %149
%x_128:f32 = load %scale_1
store %param_2, %x_128
%x_129:vec3<f32> = call %perturbNormalBase_mf33_vf3_f1_, %param, %param_1, %param_2
ret %x_129
}
}
%computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_ = func(%viewDirectionW:ptr<function, vec3<f32>, read_write>, %vNormal:ptr<function, vec3<f32>, read_write>, %lightData:ptr<function, vec4<f32>, read_write>, %diffuseColor:ptr<function, vec3<f32>, read_write>, %specularColor:ptr<function, vec3<f32>, read_write>, %groundColor:ptr<function, vec3<f32>, read_write>, %glossiness:ptr<function, f32, read_write>):lightingInfo -> %b6 {
%b6 = block {
%ndl:ptr<function, f32, read_write> = var
%result:ptr<function, lightingInfo, read_write> = var
%angleW:ptr<function, vec3<f32>, read_write> = var
%specComp:ptr<function, f32, read_write> = var
%x_212:vec3<f32> = load %vNormal
%x_213:vec4<f32> = load %lightData
%166:f32 = access %x_213, 0u
%167:f32 = access %x_213, 1u
%168:f32 = access %x_213, 2u
%169:vec3<f32> = construct %166, %167, %168
%170:f32 = dot %x_212, %169
%171:f32 = mul %170, 0.5f
%172:f32 = add %171, 0.5f
store %ndl, %172
%x_220:vec3<f32> = load %groundColor
%x_221:vec3<f32> = load %diffuseColor
%x_222:f32 = load %ndl
%176:ptr<function, vec3<f32>, read_write> = access %result, 0u
%177:vec3<f32> = construct %x_222, %x_222, %x_222
%178:vec3<f32> = mix %x_220, %x_221, %177
store %176, %178
%x_227:vec3<f32> = load %viewDirectionW
%x_228:vec4<f32> = load %lightData
%181:f32 = access %x_228, 0u
%182:f32 = access %x_228, 1u
%183:f32 = access %x_228, 2u
%184:vec3<f32> = construct %181, %182, %183
%185:vec3<f32> = add %x_227, %184
%186:vec3<f32> = normalize %185
store %angleW, %186
%x_233:vec3<f32> = load %vNormal
%x_234:vec3<f32> = load %angleW
%189:f32 = dot %x_233, %x_234
%190:f32 = max 0.0f, %189
store %specComp, %190
%x_237:f32 = load %specComp
%x_238:f32 = load %glossiness
%193:f32 = max 1.0f, %x_238
%194:f32 = pow %x_237, %193
store %specComp, %194
%x_241:f32 = load %specComp
%x_242:vec3<f32> = load %specularColor
%197:ptr<function, vec3<f32>, read_write> = access %result, 1u
%198:vec3<f32> = mul %x_242, %x_241
store %197, %198
%x_245:lightingInfo = load %result
ret %x_245
}
}
%main_1 = func():void -> %b7 {
%b7 = block {
%tempTextureRead:ptr<function, vec4<f32>, read_write> = var
%rgb:ptr<function, vec3<f32>, read_write> = var
%output5:ptr<function, vec3<f32>, read_write> = var
%output4:ptr<function, vec4<f32>, read_write> = var
%uvOffset:ptr<function, vec2<f32>, read_write> = var
%normalScale:ptr<function, f32, read_write> = var
%TBNUV:ptr<function, vec2<f32>, read_write> = var
%x_299:ptr<function, vec2<f32>, read_write> = var
%TBN:ptr<function, mat3x3<f32>, read_write> = var
%param_3:ptr<function, vec3<f32>, read_write> = var
%param_4:ptr<function, vec3<f32>, read_write> = var
%param_5:ptr<function, vec2<f32>, read_write> = var
%param_6:ptr<function, vec2<f32>, read_write> = var
%invTBN:ptr<function, mat3x3<f32>, read_write> = var
%param_7:ptr<function, mat3x3<f32>, read_write> = var
%parallaxLimit:ptr<function, f32, read_write> = var
%vOffsetDir:ptr<function, vec2<f32>, read_write> = var
%vMaxOffset:ptr<function, vec2<f32>, read_write> = var
%numSamples:ptr<function, f32, read_write> = var
%stepSize:ptr<function, f32, read_write> = var
%currRayHeight:ptr<function, f32, read_write> = var
%vCurrOffset:ptr<function, vec2<f32>, read_write> = var
%vLastOffset:ptr<function, vec2<f32>, read_write> = var
%lastSampledHeight:ptr<function, f32, read_write> = var
%currSampledHeight:ptr<function, f32, read_write> = var
%i:ptr<function, i32, read_write> = var
%delta1:ptr<function, f32, read_write> = var
%delta2:ptr<function, f32, read_write> = var
%ratio:ptr<function, f32, read_write> = var
%parallaxOcclusion_0:ptr<function, vec2<f32>, read_write> = var
%param_8:ptr<function, mat3x3<f32>, read_write> = var
%param_9:ptr<function, vec3<f32>, read_write> = var
%param_10:ptr<function, f32, read_write> = var
%output6:ptr<function, vec2<f32>, read_write> = var
%tempTextureRead1:ptr<function, vec4<f32>, read_write> = var
%rgb1:ptr<function, vec3<f32>, read_write> = var
%viewDirectionW_1:ptr<function, vec3<f32>, read_write> = var
%shadow:ptr<function, f32, read_write> = var
%glossiness_1:ptr<function, f32, read_write> = var
%diffuseBase:ptr<function, vec3<f32>, read_write> = var
%specularBase:ptr<function, vec3<f32>, read_write> = var
%normalW:ptr<function, vec3<f32>, read_write> = var
%info:ptr<function, lightingInfo, read_write> = var
%param_11:ptr<function, vec3<f32>, read_write> = var
%param_12:ptr<function, vec3<f32>, read_write> = var
%param_13:ptr<function, vec4<f32>, read_write> = var
%param_14:ptr<function, vec3<f32>, read_write> = var
%param_15:ptr<function, vec3<f32>, read_write> = var
%param_16:ptr<function, vec3<f32>, read_write> = var
%param_17:ptr<function, f32, read_write> = var
%diffuseOutput:ptr<function, vec3<f32>, read_write> = var
%specularOutput:ptr<function, vec3<f32>, read_write> = var
%output3:ptr<function, vec3<f32>, read_write> = var
store %u_Float, 100.0f
store %u_Color, vec3<f32>(0.5f)
%x_261:vec2<f32> = load %vMainuv
%255:texture_2d<f32> = load %TextureSamplerTexture
%256:sampler = load %TextureSamplerSampler
%x_262:vec4<f32> = textureSample %255, %256, %x_261
store %tempTextureRead, %x_262
%x_264:vec4<f32> = load %tempTextureRead
%259:ptr<uniform, f32, read> = access %x_269, 6u
%x_273:f32 = load %259
%261:f32 = access %x_264, 0u
%262:f32 = access %x_264, 1u
%263:f32 = access %x_264, 2u
%264:vec3<f32> = construct %261, %262, %263
%265:vec3<f32> = mul %264, %x_273
store %rgb, %265
%266:ptr<uniform, vec3<f32>, read> = access %x_269, 4u
%x_279:vec3<f32> = load %266
%x_282:vec4<f32> = load %v_output1
%269:f32 = access %x_282, 0u
%270:f32 = access %x_282, 1u
%271:f32 = access %x_282, 2u
%272:vec3<f32> = construct %269, %270, %271
%273:vec3<f32> = sub %x_279, %272
%274:vec3<f32> = normalize %273
store %output5, %274
store %output4, vec4<f32>(0.0f)
store %uvOffset, vec2<f32>(0.0f)
%275:ptr<uniform, f32, read> = access %x_269, 2u
%x_292:f32 = load %275
%277:f32 = div 1.0f, %x_292
store %normalScale, %277
%x_298:bool = load %gl_FrontFacing
if %x_298 [t: %b8, f: %b9] { # if_1
%b8 = block { # true
%x_303:vec2<f32> = load %v_uv
store %x_299, %x_303
exit_if # if_1
}
%b9 = block { # false
%x_305:vec2<f32> = load %v_uv
%281:vec2<f32> = negation %x_305
store %x_299, %281
exit_if # if_1
}
}
%x_307:vec2<f32> = load %x_299
store %TBNUV, %x_307
%x_310:vec4<f32> = load %v_output2
%x_312:f32 = load %normalScale
%285:f32 = access %x_310, 0u
%286:f32 = access %x_310, 1u
%287:f32 = access %x_310, 2u
%288:vec3<f32> = construct %285, %286, %287
%289:vec3<f32> = mul %288, %x_312
store %param_3, %289
%x_317:vec4<f32> = load %v_output1
%291:f32 = access %x_317, 0u
%292:f32 = access %x_317, 1u
%293:f32 = access %x_317, 2u
%294:vec3<f32> = construct %291, %292, %293
store %param_4, %294
%x_320:vec2<f32> = load %TBNUV
store %param_5, %x_320
%296:ptr<uniform, vec2<f32>, read> = access %x_269, 8u
%x_324:vec2<f32> = load %296
store %param_6, %x_324
%x_325:mat3x3<f32> = call %cotangent_frame_vf3_vf3_vf2_vf2_, %param_3, %param_4, %param_5, %param_6
store %TBN, %x_325
%x_328:mat3x3<f32> = load %TBN
store %param_7, %x_328
%x_329:mat3x3<f32> = call %transposeMat3_mf33_, %param_7
store %invTBN, %x_329
%x_331:mat3x3<f32> = load %invTBN
%x_332:vec3<f32> = load %output5
%303:vec3<f32> = negation %x_332
%x_334:vec3<f32> = mul %x_331, %303
%x_337:mat3x3<f32> = load %invTBN
%x_338:vec3<f32> = load %output5
%307:f32 = access %x_334, 0u
%308:f32 = access %x_334, 1u
%309:vec2<f32> = construct %307, %308
%310:f32 = length %309
%311:vec3<f32> = negation %x_338
%312:vec3<f32> = mul %x_337, %311
%313:f32 = access %312, 2u
%314:f32 = div %310, %313
store %parallaxLimit, %314
%315:ptr<uniform, f32, read> = access %x_269, 5u
%x_345:f32 = load %315
%x_346:f32 = load %parallaxLimit
%318:f32 = mul %x_346, %x_345
store %parallaxLimit, %318
%x_349:mat3x3<f32> = load %invTBN
%x_350:vec3<f32> = load %output5
%321:vec3<f32> = negation %x_350
%x_352:vec3<f32> = mul %x_349, %321
%323:f32 = access %x_352, 0u
%324:f32 = access %x_352, 1u
%325:vec2<f32> = construct %323, %324
%326:vec2<f32> = normalize %325
store %vOffsetDir, %326
%x_356:vec2<f32> = load %vOffsetDir
%x_357:f32 = load %parallaxLimit
%329:vec2<f32> = mul %x_356, %x_357
store %vMaxOffset, %329
%x_361:mat3x3<f32> = load %invTBN
%x_362:vec3<f32> = load %output5
%x_365:mat3x3<f32> = load %invTBN
%x_366:vec4<f32> = load %v_output2
%334:vec3<f32> = negation %x_362
%335:vec3<f32> = mul %x_361, %334
%336:f32 = access %x_366, 0u
%337:f32 = access %x_366, 1u
%338:f32 = access %x_366, 2u
%339:vec3<f32> = construct %336, %337, %338
%340:vec3<f32> = mul %x_365, %339
%341:f32 = dot %335, %340
%342:f32 = mul %341, -11.0f
%343:f32 = add 15.0f, %342
store %numSamples, %343
%x_374:f32 = load %numSamples
%345:f32 = div 1.0f, %x_374
store %stepSize, %345
store %currRayHeight, 1.0f
store %vCurrOffset, vec2<f32>(0.0f)
store %vLastOffset, vec2<f32>(0.0f)
store %lastSampledHeight, 1.0f
store %currSampledHeight, 1.0f
store %i, 0i
loop [b: %b10, c: %b11] { # loop_1
%b10 = block { # body
%x_388:i32 = load %i
%347:bool = lt %x_388, 15i
if %347 [t: %b12, f: %b13] { # if_2
%b12 = block { # true
exit_if # if_2
}
%b13 = block { # false
exit_loop # loop_1
}
}
%x_394:vec2<f32> = load %v_uv
%x_395:vec2<f32> = load %vCurrOffset
%x_397:vec4<f32> = let vec4<f32>(0.0f)
%351:f32 = access %x_397, 3u
store %currSampledHeight, %351
%x_400:f32 = load %currSampledHeight
%x_401:f32 = load %currRayHeight
%354:bool = gt %x_400, %x_401
if %354 [t: %b14, f: %b15] { # if_3
%b14 = block { # true
%x_406:f32 = load %currSampledHeight
%x_407:f32 = load %currRayHeight
%357:f32 = sub %x_406, %x_407
store %delta1, %357
%x_410:f32 = load %currRayHeight
%x_411:f32 = load %stepSize
%x_413:f32 = load %lastSampledHeight
%361:f32 = add %x_410, %x_411
%362:f32 = sub %361, %x_413
store %delta2, %362
%x_416:f32 = load %delta1
%x_417:f32 = load %delta1
%x_418:f32 = load %delta2
%366:f32 = add %x_417, %x_418
%367:f32 = div %x_416, %366
store %ratio, %367
%x_421:f32 = load %ratio
%x_422:vec2<f32> = load %vLastOffset
%x_424:f32 = load %ratio
%x_426:vec2<f32> = load %vCurrOffset
%372:vec2<f32> = mul %x_422, %x_421
%373:f32 = sub 1.0f, %x_424
%374:vec2<f32> = mul %x_426, %373
%375:vec2<f32> = add %372, %374
store %vCurrOffset, %375
exit_loop # loop_1
}
%b15 = block { # false
%x_431:f32 = load %stepSize
%x_432:f32 = load %currRayHeight
%378:f32 = sub %x_432, %x_431
store %currRayHeight, %378
%x_434:vec2<f32> = load %vCurrOffset
store %vLastOffset, %x_434
%x_435:f32 = load %stepSize
%x_436:vec2<f32> = load %vMaxOffset
%x_438:vec2<f32> = load %vCurrOffset
%383:vec2<f32> = mul %x_436, %x_435
%384:vec2<f32> = add %x_438, %383
store %vCurrOffset, %384
%x_440:f32 = load %currSampledHeight
store %lastSampledHeight, %x_440
exit_if # if_3
}
}
continue %b11
}
%b11 = block { # continuing
%x_441:i32 = load %i
%387:i32 = add %x_441, 1i
store %i, %387
next_iteration %b10
}
}
%x_444:vec2<f32> = load %vCurrOffset
store %parallaxOcclusion_0, %x_444
%x_445:vec2<f32> = load %parallaxOcclusion_0
store %uvOffset, %x_445
%x_449:vec2<f32> = load %v_uv
%x_450:vec2<f32> = load %uvOffset
%392:texture_2d<f32> = load %TextureSamplerTexture
%393:sampler = load %TextureSamplerSampler
%394:vec2<f32> = add %x_449, %x_450
%x_452:vec4<f32> = textureSample %392, %393, %394
%396:ptr<uniform, f32, read> = access %x_269, 2u
%x_454:f32 = load %396
%x_457:mat3x3<f32> = load %TBN
store %param_8, %x_457
%399:f32 = access %x_452, 0u
%400:f32 = access %x_452, 1u
%401:f32 = access %x_452, 2u
%402:vec3<f32> = construct %399, %400, %401
store %param_9, %402
%403:f32 = div 1.0f, %x_454
store %param_10, %403
%x_461:vec3<f32> = call %perturbNormal_mf33_vf3_f1_, %param_8, %param_9, %param_10
%x_462:vec4<f32> = load %output4
%406:f32 = access %x_461, 0u
%407:f32 = access %x_461, 1u
%408:f32 = access %x_461, 2u
%409:f32 = access %x_462, 3u
%410:vec4<f32> = construct %406, %407, %408, %409
store %output4, %410
%x_465:vec2<f32> = load %v_uv
%x_466:vec2<f32> = load %uvOffset
%413:vec2<f32> = add %x_465, %x_466
store %output6, %413
%x_474:vec2<f32> = load %output6
%415:texture_2d<f32> = load %TextureSampler1Texture
%416:sampler = load %TextureSampler1Sampler
%x_475:vec4<f32> = textureSample %415, %416, %x_474
store %tempTextureRead1, %x_475
%x_477:vec4<f32> = load %tempTextureRead1
%419:f32 = access %x_477, 0u
%420:f32 = access %x_477, 1u
%421:f32 = access %x_477, 2u
%422:vec3<f32> = construct %419, %420, %421
store %rgb1, %422
%423:ptr<uniform, vec3<f32>, read> = access %x_269, 4u
%x_481:vec3<f32> = load %423
%x_482:vec4<f32> = load %v_output1
%426:f32 = access %x_482, 0u
%427:f32 = access %x_482, 1u
%428:f32 = access %x_482, 2u
%429:vec3<f32> = construct %426, %427, %428
%430:vec3<f32> = sub %x_481, %429
%431:vec3<f32> = normalize %430
store %viewDirectionW_1, %431
store %shadow, 1.0f
%x_488:f32 = load %u_Float
%433:f32 = mul 1.0f, %x_488
store %glossiness_1, %433
store %diffuseBase, vec3<f32>(0.0f)
store %specularBase, vec3<f32>(0.0f)
%x_494:vec4<f32> = load %output4
%435:f32 = access %x_494, 0u
%436:f32 = access %x_494, 1u
%437:f32 = access %x_494, 2u
%438:vec3<f32> = construct %435, %436, %437
store %normalW, %438
%x_501:vec3<f32> = load %viewDirectionW_1
store %param_11, %x_501
%x_503:vec3<f32> = load %normalW
store %param_12, %x_503
%441:ptr<uniform, vec4<f32>, read> = access %light0, 0u
%x_507:vec4<f32> = load %441
store %param_13, %x_507
%443:ptr<uniform, vec4<f32>, read> = access %light0, 1u
%x_510:vec4<f32> = load %443
%445:f32 = access %x_510, 0u
%446:f32 = access %x_510, 1u
%447:f32 = access %x_510, 2u
%448:vec3<f32> = construct %445, %446, %447
store %param_14, %448
%449:ptr<uniform, vec4<f32>, read> = access %light0, 2u
%x_514:vec4<f32> = load %449
%451:f32 = access %x_514, 0u
%452:f32 = access %x_514, 1u
%453:f32 = access %x_514, 2u
%454:vec3<f32> = construct %451, %452, %453
store %param_15, %454
%455:ptr<uniform, vec3<f32>, read> = access %light0, 3u
%x_518:vec3<f32> = load %455
store %param_16, %x_518
%x_520:f32 = load %glossiness_1
store %param_17, %x_520
%x_521:lightingInfo = call %computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_, %param_11, %param_12, %param_13, %param_14, %param_15, %param_16, %param_17
store %info, %x_521
store %shadow, 1.0f
%459:ptr<function, vec3<f32>, read_write> = access %info, 0u
%x_523:vec3<f32> = load %459
%x_524:f32 = load %shadow
%x_526:vec3<f32> = load %diffuseBase
%463:vec3<f32> = mul %x_523, %x_524
%464:vec3<f32> = add %x_526, %463
store %diffuseBase, %464
%465:ptr<function, vec3<f32>, read_write> = access %info, 1u
%x_529:vec3<f32> = load %465
%x_530:f32 = load %shadow
%x_532:vec3<f32> = load %specularBase
%469:vec3<f32> = mul %x_529, %x_530
%470:vec3<f32> = add %x_532, %469
store %specularBase, %470
%x_535:vec3<f32> = load %diffuseBase
%x_536:vec3<f32> = load %rgb1
%473:vec3<f32> = mul %x_535, %x_536
store %diffuseOutput, %473
%x_539:vec3<f32> = load %specularBase
%x_540:vec3<f32> = load %u_Color
%476:vec3<f32> = mul %x_539, %x_540
store %specularOutput, %476
%x_543:vec3<f32> = load %diffuseOutput
%x_544:vec3<f32> = load %specularOutput
%479:vec3<f32> = add %x_543, %x_544
store %output3, %479
%x_548:vec3<f32> = load %output3
%481:f32 = access %x_548, 0u
%482:f32 = access %x_548, 1u
%483:f32 = access %x_548, 2u
%484:vec4<f32> = construct %481, %482, %483, 1.0f
store %glFragColor, %484
ret
}
}
%tint_symbol = @fragment func(%vMainuv_param:vec2<f32> [@location(1)], %v_output1_param:vec4<f32> [@location(0)], %gl_FrontFacing_param:bool [@front_facing], %v_uv_param:vec2<f32> [@location(3)], %v_output2_param:vec4<f32> [@location(2)]):main_out -> %b16 {
%b16 = block {
store %vMainuv, %vMainuv_param
store %v_output1, %v_output1_param
store %gl_FrontFacing, %gl_FrontFacing_param
store %v_uv, %v_uv_param
store %v_output2, %v_output2_param
%491:void = call %main_1
%492:vec4<f32> = load %glFragColor
%493:main_out = construct %492
ret %493
}
}
unhandled variable address space
********************************************************************
* The tint shader compiler has encountered an unexpected error. *
* *
* Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
********************************************************************