Closed Bug 646383 Opened 15 years ago Closed 7 years ago

WebGL Canvas tearing

Categories

(Core :: Graphics: CanvasWebGL, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: callow.mark, Unassigned)

References

()

Details

(Whiteboard: webgl-correctness)

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0 Build Identifier: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0 View the spinning cube at the above URL. Watch for a minute or so and observe all the shakes and shimmers. These are classic symptoms of the 'front buffer' being updated from the 'back buffer' before the application has finished drawing the frame. There are no shakes and shimmers in Chrome running on the same PC which has an NVIDIA Quadra FX 3450/4000 SDI with driver version 6.14.12.5981 (aka 259.81). The WebGL Renderer is reported as "NVIDIA Corporation -- Quadro FX 3450/4000 SDI/PCI/SSE2 -- 2.1.2" webgl.prefer-native-gl is false. webgl.verbose is true. Reproducible: Always Steps to Reproduce: 1. Visit the above URL and watch the animation.
I see the glitches too, on Mac. Benoit, roc, any idea what's going on here?
Status: UNCONFIRMED → NEW
Ever confirmed: true
The first weird thing is: > "NVIDIA Corporation -- Quadro FX 3450/4000 SDI/PCI/SSE2 -- 2.1.2" > > webgl.prefer-native-gl is false. So it's using the OpenGL driver instead of ANGLE, despite prefer-native-gl being false.
Re: comment #2, I thought that was strange too. In the old days of CRTs these symptoms were also an indication of the 'front buffer' being updated while the CRT was scanning the buffer, i.e. outside of the vertical blanking interval. Not sure how that applies in the world of LCDs.
QA Contact: canvas.webgl → bjacob
The phenomenon in comment 2 could well be explained by bug 713369 comment 35.
I cannot test winXP, but since d3d9 only uses readback, this should absolutely not be happening. If this can be repro'd, this is likely an error in the compositing bridge and/or d3d9 layers.
I have found another example where tearing occurs: http://www.atmind.nl/webgl/marchingpath.html It is especially noticeable on the pillars. This is happening in Firefox 22 on Windows XP. D3D compositing is enabled according to about:config. All layers.* config items are at their default settings as are the webgl.* items. It works fine in Firefox 21 on MacOS X 10.7.5. I'll try on Windows 7 later and report back. The GPU info from about.support is: (You need to make it easier to copy the GPU info into a bug report; I had to reformat everything below to make it readable.) Note that the GPU has changed since I initially filed this bug. Adapter Description: ATI FirePro V7800 (FireGL) Adapter Drivers: ati2dvag Adapter RAM: Unknown Device ID: 0x6889 DirectWrite Enabled: false (0.0.0.0) Driver Date: 9-2-2012 Driver Version: 8.982.8.1000 GPU #2 Active: false GPU Accelerated Windows: 1/1 Direct3D 9 Vendor ID: 0x1002 WebGL Renderer: Google Inc. -- ANGLE (ATI FirePro V7800 (FireGL)) AzureCanvasBackend: skia AzureContentBackend: none AzureFallbackCanvasBackend: cairo
Summary: Canvas is updated during WebGL frame → WebGL Canvas tearing
Interesting. It doesn't repro for me on Win7+FF24+NV, but that's a number of different variables. I'll try FF22 tomorrow. Can you try a recent version of Nightly?
Flags: needinfo?(callow.mark)
It happens in Nightly FF24a1 on Windows XP. It does not happen in FF21 on Windows 7 running natively on D3D10/AMD nor on Windows 7 running on a VM, which supports only D3D9, hosted on the same machine. So it looks like the problem is related to Windows XP. The Nightly installation is unacceptable for something billed as "for testing only". It took over from FF22 as my default browser. I'll be filing another bug about that.
Flags: needinfo?(callow.mark)
This is unlikely to repro on Win7 or Win8 -- on both 7 and 8, the DWM (which you can disable on 7, but not on 8) will force vsync for redraws. On XP, we don't have any vsync support, and thus are very likely to get tearing. Chrome, I think, -does- do vsync for its own compositing via ANGLE. We'll get there soon enough, but we need OMTC I think.
Whiteboard: webgl-correctness

XP is WONTFIX

Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.