WebGL Context Errors in Firefox 83

Today my browser updated to Firefox 83 and unfortunately the performance of my addon immediately became unusable due to WebGL issues. (Win 10, NVidia drivers)

Has anyone else experienced any WebGL-related issues in Firefox 83?

(I’m getting Failed to create WebGL context: failIfMajorPerformanceCaveat: Compositor is not hardware-accelerated.)

Same error here on Linux when trying to load Google Maps after upgrading to Firefox 83 (Ubuntu 20.04 - AMD Renoir); this prevents the 3d mode of Google Maps from loading.

I just noticed this too for websites developed using pixi.js (it’s defaulting to canvas2D).

https://pixijs.io/examples/#/filters-advanced/shadertoy-filter-rendertexture.js

The very strange thing is, how does Shadertoy work then?

https://www.shadertoy.com/view/MtjfR3

Shaders require WebGL, right? (Ubuntu with NVidia drivers)

Windows 10 (1909) with AMD Radeon HD6450 here.
pixijs shows the error, too. shadertoy works fine.
Google Maps does not work.

Funny thing is, that Chrome and Edge have the same error, yet the old Internet Explorer works just fine!

I found this bug report:
Firefox 83 WebGL Broken
To my untrained eye, it looks like there has perhaps been an uptick in WebGL reported bugs.

Interestingly the pixi.js example works for me, but my addon (which uses Tensorflow.js in background.js context) is what breaks. I don’t have many users, but I do have a survey on offboarding with this as a specific question and nobody’s commented yet. I’ve downgraded to FF82 and listed that as the official workaround for now.

1 Like

Update: I heard from one of my addon users today. They had the same problem that I did; the integrated nature of the addon and its failure basically bricked their browsing experience. :frowning:

This was also someone on a Windows machine, not sure the drivers or video card brand.

Update 2: I had another user take my offboarding poll and they listed addon performance related to the FF83 upgrade as the reason they departed.

On the bright side, I did a bisection using mozregression for the first time and filed bug 1679671! That tooling is pretty slick and made it easy to find the change causing the issue.

Anybody else been encountering this issue further?

1 Like

The approach I’m running with so far is to host all the canvas stuff in an extension page instead, then tunnel data back and forth from background.js to the extension page via ports. So far the approach looks promising.

Update: the testing worked out and I have release version 2.0.0 with this change in architecture. Heavy, but works. Given that 1) a bug has been filed with Mozilla, 2) it is understood and limited to the addon background context, and 3) I have a workaround, I’m going to mark this as solved.