Performance issues when using Firefox version 52.0.2 ESR

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.

I opened the star burst sample :

   http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Star%20Burst.html&label=

I activated the ShowFramesPerSecond utility:

   viewer.scene.debugShowFramesPerSecond = true;

The utility shows an average of 9 fps, that is quite slow for a map with few graphics.

When I was using Firefox version 45.8.0 I was getting from 40 to 50 fps.

Version 52.0.2 supports webgl 1 and webgl2. I tested and Cesium is defaulting to always use webgl 1.

Has anybody else experienced the same issue? If yes, is there a workaround?

My customer is only allowed to use Firefox.

Thanks,

Alberto
Auto Generated Inline Image 1.png

New findings:

I tested with Firefox portable 51.0 and I experienced the same issue.

Then I tested with portable version 50.1.0 and the issue is not present.

I think the issue happens with Firefox versions 51 and up. These version started supporting webgl2.

Thanks,

Alberto

Alberto,

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?

Thanks,

Matt

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.

Matt,

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.

Thanks,

Alberto

Scott,

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.

Thanks,

Alberto

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.

Thanks,

Alberto

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?

Thanks,

Alberto

Hi Albert,

No, this setting is not configurable in Cesium.

This may be a bug with Firefox, try submitting a bug report.

Thanks!

Gabby

Gabby,

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.  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

Thanks,

Alberto

Thanks Alberto, hopefully Firefox can get this issue resolved.

Also, thanks for investigating and sharing the workaround settings!

Hi,

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.

Jannes