Closed Bug 1009980 Opened 11 years ago Closed 11 years ago

[B2G][Marketplace][Poppit] The 'Poppit' app appears black in the Card View screen.

Categories

(Core :: Graphics, defect)

30 Branch
ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
2.0 S3 (6june)
blocking-b2g 1.4+
Tracking Status
b2g-v1.3 --- unaffected
b2g-v1.3T --- unaffected
b2g-v1.4 --- fixed
b2g-v2.0 --- unaffected

People

(Reporter: dgomez, Assigned: pchang)

References

Details

(Keywords: regression, Whiteboard: [flame-1.4-exploratory])

Attachments

(3 files, 1 obsolete file)

Description: When the user launches the app 'Poppit', and holds the home button while the app is running, the 'Poppit' app in the Card View screen is black. Repro Steps: 1) Update a Flame to BuildID: 20140513000208 2) Download the app 'Poppit' from the marketplace. 3) Launch 'Poppit'. 4) Once you are in-game, hold the homescreen button to bring up the 'View Card' screen. 5) Observe the screen. Actual: The screen that displays the 'Poppit' app is black. Expected: The screen that displays the 'Poppit' app displays the in-game screen. 1.4F Environmental Variables: Device: Flame 1.4F MOZ BuildID: 20140513000208 Gaia: b40103dec34a147c9018a1af76eb21c3184f2f93 Gecko: c140bcd02b9b Version: 30.0 Firmware Version: v10F-3 Repro frequency: 6/6 See attached: Poppit_View_Card_Black_Screen.jpg, Logcat_Poppit_View_Card_Black_Screen.txt
Attaching Log This issue DOES occur on Buri 1.4: 1.4 Environmental Variables: Device: Buri 1.4 MOZ BuildID: 20140513000208 Gaia: b40103dec34a147c9018a1af76eb21c3184f2f93 Gecko: c140bcd02b9b Version: 30.0 Firmware Version: v1.2-device.cfg This issue DOES NOT occur on Buri 1.3: 1.3 Environmental Variables: Device: Buri 1.3 MOZ BuildID: 20140513024003 Gaia: 26a7a59d219fc8753613b433844123e428adcd56 Gecko: 328611bdebc6 Version: 28.0 Firmware Version: v1.2-device.cfg
blocking-b2g: --- → 1.4?
Component: General → Gaia::System::Window Mgmt
QA Contact: jzimbrick
Since this is reproduced 100% of the time and occurs across multiple apps, blocking this issue.
blocking-b2g: 1.4? → 1.4+
mozilla-inbound Regression Window: Last Working Environmental Variables: Device: Buri BuildID: 20140305134608 Gaia: 9cb35e701df44766d9b3560b0defe0a401a0ecdd Gecko: e91a61089c37 Version: 30.0a1 Base Image: V1.2-device.cfg First Broken Environmental Variables: Device: Buri BuildID: 20140305135105 Gaia: 9cb35e701df44766d9b3560b0defe0a401a0ecdd Gecko: 6f287c42495b Version: 30.0a1 Base Image: V1.2-device.cfg The Gaia ID is the same in both builds, indicating that this is a Gecko issue. Gecko Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=e91a61089c37&tochange=6f287c42495b
Broken either by bug 980048, bug 939276, or bug 956993. Milan - Can you find an assignee for this?
Component: Gaia::System::Window Mgmt → Graphics
Flags: needinfo?(milan)
Product: Firefox OS → Core
Version: unspecified → 30 Branch
:snorp, is there a quick way to test if this is caused by GL context multiplexing?
Flags: needinfo?(milan) → needinfo?(snorp)
Also, this works for me on 2.0 (on Nexus 4 though) - can somebody verify if it's working on 2.0 on supported platforms?
Keywords: qawanted
QA Contact: jzimbrick → jmitchell
(In reply to Milan Sreckovic [:milan] from comment #7) > Also, this works for me on 2.0 (on Nexus 4 though) - can somebody verify if > it's working on 2.0 on supported platforms? I just tested poppit on master flame. The rom is created by myself from yesterday's source. I did not saw the black screen. But the poppit was incredibly slow.
This issue DOES NOT reproduce on Flame 2.0 Environmental Variables: Device: Flame BuildID: 20140515163002 Gaia: 7973e06dc278f67b4109ac3c33020ed086f0d042 Gecko: 58c5a3427997 Version: 32.0a1 Firmware Version: v10F-3 This issue DOES NOT reproduce on the Buri 2.0 Environmental Variables: Device: Buri BuildID: 20140516052831 Gaia: 799b0f8bb71bc1b944f90c117ab5d6be4837ba1f Gecko: b5b35ec88db8 Version: 32.0a1 Firmware Version: v1.2-device.cfg
Keywords: qawanted
(In reply to Milan Sreckovic [:milan] from comment #6) > :snorp, is there a quick way to test if this is caused by GL context > multiplexing? not really, other than checking against 1.2.
Flags: needinfo?(snorp)
Any chance of getting a regression range on the master? Based on comment 9, it now works on master, it'd be good to know if it was broken on master on or around March 17th when 1.4 went to Aurora, and if it was broken then, what ended up fixing this issue on master. I'm tagging "regressionrange-wanted", but what I really want is a "started working on master range wanted" instead.
Assignee: nobody → sotaro.ikeda.g
(In reply to Milan Sreckovic [:milan] from comment #11) > what I really want is a "started working on > master range wanted" instead. Regression Window (Started working on Master): Last Broken Environmental Variables: Device: Buri BuildID: 20140410184106 Gaia: 1368d716072adf308e1b435ac828f97545a045f1 Gecko: d41e6e32df81 Version: 31.0a1 Firmware Version: v1.2-device.cfg First Fixed Environmental Variables: Device: Buri BuildID: 20140410211215 Gaia: 1368d716072adf308e1b435ac828f97545a045f1 Gecko: 783c5013dbec Version: 31.0a1 Firmware Version: v1.2-device.cfg Gaias are the same indicating this is a gecko issue.
Can we reduce the range in comment 12 down a bit using tinderbox builds?
I would guess bug 989375, perhaps 990871, and off chance bug bug 992486.
Flags: needinfo?(snorp)
Flags: needinfo?(nical.bugzilla)
Flags: needinfo?(matt.woodrow)
Is Poppit using WebGL? And are we generating the card view screen using drawWindow? If the answer to both of those is yes, then http://hg.mozilla.org/mozilla-central/rev/729fff2368c4 is probably the one you want.
Flags: needinfo?(matt.woodrow)
Actually not WebGL, just canvas 2d, and it appears that it is.
Right, that's the bug 989375, so not a bad guess on my part :) James, can you take a look, and let us know what kind of timeframe would be needed for the fix? We obviously can't just back out that change, it's another 1.4+, so I imagine it may take non-trivial amount of time.
Assignee: sotaro.ikeda.g → snorp
Flags: needinfo?(nical.bugzilla)
I could reproduce this issue on my side. This issue is gone when I set canvas accelerated as false(use skia only). With skiaGL enabled, the data from DataSourceSurface[1] is already blank. So the problem is inside the RenderDocument() call and looks like related to CopyableCanvasLayer.cpp. [1]http://dxr.mozilla.org/mozilla-central/source/content/canvas/src/CanvasRenderingContext2D.cpp#3633
(In reply to peter chang[:pchang][:peter] from comment #19) > I could reproduce this issue on my side. > This issue is gone when I set canvas accelerated as false(use skia only). > > With skiaGL enabled, the data from DataSourceSurface[1] is already blank. > So the problem is inside the RenderDocument() call and looks like related to > CopyableCanvasLayer.cpp. > > [1]http://dxr.mozilla.org/mozilla-central/source/content/canvas/src/ > CanvasRenderingContext2D.cpp#3633 Yeah, it looks like the readback path is still busted in CopyableCanvasLayer[1]. I'll try to look later today. [1] http://dxr.mozilla.org/mozilla-central/source/gfx/layers/CopyableCanvasLayer.cpp#128
Flags: needinfo?(snorp)
Wait, now I'm confused. Does my patch fix the bug or cause it? Is it working on master or not? Peter what did you test?
Flags: needinfo?(pchang)
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #21) > Wait, now I'm confused. Does my patch fix the bug or cause it? Is it working > on master or not? Peter what did you test? It is working on master but not on 1.4. For the patch of bug 939276, it adds the single SurfaceStream(mStream) for all skiaGL context. For 1.4 CopyableCanvasLayer, it didn't try to read back from mStream. Therefore, we always get the black screenshot when skaiGL enabled. http://mxr.mozilla.org/mozilla-central/source/content/canvas/src/CanvasRenderingContext2D.cpp#4204
Flags: needinfo?(pchang)
Attached patch v1 (obsolete) — Splinter Review
Try to read back from mStream first
Attachment #8426016 - Flags: review?(snorp)
(In reply to Sotaro Ikeda [:sotaro] from comment #8) > (In reply to Milan Sreckovic [:milan] from comment #7) > > Also, this works for me on 2.0 (on Nexus 4 though) - can somebody verify if > > it's working on 2.0 on supported platforms? > > I just tested poppit on master flame. The rom is created by myself from > yesterday's source. I did not saw the black screen. But the poppit was > incredibly slow. I also noticed the performance problem on master branch. Create Bug 1013762 to follow up.
Assignee: snorp → pchang
It looks like we just need to uplift the patch from bug 989375 then...
Hmm, bug 989375 is marked as fixed on 1.4? I guess that's erroneous?
The patch I already wrote for bug 989375 (which is identical to the one in comment #23) is already in 1.4, so I'm still confused. https://github.com/mozilla/gecko-dev/blob/b2g30_v1_4/gfx/layers/CopyableCanvasLayer.cpp#L100
(In reply to Jason Smith [:jsmith] from comment #14) > Can we reduce the range in comment 12 down a bit using tinderbox builds? Mozilla-Inbound Hamachi Regression-Window (Started Working) Last Broken: Environmental Variables: Device: Buri BuildID: 20140410113729 Gaia: 9d0b1bdf746823a94b13e6574c1d8304dc584763 Gecko: 902ce09a4dba Version: 31.0a1 Firmware Version: v1.2-device.cfg First Fixed: Environmental Variables: Device: Buri BuildID: 20140410122832 Gaia: 4bc61f9faa7fe76c911b4a7f3f89424cd38400bf Gecko: f2b8543b60ab Version: 31.0a1 Firmware Version: v1.2-device.cfg Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=902ce09a4dba&tochange=f2b8543b60ab
The range here looks incorrect - there's way too many inbound changesets in that push log. Please double check this.
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #27) > The patch I already wrote for bug 989375 (which is identical to the one in > comment #23) is already in 1.4, so I'm still confused. > > https://github.com/mozilla/gecko-dev/blob/b2g30_v1_4/gfx/layers/ > CopyableCanvasLayer.cpp#L100 In v1.4, it calls the deprecated flow which doesn't invoke to your modification. In my opinion, we could just patch the "mStream" to deprecated flow to fix this problem. https://github.com/mozilla/gecko-dev/blob/b2g30_v1_4/gfx/layers/CopyableCanvasLayer.cpp#L201 #0 mozilla::layers::CopyableCanvasLayer::DeprecatedPaintWithOpacity (this=0x431f7320, aContext=0x4359df20, aOpacity=1, aMaskLayer=0x0, aOperator=gfxContext::OPERATOR_OVER) at /tmp/ramdisk/b2g_gecko/gfx/layers/CopyableCanvasLayer.cpp:323 #1 0x40a60730 in mozilla::layers::BasicCanvasLayer::DeprecatedPaint (this=0x431f7320, aContext=0x4359df20, aMaskLayer=0x0) at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicCanvasLayer.cpp:55 #2 0x40a63bba in mozilla::layers::BasicLayerManager::PaintSelfOrChildren (this=0x4399c160, aPaintContext=..., aGroupTarget=0x4359df20) at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:837 #3 0x40a64210 in mozilla::layers::BasicLayerManager::PaintLayer (this=0x4399c160, aTarget=0x4359df20, aLayer=0x431f7320, aCallback=<value optimized out>, aCallbackData=0xbe9c7bd4, aReadback=0xbe9c7424) at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:963 #4 0x40a63c10 in mozilla::layers::BasicLayerManager::PaintSelfOrChildren (this=0x4399c160, aPaintContext=..., aGroupTarget=0x4359df20) at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:850 #5 0x40a64210 in mozilla::layers::BasicLayerManager::PaintLayer (this=0x4399c160, aTarget=0x4359df20, aLayer=0x439ecc00, aCallback=<value optimized out>, aCallbackData=0xbe9c7bd4, aReadback=0x0) at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:963 ... #12 0x40f147c8 in mozilla::dom::CanvasRenderingContext2D::DrawWindow (this=0x43594800, window=..., x=0, y=0, w=320, h=456, bgColor=..., flags=0, error=...) at /tmp/ramdisk/b2g_gecko/content/canvas/src/CanvasRenderingContext2D.cpp:3569 #13 0x40aef9a6 in drawWindow (cx=0x4312e060, obj=<value optimized out>, self=0x43594800, args=...) at /home/peter/b2g_debug_leo/objdir-rb2g_gecko/dom/bindings/CanvasRenderingContext2DBinding.cpp:3776 #14 0x40c875c4 in mozilla::dom::GenericBindingMethod (cx=0x4312e060, argc=<value optimized out>, vp=<value optimized out>) at /tmp/ramdisk/b2g_gecko/dom/bindings/BindingUtils.cpp:2276
(In reply to Jason Smith [:jsmith] from comment #29) > The range here looks incorrect - there's way too many inbound changesets in > that push log. Please double check this. I double-checked the results from Comment 28 and found the same results. I am able to provide a Regression Window from Mozilla Central builds or from the B2G builds, if you would like to see those.
Post the m-c window here & I'll take a look at it.
Regression Window: Mozilla Central Builds (Buri device) Last Broken 1.5 Environmental Variables: Device: Buri 1.5 BuildID: 20140410184106 Gaia: 1368d716072adf308e1b435ac828f97545a045f1 Gecko: d41e6e32df81 Version: 31.0a1 Firmware Version: v1.2-device.cfg First Fixed 1.5 Environmental Variables: Device: Buri 1.5 BuildID: 20140410211215 Gaia: 1368d716072adf308e1b435ac828f97545a045f1 Gecko: 783c5013dbec Version: 31.0a1 Firmware Version: v1.2-device.cfg Gecko pushlog for mozilla central: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=d41e6e32df81&tochange=783c5013dbec
Attachment #8426016 - Flags: review?(snorp) → review?(matt.woodrow)
(In reply to peter chang[:pchang][:peter] from comment #30) > (In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #27) > > The patch I already wrote for bug 989375 (which is identical to the one in > > comment #23) is already in 1.4, so I'm still confused. > > > > https://github.com/mozilla/gecko-dev/blob/b2g30_v1_4/gfx/layers/ > > CopyableCanvasLayer.cpp#L100 > matt, could you help to review my patch? > In v1.4, it calls the deprecated flow which doesn't invoke to your > modification. > In my opinion, we could just patch the "mStream" to deprecated flow to fix > this problem. > > https://github.com/mozilla/gecko-dev/blob/b2g30_v1_4/gfx/layers/ > CopyableCanvasLayer.cpp#L201 > > #0 mozilla::layers::CopyableCanvasLayer::DeprecatedPaintWithOpacity > (this=0x431f7320, aContext=0x4359df20, aOpacity=1, aMaskLayer=0x0, > aOperator=gfxContext::OPERATOR_OVER) > at /tmp/ramdisk/b2g_gecko/gfx/layers/CopyableCanvasLayer.cpp:323 > #1 0x40a60730 in mozilla::layers::BasicCanvasLayer::DeprecatedPaint > (this=0x431f7320, aContext=0x4359df20, aMaskLayer=0x0) at > /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicCanvasLayer.cpp:55 > #2 0x40a63bba in mozilla::layers::BasicLayerManager::PaintSelfOrChildren > (this=0x4399c160, aPaintContext=..., aGroupTarget=0x4359df20) at > /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:837 > #3 0x40a64210 in mozilla::layers::BasicLayerManager::PaintLayer > (this=0x4399c160, aTarget=0x4359df20, aLayer=0x431f7320, aCallback=<value > optimized out>, aCallbackData=0xbe9c7bd4, aReadback=0xbe9c7424) > at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:963 > #4 0x40a63c10 in mozilla::layers::BasicLayerManager::PaintSelfOrChildren > (this=0x4399c160, aPaintContext=..., aGroupTarget=0x4359df20) at > /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:850 > #5 0x40a64210 in mozilla::layers::BasicLayerManager::PaintLayer > (this=0x4399c160, aTarget=0x4359df20, aLayer=0x439ecc00, aCallback=<value > optimized out>, aCallbackData=0xbe9c7bd4, aReadback=0x0) > at /tmp/ramdisk/b2g_gecko/gfx/layers/basic/BasicLayerManager.cpp:963 > ... > #12 0x40f147c8 in mozilla::dom::CanvasRenderingContext2D::DrawWindow > (this=0x43594800, window=..., x=0, y=0, w=320, h=456, bgColor=..., flags=0, > error=...) > at > /tmp/ramdisk/b2g_gecko/content/canvas/src/CanvasRenderingContext2D.cpp:3569 > #13 0x40aef9a6 in drawWindow (cx=0x4312e060, obj=<value optimized out>, > self=0x43594800, args=...) at > /home/peter/b2g_debug_leo/objdir-rb2g_gecko/dom/bindings/ > CanvasRenderingContext2DBinding.cpp:3776 > #14 0x40c875c4 in mozilla::dom::GenericBindingMethod (cx=0x4312e060, > argc=<value optimized out>, vp=<value optimized out>) at > /tmp/ramdisk/b2g_gecko/dom/bindings/BindingUtils.cpp:2276
Comment on attachment 8426016 [details] [diff] [review] v1 Review of attachment 8426016 [details] [diff] [review]: ----------------------------------------------------------------- Ah, I didn't notice it was in the deprecated code. Looks fine.
Attachment #8426016 - Flags: review?(matt.woodrow) → review+
Attached patch v2(carry r+)Splinter Review
Update reviewers.
Attachment #8426016 - Attachment is obsolete: true
Attachment #8429730 - Flags: review+
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 11 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → 2.0 S3 (6june)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: