Chrome 128 was released 6 days ago and it can break a PlayCanvas project.
playcanvas-1.71.6.js:12516 Uncaught TypeError: Failed to execute 'uniform4fv' on 'WebGL2RenderingContext': The provided float value is non-finite.
at WebglGraphicsDevice._this.commitFunction.<computed> (playcanvas-1.71.6.js:12516:9)
at WebglGraphicsDevice.draw (playcanvas-1.71.6.js:13437:44)
at QuadRender.render (playcanvas-1.71.6.js:18764:11)
at RenderPassQuad.execute (playcanvas-1.71.6.js:18789:14)
at RenderPassQuad.render (playcanvas-1.71.6.js:14372:11)
at drawQuadWithShader (playcanvas-1.71.6.js:18811:14)
at Object.reprojectTexture (playcanvas-1.71.6.js:25360:5)
...
The project code before the engine code executing there:
// Reproject a cubemap into a texture
DynamicCubemap.prototype.reprojectCubemap = function (cubemap) {
// Original
pc.reprojectTexture(cubemap, this.cubemapTextures[0]);
// Generate prefiltered data
var sizes = [256, 128, 64, 32, 16, 8, 4];
var specPower = [undefined, undefined, 512, 128, 32, 8, 2];
// Prefilter cubemap into textures with different size+specular
for (let k = 1; k < sizes.length; k++) {
pc.reprojectTexture(this.cubemapTextures[0], this.cubemapTextures[k], {
specularPower: specPower[k],
numSamples: 1024,
});
}
};
That stack trace is from engine 1.71.6. I confirmed the same exception is thrown when using 1.73.4 or 2.0.0.
Chromium issue ticket: Chromium
Is this a Chrome issue? Is a patch in PlayCanvas engine needed? Thoughts on a project-level fix?