Last Comment Bug 727178 - [ANGLE]Display flickers on certain webgl demo.
: [ANGLE]Display flickers on certain webgl demo.
Status: RESOLVED FIXED
[qa+]
: regression
Product: Core
Classification: Components
Component: Canvas: WebGL (show other bugs)
: 11 Branch
: x86 Windows 7
: -- normal (vote)
: mozilla13
Assigned To: Jeff Gilbert [:jgilbert]
:
: Milan Sreckovic [:milan]
Mentors:
http://highrise.nfb.ca/onemillionthto...
: 722717 (view as bug list)
Depends on:
Blocks: 705024 723444
  Show dependency treegraph
 
Reported: 2012-02-14 11:35 PST by Alice0775 White
Modified: 2012-03-27 01:37 PDT (History)
7 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---
verified
verified


Attachments
Force ANGLE to use glFinish for resolve (1.32 KB, patch)
2012-02-23 14:59 PST, Jeff Gilbert [:jgilbert]
jacob.benoit.1: review+
akeybl: approval‑mozilla‑aurora+
Details | Diff | Splinter Review
Force ANGLE to use glFinish for resolve (beta) (1.19 KB, patch)
2012-02-28 16:15 PST, Jeff Gilbert [:jgilbert]
jacob.benoit.1: review+
akeybl: approval‑mozilla‑beta+
Details | Diff | Splinter Review

Description Alice0775 White 2012-02-14 11:35:08 PST
Build Identifier:
http://hg.mozilla.org/mozilla-central/rev/60edf587f4af
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0a1) Gecko/20120214 Firefox/13.0a1 ID:20120214031227

I notice a problem when test Bug 726936.
Display flickers on certain webgl demo.

webgl.prefer-native-gl=true (webgl.force-enabled=true if required) helps.

Note: Due to Bug 725747, It is difficult to test this in Nightly13.0a1

1. Start Firefox with new profile and UA spoofing
user_pref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20100101 Firefox/9.0");
2. Open http://highrise.nfb.ca/onemillionthtower/1mt_webgl.php
3. Wait loading page 100% and menu panel fade-in
4. Click "or JUST WATCH>>" link at the bottom of the menu panel
5. Wait around 10-15 sec

Actual Results:
  Screen flickers

Expected Results:
  Should not flicker

Regression window(m-c)
Works:
http://hg.mozilla.org/mozilla-central/rev/cbb0233c7ba8
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111217 Firefox/11.0a1 ID:20111217031145
Fails:
http://hg.mozilla.org/mozilla-central/rev/d4aad9645f77
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111217 Firefox/11.0a1 ID:20111217090244
Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=cbb0233c7ba8&tochange=d4aad9645f77


Regression window(m-i)
Works:
http://hg.mozilla.org/integration/mozilla-inbound/rev/b407ff123b6f
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111216 Firefox/11.0a1 ID:20111216140251
Fails:
http://hg.mozilla.org/integration/mozilla-inbound/rev/b88bac3a29ba
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111216 Firefox/11.0a1 ID:20111216144049
Pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=b407ff123b6f&tochange=b88bac3a29ba

In local build,
First bad changeset 9ba4a7f652fb
Last good changeset 84f4cb3c8b9e

Regressed by:
9ba4a7f652fb	Jeff Gilbert — Bug 705024 - Guarantee GLContexts are resolved properly - r=bjacob


Graphics
  Adapter Description : ATI Radeon HD 4300/4500 Series
  Vendor ID : 0x1002
  Device ID : 0x954f
  Adapter RAM : 512
  Adapter Drivers : aticfx64 aticfx64 aticfx32 aticfx32 atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64
  Driver Version : 8.930.0.0
  Driver Date : 12-5-2011
  Direct2D Enabled : true
  DirectWrite Enabled : true (6.1.7601.17563)
  ClearType Parameters : Gamma: 2200 Pixel Structure: RGB ClearType Level: 50 Enhanced Contrast: 200 
  WebGL Renderer : Google Inc. -- ANGLE (ATI Radeon HD 4300/4500 Series) -- OpenGL ES 2.0 (ANGLE 1.0.0.963)
  GPU Accelerated Windows : 1/1 Direct3D 10
  AzureBackend : direct2d
Comment 1 Jeff Gilbert [:jgilbert] 2012-02-22 21:10:47 PST
The WebGL Pasta demo at http://www.chromeexperiments.com/detail/webgl-pasta/?f=webgl displays incomplete rendering when running ANGLE, and this looks similar. (Flickering since most of the rendering here is actually 2d planes/images)

It appears that ANGLE's glFlush is not capable of resolving our FBOs for the purposes of compositing like we thought.

On the plus side, this is an easy fix, and doesn't appear to degrade performance.
Comment 2 Jeff Gilbert [:jgilbert] 2012-02-23 14:59:25 PST
Created attachment 600193 [details] [diff] [review]
Force ANGLE to use glFinish for resolve
Comment 3 Benoit Jacob [:bjacob] (mostly away) 2012-02-23 15:03:56 PST
Comment on attachment 600193 [details] [diff] [review]
Force ANGLE to use glFinish for resolve

Review of attachment 600193 [details] [diff] [review]:
-----------------------------------------------------------------

This restores the old behavior of falling back to another provider when EGL fails, doesn't it? If !gl we fall back.
Comment 4 Jeff Gilbert [:jgilbert] 2012-02-23 16:08:43 PST
This patch doesn't change that logic. I wouldn't think we should /not/ fallback. I thought we just blacklisted WGL in general, and that's how we prevented it.

If we don't want to fallback at all, we should change this code so reflect that. As it stands the whole idea is to allow fallback.
Comment 5 Benoit Jacob [:bjacob] (mostly away) 2012-02-24 14:53:33 PST
We didn't blacklist OpenGL in general, see widget/windows/GfxInfo.cpp. In fact, we use OpenGL on Optimus.

We changed the logic there so that when EGL creation fails, we don't try anymore to fall back to WGL. My understanding of your patch is that it reverts that: now if gl==null, we'll fall back.
Comment 6 Benoit Jacob [:bjacob] (mostly away) 2012-02-24 15:05:25 PST
Comment on attachment 600193 [details] [diff] [review]
Force ANGLE to use glFinish for resolve

sorry, got confused by the nested if's
Comment 8 Marco Bonardo [::mak] 2012-02-25 02:29:58 PST
https://hg.mozilla.org/mozilla-central/rev/791442d6d012
Comment 9 Scoobidiver (away) 2012-02-26 10:44:54 PST
*** Bug 722717 has been marked as a duplicate of this bug. ***
Comment 10 Jeff Gilbert [:jgilbert] 2012-02-28 16:06:39 PST
Comment on attachment 600193 [details] [diff] [review]
Force ANGLE to use glFinish for resolve

[Approval Request Comment]
Regression caused by (bug #): Bug 705024.
User impact if declined: Rendering may happen incorrectly (this bug) and apps may experience jankiness. (see Bug 723444)
Testing completed (on m-c, etc.): On m-c.
Risk to taking this patch (and alternatives if risky): Very low. The reason we didn't do this before was because we thought this is the 'slow' path, and we thought it was unnecessary.
String changes made by this patch: None.
Comment 11 Jeff Gilbert [:jgilbert] 2012-02-28 16:15:32 PST
Created attachment 601444 [details] [diff] [review]
Force ANGLE to use glFinish for resolve (beta)

Beta was too far back for the main patch to apply cleanly, so here's the beta version.
Comment 12 Alex Keybl [:akeybl] 2012-02-28 16:17:22 PST
Comment on attachment 600193 [details] [diff] [review]
Force ANGLE to use glFinish for resolve

[Triage Comment]
Based upon the low risk evaluation and chance of more web regressions (outside of just bug 723444), approving for Aurora 12 and Beta 11. Please land asap to make it into beta 5.
Comment 13 Jeff Gilbert [:jgilbert] 2012-02-28 16:25:41 PST
Fx12 Aurora:
https://hg.mozilla.org/releases/mozilla-aurora/rev/55ee63484487
Comment 14 Jeff Gilbert [:jgilbert] 2012-02-28 16:30:36 PST
Fx11/Beta:
https://hg.mozilla.org/releases/mozilla-beta/rev/cefd93ce9ec5
Comment 15 Simona B [:simonab ] 2012-03-07 02:58:49 PST
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0

Verified on Windows 7 on Firefox 11 beta 6 using the STR from the Description - display does not flicker.
Comment 16 Simona B [:simonab ] 2012-03-27 01:37:52 PDT
Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0

Verified on Win 7 with Firefox 12 beta 2 using the STR from the Description - display does not flicker.

Note You need to log in before you can comment on or make changes to this bug.