Slow Chrome on iMac

I just bought a Apple 2019 27 in iMac 3.6GHz 8-core i9 64GB machine to see if it fixed my issues I had with some objects messing up and video flashes. It seems to have fixed those fine. But the problem is Chrome. I am getting like under 5 fps on webgl scenes that should be at 60. They work fine in Firefox & Safari at 60 fps. My 2013 iMac plays at 60 fps

Anybody with a mac has similar problems. So bummed out…


I have the same machine with 32GB RAM. Does yours have the Radeon Pro Vega 48? Happy to test for you. This is my primary dev machine for working on Kiri:Moto, which heavily leverages ThreeJS.

That page for example is dead slow in Chrome. My card is a RP580X 8GB not the Vega. Was thinking of sending it back for one with a Vega. If you can tell me if yours runs ok, then if I switch this should to…


It runs at 60fps on mine

Sweet, thanks, I will see if they will swap it…

Ok got my new machine and same graphic card as yours. It did solve a number of issue, but objects still freak out in chrome. Can you try this link and see if it works for you?


My hunch is that it’s a fill rate issue. Probably the green object drawing many pixels one on top of another?

I take it back, it’s probably due to this weird thing going on with the render to texture. Looks like you’re also rendering to a cubemap? It’s showing over 5 million vertices drawn in a frame written to different buffers.

Also the 14 clear calls may also be affecting things.

Well the thing is, it looks just fine in safari,Firefox,edge, which is why I am at a loss. The objects are glb and stl, doing the same. Not all objects are doing this, but three show the problem. In chrome anyway

What are you using to show those numbers?

it seems you have run into this chromium issue, which I filed a while back. it appears to be related to this issue which affects webgl on Intel Macs in Chromium. Apple changed something around 11.6.4 that broke the newer WebGLRenderer. but WebGL1Renderer still works. so I added this to my code to work around it.

// workaround for
let Renderer = nav.platform === 'MacIntel' &&
    nav.vendor.indexOf('Google') >= 0 ? WebGL1Renderer : WebGLRenderer;

Unfortunately, you can’t detect M1/M2 vs Intel in the browser, so MacIntel catches those, too, even though they are not affected.

WONDERFULL! Thanks so much, this worked great. I hope chrome is able to fix this issue soon.

Thanks again, Jeff

1 Like