| SKIP: FAILED |
| |
| #include <metal_stdlib> |
| using namespace metal; |
| |
| struct lightingInfo { |
| float3 diffuse; |
| float3 specular; |
| }; |
| |
| struct LeftOver { |
| float4x4 u_World; |
| float4x4 u_ViewProjection; |
| float u_bumpStrength; |
| uint padding; |
| float3 u_cameraPosition; |
| float u_parallaxScale; |
| float textureInfoName; |
| uint padding_1; |
| float2 tangentSpaceParameter0; |
| }; |
| |
| struct Light0 { |
| float4 vLightData; |
| float4 vLightDiffuse; |
| float4 vLightSpecular; |
| float3 vLightGround; |
| uint padding_2; |
| float4 shadowsInfo; |
| float2 depthValues; |
| }; |
| |
| struct tint_module_vars_struct { |
| thread float* u_Float; |
| thread float3* u_Color; |
| texture2d<float, access::sample> TextureSamplerTexture; |
| sampler TextureSamplerSampler; |
| thread float2* vMainuv; |
| const constant LeftOver* x_269; |
| thread float4* v_output1; |
| thread bool* gl_FrontFacing; |
| thread float2* v_uv; |
| thread float4* v_output2; |
| texture2d<float, access::sample> TextureSampler1Texture; |
| sampler TextureSampler1Sampler; |
| const constant Light0* light0; |
| thread float4* glFragColor; |
| sampler bumpSamplerSampler; |
| texture2d<float, access::sample> bumpSamplerTexture; |
| }; |
| |
| struct main_out { |
| float4 glFragColor_1; |
| }; |
| |
| struct tint_symbol_outputs { |
| float4 main_out_glFragColor_1 [[color(0)]]; |
| }; |
| |
| struct tint_symbol_inputs { |
| float2 vMainuv_param [[user(locn1)]]; |
| float4 v_output1_param [[user(locn0)]]; |
| float2 v_uv_param [[user(locn3)]]; |
| float4 v_output2_param [[user(locn2)]]; |
| }; |
| |
| float3x3 cotangent_frame_vf3_vf3_vf2_vf2_(thread float3* const normal_1, thread float3* const p, thread float2* const uv, thread float2* const tangentSpaceParams) { |
| float3 dp1 = 0.0f; |
| float3 dp2 = 0.0f; |
| float2 duv1 = 0.0f; |
| float2 duv2 = 0.0f; |
| float3 dp2perp = 0.0f; |
| float3 dp1perp = 0.0f; |
| float3 tangent = 0.0f; |
| float3 bitangent = 0.0f; |
| float invmax = 0.0f; |
| float3 const x_133 = (*p); |
| dp1 = dfdx(x_133); |
| float3 const x_136 = (*p); |
| dp2 = dfdy(x_136); |
| float2 const x_139 = (*uv); |
| duv1 = dfdx(x_139); |
| float2 const x_142 = (*uv); |
| duv2 = dfdy(x_142); |
| float3 const x_145 = dp2; |
| float3 const x_146 = (*normal_1); |
| dp2perp = cross(x_145, x_146); |
| float3 const x_149 = (*normal_1); |
| float3 const x_150 = dp1; |
| dp1perp = cross(x_149, x_150); |
| float3 const x_153 = dp2perp; |
| float const x_155 = duv1[0u]; |
| float3 const x_157 = dp1perp; |
| float const x_159 = duv2[0u]; |
| tangent = ((x_153 * x_155) + (x_157 * x_159)); |
| float3 const x_163 = dp2perp; |
| float const x_165 = duv1[1u]; |
| float3 const x_167 = dp1perp; |
| float const x_169 = duv2[1u]; |
| bitangent = ((x_163 * x_165) + (x_167 * x_169)); |
| float const x_173 = (*tangentSpaceParams)[0u]; |
| float3 const x_174 = tangent; |
| tangent = (x_174 * x_173); |
| float const x_177 = (*tangentSpaceParams)[1u]; |
| float3 const x_178 = bitangent; |
| bitangent = (x_178 * x_177); |
| float3 const x_181 = tangent; |
| float3 const x_182 = tangent; |
| float3 const x_184 = bitangent; |
| float3 const x_185 = bitangent; |
| float const v = dot(x_181, x_182); |
| invmax = rsqrt(max(v, dot(x_184, x_185))); |
| float3 const x_189 = tangent; |
| float const x_190 = invmax; |
| float3 const x_191 = (x_189 * x_190); |
| float3 const x_192 = bitangent; |
| float const x_193 = invmax; |
| float3 const x_194 = (x_192 * x_193); |
| float3 const x_195 = (*normal_1); |
| float3 const v_1 = float3(x_191[0u], x_191[1u], x_191[2u]); |
| float3 const v_2 = float3(x_194[0u], x_194[1u], x_194[2u]); |
| return float3x3(v_1, v_2, float3(x_195[0u], x_195[1u], x_195[2u])); |
| } |
| |
| float3x3 transposeMat3_mf33_(thread float3x3* const inMatrix) { |
| float3 i0 = 0.0f; |
| float3 i1 = 0.0f; |
| float3 i2 = 0.0f; |
| float3x3 outMatrix = float3x3(0.0f); |
| float3 const x_60 = (*inMatrix)[0]; |
| i0 = x_60; |
| float3 const x_64 = (*inMatrix)[1]; |
| i1 = x_64; |
| float3 const x_68 = (*inMatrix)[2]; |
| i2 = x_68; |
| float const x_73 = i0[0u]; |
| float const x_75 = i1[0u]; |
| float const x_77 = i2[0u]; |
| float3 const x_78 = float3(x_73, x_75, x_77); |
| float const x_81 = i0[1u]; |
| float const x_83 = i1[1u]; |
| float const x_85 = i2[1u]; |
| float3 const x_86 = float3(x_81, x_83, x_85); |
| float const x_89 = i0[2u]; |
| float const x_91 = i1[2u]; |
| float const x_93 = i2[2u]; |
| float3 const x_94 = float3(x_89, x_91, x_93); |
| float3 const v_3 = float3(x_78[0u], x_78[1u], x_78[2u]); |
| float3 const v_4 = float3(x_86[0u], x_86[1u], x_86[2u]); |
| outMatrix = float3x3(v_3, v_4, float3(x_94[0u], x_94[1u], x_94[2u])); |
| float3x3 const x_110 = outMatrix; |
| return x_110; |
| } |
| |
| float3 perturbNormalBase_mf33_vf3_f1_(thread float3x3* const cotangentFrame, thread float3* const normal, thread float* const scale) { |
| float3x3 const x_113 = (*cotangentFrame); |
| float3 const x_114 = (*normal); |
| return normalize((x_113 * x_114)); |
| } |
| |
| float3 perturbNormal_mf33_vf3_f1_(thread float3x3* const cotangentFrame_1, thread float3* const textureSample, thread float* const scale_1) { |
| float3x3 param = float3x3(0.0f); |
| float3 param_1 = 0.0f; |
| float param_2 = 0.0f; |
| float3 const x_119 = (*textureSample); |
| float3x3 const x_125 = (*cotangentFrame_1); |
| param = x_125; |
| param_1 = ((x_119 * 2.0f) - float3(1.0f)); |
| float const x_128 = (*scale_1); |
| param_2 = x_128; |
| float3 const x_129 = perturbNormalBase_mf33_vf3_f1_((¶m), (¶m_1), (¶m_2)); |
| return x_129; |
| } |
| |
| lightingInfo computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_(thread float3* const viewDirectionW, thread float3* const vNormal, thread float4* const lightData, thread float3* const diffuseColor, thread float3* const specularColor, thread float3* const groundColor, thread float* const glossiness) { |
| float ndl = 0.0f; |
| lightingInfo result = {}; |
| float3 angleW = 0.0f; |
| float specComp = 0.0f; |
| float3 const x_212 = (*vNormal); |
| float4 const x_213 = (*lightData); |
| ndl = ((dot(x_212, float3(x_213[0u], x_213[1u], x_213[2u])) * 0.5f) + 0.5f); |
| float3 const x_220 = (*groundColor); |
| float3 const x_221 = (*diffuseColor); |
| float const x_222 = ndl; |
| result.diffuse = mix(x_220, x_221, float3(x_222, x_222, x_222)); |
| float3 const x_227 = (*viewDirectionW); |
| float4 const x_228 = (*lightData); |
| angleW = normalize((x_227 + float3(x_228[0u], x_228[1u], x_228[2u]))); |
| float3 const x_233 = (*vNormal); |
| float3 const x_234 = angleW; |
| specComp = max(0.0f, dot(x_233, x_234)); |
| float const x_237 = specComp; |
| float const x_238 = (*glossiness); |
| specComp = powr(x_237, max(1.0f, x_238)); |
| float const x_241 = specComp; |
| float3 const x_242 = (*specularColor); |
| result.specular = (x_242 * x_241); |
| lightingInfo const x_245 = result; |
| return x_245; |
| } |
| |
| void main_1(tint_module_vars_struct tint_module_vars) { |
| float4 tempTextureRead = 0.0f; |
| float3 rgb = 0.0f; |
| float3 output5 = 0.0f; |
| float4 output4 = 0.0f; |
| float2 uvOffset = 0.0f; |
| float normalScale = 0.0f; |
| float2 TBNUV = 0.0f; |
| float2 x_299 = 0.0f; |
| float3x3 TBN = float3x3(0.0f); |
| float3 param_3 = 0.0f; |
| float3 param_4 = 0.0f; |
| float2 param_5 = 0.0f; |
| float2 param_6 = 0.0f; |
| float3x3 invTBN = float3x3(0.0f); |
| float3x3 param_7 = float3x3(0.0f); |
| float parallaxLimit = 0.0f; |
| float2 vOffsetDir = 0.0f; |
| float2 vMaxOffset = 0.0f; |
| float numSamples = 0.0f; |
| float stepSize = 0.0f; |
| float currRayHeight = 0.0f; |
| float2 vCurrOffset = 0.0f; |
| float2 vLastOffset = 0.0f; |
| float lastSampledHeight = 0.0f; |
| float currSampledHeight = 0.0f; |
| int i = 0; |
| float delta1 = 0.0f; |
| float delta2 = 0.0f; |
| float ratio = 0.0f; |
| float2 parallaxOcclusion_0 = 0.0f; |
| float3x3 param_8 = float3x3(0.0f); |
| float3 param_9 = 0.0f; |
| float param_10 = 0.0f; |
| float2 output6 = 0.0f; |
| float4 tempTextureRead1 = 0.0f; |
| float3 rgb1 = 0.0f; |
| float3 viewDirectionW_1 = 0.0f; |
| float shadow = 0.0f; |
| float glossiness_1 = 0.0f; |
| float3 diffuseBase = 0.0f; |
| float3 specularBase = 0.0f; |
| float3 normalW = 0.0f; |
| lightingInfo info = {}; |
| float3 param_11 = 0.0f; |
| float3 param_12 = 0.0f; |
| float4 param_13 = 0.0f; |
| float3 param_14 = 0.0f; |
| float3 param_15 = 0.0f; |
| float3 param_16 = 0.0f; |
| float param_17 = 0.0f; |
| float3 diffuseOutput = 0.0f; |
| float3 specularOutput = 0.0f; |
| float3 output3 = 0.0f; |
| (*tint_module_vars.u_Float) = 100.0f; |
| (*tint_module_vars.u_Color) = float3(0.5f); |
| float2 const x_261 = (*tint_module_vars.vMainuv); |
| float4 const x_262 = tint_module_vars.TextureSamplerTexture.sample(tint_module_vars.TextureSamplerSampler, x_261); |
| tempTextureRead = x_262; |
| float4 const x_264 = tempTextureRead; |
| float const x_273 = (*tint_module_vars.x_269).textureInfoName; |
| rgb = (float3(x_264[0u], x_264[1u], x_264[2u]) * x_273); |
| float3 const x_279 = (*tint_module_vars.x_269).u_cameraPosition; |
| float4 const x_282 = (*tint_module_vars.v_output1); |
| output5 = normalize((x_279 - float3(x_282[0u], x_282[1u], x_282[2u]))); |
| output4 = float4(0.0f); |
| uvOffset = float2(0.0f); |
| float const x_292 = (*tint_module_vars.x_269).u_bumpStrength; |
| normalScale = (1.0f / x_292); |
| bool const x_298 = (*tint_module_vars.gl_FrontFacing); |
| if (x_298) { |
| float2 const x_303 = (*tint_module_vars.v_uv); |
| x_299 = x_303; |
| } else { |
| float2 const x_305 = (*tint_module_vars.v_uv); |
| x_299 = -(x_305); |
| } |
| float2 const x_307 = x_299; |
| TBNUV = x_307; |
| float4 const x_310 = (*tint_module_vars.v_output2); |
| float const x_312 = normalScale; |
| param_3 = (float3(x_310[0u], x_310[1u], x_310[2u]) * x_312); |
| float4 const x_317 = (*tint_module_vars.v_output1); |
| param_4 = float3(x_317[0u], x_317[1u], x_317[2u]); |
| float2 const x_320 = TBNUV; |
| param_5 = x_320; |
| float2 const x_324 = (*tint_module_vars.x_269).tangentSpaceParameter0; |
| param_6 = x_324; |
| float3x3 const x_325 = cotangent_frame_vf3_vf3_vf2_vf2_((¶m_3), (¶m_4), (¶m_5), (¶m_6)); |
| TBN = x_325; |
| float3x3 const x_328 = TBN; |
| param_7 = x_328; |
| float3x3 const x_329 = transposeMat3_mf33_((¶m_7)); |
| invTBN = x_329; |
| float3x3 const x_331 = invTBN; |
| float3 const x_332 = output5; |
| float3 const x_334 = (x_331 * -(x_332)); |
| float3x3 const x_337 = invTBN; |
| float3 const x_338 = output5; |
| parallaxLimit = (length(float2(x_334[0u], x_334[1u])) / (x_337 * -(x_338))[2u]); |
| float const x_345 = (*tint_module_vars.x_269).u_parallaxScale; |
| float const x_346 = parallaxLimit; |
| parallaxLimit = (x_346 * x_345); |
| float3x3 const x_349 = invTBN; |
| float3 const x_350 = output5; |
| float3 const x_352 = (x_349 * -(x_350)); |
| vOffsetDir = normalize(float2(x_352[0u], x_352[1u])); |
| float2 const x_356 = vOffsetDir; |
| float const x_357 = parallaxLimit; |
| vMaxOffset = (x_356 * x_357); |
| float3x3 const x_361 = invTBN; |
| float3 const x_362 = output5; |
| float3x3 const x_365 = invTBN; |
| float4 const x_366 = (*tint_module_vars.v_output2); |
| numSamples = (15.0f + (dot((x_361 * -(x_362)), (x_365 * float3(x_366[0u], x_366[1u], x_366[2u]))) * -11.0f)); |
| float const x_374 = numSamples; |
| stepSize = (1.0f / x_374); |
| currRayHeight = 1.0f; |
| vCurrOffset = float2(0.0f); |
| vLastOffset = float2(0.0f); |
| lastSampledHeight = 1.0f; |
| currSampledHeight = 1.0f; |
| i = 0; |
| { |
| while(true) { |
| int const x_388 = i; |
| if ((x_388 < 15)) { |
| } else { |
| break; |
| } |
| float2 const x_394 = (*tint_module_vars.v_uv); |
| float2 const x_395 = vCurrOffset; |
| float4 const x_397 = float4(0.0f); |
| currSampledHeight = x_397[3u]; |
| float const x_400 = currSampledHeight; |
| float const x_401 = currRayHeight; |
| if ((x_400 > x_401)) { |
| float const x_406 = currSampledHeight; |
| float const x_407 = currRayHeight; |
| delta1 = (x_406 - x_407); |
| float const x_410 = currRayHeight; |
| float const x_411 = stepSize; |
| float const x_413 = lastSampledHeight; |
| delta2 = ((x_410 + x_411) - x_413); |
| float const x_416 = delta1; |
| float const x_417 = delta1; |
| float const x_418 = delta2; |
| ratio = (x_416 / (x_417 + x_418)); |
| float const x_421 = ratio; |
| float2 const x_422 = vLastOffset; |
| float const x_424 = ratio; |
| float2 const x_426 = vCurrOffset; |
| vCurrOffset = ((x_422 * x_421) + (x_426 * (1.0f - x_424))); |
| break; |
| } else { |
| float const x_431 = stepSize; |
| float const x_432 = currRayHeight; |
| currRayHeight = (x_432 - x_431); |
| float2 const x_434 = vCurrOffset; |
| vLastOffset = x_434; |
| float const x_435 = stepSize; |
| float2 const x_436 = vMaxOffset; |
| float2 const x_438 = vCurrOffset; |
| vCurrOffset = (x_438 + (x_436 * x_435)); |
| float const x_440 = currSampledHeight; |
| lastSampledHeight = x_440; |
| } |
| { |
| int const x_441 = i; |
| i = (x_441 + 1); |
| } |
| continue; |
| } |
| } |
| float2 const x_444 = vCurrOffset; |
| parallaxOcclusion_0 = x_444; |
| float2 const x_445 = parallaxOcclusion_0; |
| uvOffset = x_445; |
| float2 const x_449 = (*tint_module_vars.v_uv); |
| float2 const x_450 = uvOffset; |
| float4 const x_452 = tint_module_vars.TextureSamplerTexture.sample(tint_module_vars.TextureSamplerSampler, (x_449 + x_450)); |
| float const x_454 = (*tint_module_vars.x_269).u_bumpStrength; |
| float3x3 const x_457 = TBN; |
| param_8 = x_457; |
| param_9 = float3(x_452[0u], x_452[1u], x_452[2u]); |
| param_10 = (1.0f / x_454); |
| float3 const x_461 = perturbNormal_mf33_vf3_f1_((¶m_8), (¶m_9), (¶m_10)); |
| float4 const x_462 = output4; |
| output4 = float4(x_461[0u], x_461[1u], x_461[2u], x_462[3u]); |
| float2 const x_465 = (*tint_module_vars.v_uv); |
| float2 const x_466 = uvOffset; |
| output6 = (x_465 + x_466); |
| float2 const x_474 = output6; |
| float4 const x_475 = tint_module_vars.TextureSampler1Texture.sample(tint_module_vars.TextureSampler1Sampler, x_474); |
| tempTextureRead1 = x_475; |
| float4 const x_477 = tempTextureRead1; |
| rgb1 = float3(x_477[0u], x_477[1u], x_477[2u]); |
| float3 const x_481 = (*tint_module_vars.x_269).u_cameraPosition; |
| float4 const x_482 = (*tint_module_vars.v_output1); |
| viewDirectionW_1 = normalize((x_481 - float3(x_482[0u], x_482[1u], x_482[2u]))); |
| shadow = 1.0f; |
| float const x_488 = (*tint_module_vars.u_Float); |
| glossiness_1 = (1.0f * x_488); |
| diffuseBase = float3(0.0f); |
| specularBase = float3(0.0f); |
| float4 const x_494 = output4; |
| normalW = float3(x_494[0u], x_494[1u], x_494[2u]); |
| float3 const x_501 = viewDirectionW_1; |
| param_11 = x_501; |
| float3 const x_503 = normalW; |
| param_12 = x_503; |
| float4 const x_507 = (*tint_module_vars.light0).vLightData; |
| param_13 = x_507; |
| float4 const x_510 = (*tint_module_vars.light0).vLightDiffuse; |
| param_14 = float3(x_510[0u], x_510[1u], x_510[2u]); |
| float4 const x_514 = (*tint_module_vars.light0).vLightSpecular; |
| param_15 = float3(x_514[0u], x_514[1u], x_514[2u]); |
| float3 const x_518 = (*tint_module_vars.light0).vLightGround; |
| param_16 = x_518; |
| float const x_520 = glossiness_1; |
| param_17 = x_520; |
| lightingInfo const x_521 = computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_((¶m_11), (¶m_12), (¶m_13), (¶m_14), (¶m_15), (¶m_16), (¶m_17)); |
| info = x_521; |
| shadow = 1.0f; |
| float3 const x_523 = info.diffuse; |
| float const x_524 = shadow; |
| float3 const x_526 = diffuseBase; |
| diffuseBase = (x_526 + (x_523 * x_524)); |
| float3 const x_529 = info.specular; |
| float const x_530 = shadow; |
| float3 const x_532 = specularBase; |
| specularBase = (x_532 + (x_529 * x_530)); |
| float3 const x_535 = diffuseBase; |
| float3 const x_536 = rgb1; |
| diffuseOutput = (x_535 * x_536); |
| float3 const x_539 = specularBase; |
| float3 const x_540 = (*tint_module_vars.u_Color); |
| specularOutput = (x_539 * x_540); |
| float3 const x_543 = diffuseOutput; |
| float3 const x_544 = specularOutput; |
| output3 = (x_543 + x_544); |
| float3 const x_548 = output3; |
| (*tint_module_vars.glFragColor) = float4(x_548[0u], x_548[1u], x_548[2u], 1.0f); |
| } |
| |
| main_out tint_symbol_inner(float2 vMainuv_param, float4 v_output1_param, bool gl_FrontFacing_param, float2 v_uv_param, float4 v_output2_param, tint_module_vars_struct tint_module_vars) { |
| (*tint_module_vars.vMainuv) = vMainuv_param; |
| (*tint_module_vars.v_output1) = v_output1_param; |
| (*tint_module_vars.gl_FrontFacing) = gl_FrontFacing_param; |
| (*tint_module_vars.v_uv) = v_uv_param; |
| (*tint_module_vars.v_output2) = v_output2_param; |
| main_1(tint_module_vars); |
| return main_out{.glFragColor_1=(*tint_module_vars.glFragColor)}; |
| } |
| |
| fragment tint_symbol_outputs tint_symbol(tint_symbol_inputs inputs [[stage_in]], bool gl_FrontFacing_param [[front_facing]], texture2d<float, access::sample> TextureSamplerTexture [[texture(0)]], sampler TextureSamplerSampler [[sampler(0)]], const constant LeftOver* x_269 [[buffer(0)]], texture2d<float, access::sample> TextureSampler1Texture [[texture(1)]], sampler TextureSampler1Sampler [[sampler(1)]], const constant Light0* light0 [[buffer(1)]]) { |
| thread float u_Float = 0.0f; |
| thread float3 u_Color = 0.0f; |
| thread float2 vMainuv = 0.0f; |
| thread float4 v_output1 = 0.0f; |
| thread bool gl_FrontFacing = false; |
| thread float2 v_uv = 0.0f; |
| thread float4 v_output2 = 0.0f; |
| thread float4 glFragColor = 0.0f; |
| tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u_Float=(&u_Float), .u_Color=(&u_Color), .TextureSamplerTexture=TextureSamplerTexture, .TextureSamplerSampler=TextureSamplerSampler, .vMainuv=(&vMainuv), .x_269=x_269, .v_output1=(&v_output1), .gl_FrontFacing=(&gl_FrontFacing), .v_uv=(&v_uv), .v_output2=(&v_output2), .TextureSampler1Texture=TextureSampler1Texture, .TextureSampler1Sampler=TextureSampler1Sampler, .light0=light0, .glFragColor=(&glFragColor)}; |
| return tint_symbol_outputs{.main_out_glFragColor_1=tint_symbol_inner(inputs.vMainuv_param, inputs.v_output1_param, gl_FrontFacing_param, inputs.v_uv_param, inputs.v_output2_param, tint_module_vars).glFragColor_1}; |
| } |
| program_source:331:20: warning: unused variable 'x_394' [-Wunused-variable] |
| float2 const x_394 = (*tint_module_vars.v_uv); |
| ^ |
| program_source:332:20: warning: unused variable 'x_395' [-Wunused-variable] |
| float2 const x_395 = vCurrOffset; |
| ^ |
| program_source:465:484: error: call to deleted constructor of 'texture2d<float, access::sample>' |
| tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u_Float=(&u_Float), .u_Color=(&u_Color), .TextureSamplerTexture=TextureSamplerTexture, .TextureSamplerSampler=TextureSamplerSampler, .vMainuv=(&vMainuv), .x_269=x_269, .v_output1=(&v_output1), .gl_FrontFacing=(&gl_FrontFacing), .v_uv=(&v_uv), .v_output2=(&v_output2), .TextureSampler1Texture=TextureSampler1Texture, .TextureSampler1Sampler=TextureSampler1Sampler, .light0=light0, .glFragColor=(&glFragColor)}; |
| ^ |
| /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_texture:6083:3: note: 'texture2d' has been explicitly marked deleted here |
| texture2d() thread = delete; |
| ^ |
| program_source:47:36: note: in implicit initialization of field 'bumpSamplerTexture' with omitted initializer |
| texture2d<float, access::sample> bumpSamplerTexture; |
| ^ |
| |