Closed Bug 658892 Opened 14 years ago Closed 14 years ago

Native WebGL is a lot slower than ANGLE on Windows

Categories

(Core :: Graphics: CanvasWebGL, defect)

x86
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 618898

People

(Reporter: ben.r.xiao, Unassigned)

Details

User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:6.0a1) Gecko/20110522 Firefox/6.0a1 Build Identifier: Mozilla/5.0 (Windows NT 6.1; rv:6.0a1) Gecko/20110522 Firefox/6.0a1 Setting webgl.prefer-native-gl to true causes a lot of WebGL demos to have a decrease in performance. It feels like Firefox is doing a lot of excessive GC while running WebGL. I have an Nvidia GPU, so it's not like my computer has bad OpenGL support. While Firefox's WebGL was always meant to be implemented using ANGLE, I feel that it should still maintain a performant native WebGL implementation because there are some WebGL apps out there that can benefit from it. An example is the Fractal Lab WebGL app: http://fractal.io/ . Under ANGLE, the GLSL shaders take a long time to compile, whereas under native GL it takes no time at all. Reproducible: Always Steps to Reproduce: 1. Set webgl.prefer-native-gl to true 2. Visit any one of these sites: http://videos-cdn.mozilla.net/serv/mozhacks/flight-of-the-navigator/ http://helloracer.com/webgl/ https://mozillademos.org/demos/nocomply/demo.html 3. Observe that the framerate stutters a lot compared to using ANGLE. Actual Results: Native WebGL is slower than ANGLE, even on GPUs with good OpenGL support. Expected Results: Native WebGL should be just as fast as ANGLE.
It's a lot more complicated than that. We use Direct3D for Layers acceleration on Windows. So in order to have fast OpenGL-backed WebGL, we need to be able to share the framebuffer across the OpenGL-D3D divide. This is in general not possible, but in the case of NVIDIA cards, there's a NVIDIA-specific extension we can use for that. This is bug 618898. Notice that we can't just decide to use OpenGL layers instead of D3D layers, because then we would lose interoperability with D2D content acceleration, so that would be just shifting the problem. In the long term we really want to implement this bug 618898, because we don't want to hardcode forever the dependency on ANGLE D3D9 rendering. In the short term this is not a big priority, because at most it would only be applicable to NVIDIA.
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.