I just upgraded Firefox to version 52.0.2 ESR and I’m experiencing a very low performance in Cesium. I went to Sandcastle to rule out something wrong with my map application.
Cesium in Firefox 52 is performing same as always for me. Have you tested any WebGL content other than Cesium to see if you have similar performance issues? It sounds like this may be a video card driver issue specific to your machine. What OS and video card are you using?
Can you copy and paste the results of http://webglreport.com/ (just the WebGL1 part) and post them for us to see?
A large FPS drop like that sounds like you may be getting software rendering as a result of graphics card hardware blacklisting in the newer FF version. Try passing failIfMajorPerformanceCaveat : true into the contextOptions when creating a scene. If that throws, then you’re getting software rendering, which is generally going to be unusably slow.
Attached you can see the webgl report when using Firefox 52.0.2. The report is identical when using Firefox 50.1.0 portable. FPS in firefox 52.0.2 is 9, while in Firefox version 50.1.0 the fps has an acceptable 34 to 40.
I also attached the console errors when using Firefox 52.0.2 and 50.1.0. Both show different errors but the errors in Firefox 50.1.0 are not affecting performance like it does for the errors in 52.0.2.
The performance issue is happening in all the computers with the following OS and graphic card:
Using Windows 7 (intel core i5 2.30 Ghz)
Graphic card information:
AMD Radeon Graphic Processor (0x6760)
version 13.200.0.0 date: 9/12/2013
DAC type (Internal DAC (400HZ)
Adapter string: AMD Radeon HD 6470M
Total available graphic memory: 4830 MB
Dedicated video memory: 1024 MB
System video memory 00 MB
Shared sytem memory: 3815 MB
Tested using another app based in webgl and the app has no issues. Would this other app working fine would rule out a blacklisting of the driver?
I opened Firefox 52.0.2 about:support and the page is listing Hardware H264 Decoding with the following information: No;D3D9 blacklisted with DLL atium64.dll (9.14.10.996). The same blacklisting happens in Firefox portable 50.1.0 where the Cesium map has no issues.
I will try upgrading the graphic driver to the latest version and try again.
I set contextOptions: {webgl:{failIfMajorPerformanceCaveat:true}} when initializing the viewer. It didn’t throw, so the map is not running in software rendering mode. I’m going to upgrade the driver and see if it fixes the issue.
The network administrator tried updating the driver for the HD 6470M but support for this graphic card was discontinued. The latest driver is a beta version from : 7/29/2015. We tried installing this driver and it caused many problems to the computer. So the issue is a hardware issue and not a Cesium issue. The resolution is to upgrade the graphic card.
I found a workaround for the performance issue when using Firefox versions higher than 50.1.0 with AMD Radeon HD 6470M or FirePro M6100 in Windows. The fix is to go to Firefox about:config and disable webgl angle as follows:
webgl.disable-angle = true
The workaround has to be done in every computer in the field.
Is there a way to programmatically disable webgl.disable-angle in Cesium?
I submitted a bug in Firefox. This must a regression issue in the browser.
I encountered more issues in Firefox with the already mentioned graphic cards. The following settings fixes the performance issues in all cases I have tried so far:
1 - To disable WebGL Angle, set **webgl.disable-angle** to **true**.
2 - To enable WebGL, set webgl.force-enabled to true.
3 - To enable Layers Acceleration, set layers.acceleration.force-enabled
to true
4 - To enable Direct2D in Windows Vista/7, set gfx.direct2d.force-enabled
to true
we have some similar issues with firefox 52.esr and AMD graphic cards.
From firefox 45.esr to 52.esr the fps drops to about half. Also shadows don’t work anymore, you just see some artifacts.
After some testing and profiling with cesium i discovered that the performance is Ok, if you disable orderIndependentRendering and DepthPicking.
There seems to be something in common between these two features, which triggers the performance problems in the current firefox. Disabling only one option does nothing.
A second different solution on my test computer was to set the firefox flag in about:config webgl.angle.try-d3d11 to false. Using firefox 52esr with D3D9 works fine.
My Test Computer: Win 10, I5-4590 ATI FirePro V4800
Maybe there is some way to solve this problem in cesium. The combination of Firefox 52.esr with AMD Professional graphic cards unfortunately occurs often with our customers.