Closed Bug 1072830 Opened 5 years ago Closed 5 years ago
Screen][Flame][KK] After unlocking with passcode, the secure camera icon would become square while fading out
STR: 1. Lock the screen with passcode 2. Unlock it with passcode The secure camera's icon would become square rather than keeping as a circle. The most odd things is in my video, the two phones come with exactly the same Gaia. The only difference is the correct one keep using old base image (v123), while the incorrect one is with KK (v180). Of course the Gecko may be different (flame vs flameKK), but the build number is the same.
The video shows the difference at the 0:08.
As Tim suggested, I move this bug to Graphic component, and nominate it as 2.1 blocker. Note this should be a KK only bug. [Blocking Requested - why for this release]: The icon was affected without any Gaia and Gecko code changes, and it's an obvious error for user. This may happen on 2.1 if 2.1 is with KK.
blocking-b2g: --- → 2.1?
Component: Gaia::System::Lockscreen → Graphics
Product: Firefox OS → Core
Peter, how do we pass this to the device team? Do we have a component/product combination for that? This is "graphics", but not clearly "Gecko graphics", so it needs to start with the device team as they deal with device specific issues.
Also, I can't actually tell from the video what we're talking about, but perhaps related to bug 1054833?
Tried again. The symptom still occur. Devices: 1. Flame KK Gecko 20140925160206 Gaia 2014-09-25 18:26:58 a06714c5 Base Image: v180 2. Flame Gecko 20140925160206 Gaia 2014-09-25 18:26:58 a06714c5 Base Image: v123 The reason I put it in Graphic component is I'm sure (according to the device information I provided) Gecko + Gaia is the same, but base image differs. So, the rest related factors are Graphic or Performance.
(In reply to Milan Sreckovic [:milan] from comment #3) > Peter, how do we pass this to the device team? Do we have a > component/product combination for that? This is "graphics", but not clearly > "Gecko graphics", so it needs to start with the device team as they deal > with device specific issues. Since this is able to reproduce in flame, we will take a look first. For the graphic issue for specific devices, I just feedback to PM to discuss the co-working model. chiajung, please help to check this issue.
Tested with LayerScope on JB/KK version, and the layers image of the icon are identical (camera icon with a rect shadow), so I think it maybe MaskLayer related.
I modified LayerScope to make it output mask layer, and found that the MaskLayer somehow becomes invalid and make the icon rectangular.
The weird thing is that this is same Gecko, different Gonk version. Matt and/or Jeff, thoughts?
MaskLayers are created as a CairoImage, so they'll be shared using shmem/memory and uploaded to a GL texture, not using gralloc. I assume something has changed in the GL drivers that causes this to become invalid when it wasn't happening previously. Since we still have the shmem/memory we could probably re-upload, but it would be worth trying to figure out why this happens and if it's a gecko bug or not. Chiajung, when you say the MaskLayer becomes invalid, what are you seeing exactly?
Adding qawanted for branch checks.
I added a SendTextureSource in http://dxr.mozilla.org/mozilla-central/source/gfx/layers/LayerScope.cpp?from=LayerScope.cpp&case=true#861 if (aEffectChain.mSecondaryEffects[EffectTypes::MASK]) to output the MaskLayer to LayerScope. When the icon becomes rectangular, the MaskLayer's image is absent in LayerScope. However, the MaskLayer is not nullptr from log, I added some log in LayerTransactionParent while it calls to SetMaskLayer and found the MaskLayer is not cleared for the Icon's Layer. So I think the layer is present but the content is invalid. I will try to add some more log to see what's wrong there.
By the way, I expect we uses GrallocBuffer in MaskLayer from code here: http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ImageContainer.cpp#658 => http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/TextureClient.cpp#328 However, I found it was MemoryTextureClient returned in gdb, so I make http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/TextureClient.cpp#341 a printf_stderr, and change the condition to if (!texture) and I can find some log like: 10-01 06:00:07.380 5351 5351 I Gecko : SetMaskLayer: 0xaaffb300 for 0xadb2b2b0 10-01 06:00:07.400 5351 5351 I Gecko : [chiajung]Failed to allocate a TextureClient, falling back to BufferTextureClient. I will add more log to check Gralloc allocations and make sure the layer logged is the target layer.
The bug repros on Flame 2.2 and Flame 2.1 with shallow flash. Actual result: After correctly entering the lockscreen passcode, the circular camera button momentarily turns into a square just before the lockscreen disappears. Flame 2.2 BuildID: 20141001060621 Gaia: a23d2c490b39c4699c9375e25c4acdf396a2fa85 Gecko: 835ef55e175e Platform Version: 35.0a1 Firmware Version: V180 User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0 Flame 2.1 BuildID: 20141001105624 Gaia: c1cc61e30f5cb3446f1692ff9fd1e32232f6a231 Gecko: 3b859b93de23 Platform Version: 34.0a2 Firmware Version: V180 User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0 -------------------------------------------------------------------------------------------------------- The bug does not repro on Flame 2.0 using shallow flash. Actual result: After correctly entering the lockscreen passcode, the circular camera button remains circular. BuildID: 20141001123531 Gaia: 8079cba2133e6f5443dba24dad077f7f91e6c978 Gecko: 3a656e533675 Platform Version: 32.0 Firmware Version: V180 User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
OK, I think I misunderstood something yesterday... I found the problem maybe the MemoryTextureHost deserialization fail. Since there is only 1 layer uses MaskLayer, so I use gdb and break this line: http://dxr.mozilla.org/mozilla-central/source/gfx/layers/composite/CompositableHost.cpp#169 We should finish update the TextureHost here after texture->lock(), but the width/height in the TextureHost is still (0,0).
The bug repros on the earlist KK build we have, but does not repro on JB builds. BuildID: 20140904171737 Gaia: de59e0c3614dd0061881fe284e9f2d74fa0d1d5d Gecko: 8703c1895505 Gonk: Platform Version: 35.0a1 Firmware Version: V180 User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage?]
The above comment is meant to indicate that a regression window is not available.
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
After some test with Greg, this maybe close for now, since some gaia change makes the icon totally invisible while animation! But maybe we should move this bug into our backlog. We tried: 184 base image: no problem 184 base image+master gecko: no problem 184 base image+master gaia: icon gone 184 base image+master gecko+master gaia: icon gone 184 base image+aurora gaia+aurora gecko: problem shown.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.