Closed Bug 871624 Opened 11 years ago Closed 11 years ago

gralloc in b2g doesn't work on the Nexus S

Categories

(Core :: Graphics: Layers, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla24

People

(Reporter: dhylands, Assigned: qdot)

References

Details

Attachments

(4 files, 2 obsolete files)

Attached file Backtrace
If I try to build b2g on master for the nexus 4, then b2g fails to start.

I see the following in logcat:

12:13:54.921 233/233       GraphicBufferMapper  W   unlock(...) failed -22 (Invalid argument)
12:13:54.921 233/233                MOZ_Assert  F   Assertion failure: status == OK, at /home/work/B2G-nexus-s/gecko/gfx/layers/ipc/ShadowLayerUtilsGralloc.cpp:468
12:13:54.921 233/233                      libc  F   Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
This unlock failure here is android::GraphicBuffer::unlock.

Different GPU drivers give different implementations of the lock mechanism. On Adreno (the only thing that we tested against) the lock is a Qualcomm-specific mechanism named "genlock" (see: libgenlock.so). On the Nexus S's PowerVR driver, it must be a different mechanism. The precise lock behavior is (for all I know) underspecified so different drivers may behave differently.

The assert failure here, in PlatformCloseDescriptor, is a new assertion: before layers-refactoring, we only asserted in PlatformOpenDescriptor and not in PlatformCloseDescriptor. So likely this was already failing and we didn't pay attention until we'd get a crash (e.g. on a subsequent PlatformOpenDescriptor call).

So removing this assertion is not the right thing to do here. Instead we need:
 - either (if we want to use gralloc on PowerVR) to figure out what exactly are the gralloc lock semantics on this driver
 - or (if we don't want to use gralloc on PowerVR) to figure out the best way to detect an unsupported gralloc implementation (so we can then revert to plain shmems instead of gralloc).
Version: 19 Branch → Trunk
As we discussed on IRC yesterday, I've noticed some sluggishness of the Nexus S. Also, logcat shows messages like this:

W/GraphicBufferMapper(   78): unregisterBuffer(0x49a01a80) failed -22 (Invalid argument)
W/GraphicBufferMapper(   78): unregisterBuffer(0x495cac40) failed -22 (Invalid argument)
W/GraphicBufferMapper(   78): unregisterBuffer(0x49dd9480) failed -22 (Invalid argument)
W/GraphicBufferMapper(   78): unregisterBuffer(0x49a01900) failed -22 (Invalid argument)
W/GraphicBufferMapper(   78): unregisterBuffer(0x49cf8900) failed -22 (Invalid argument)

which might be related to the issue you are talking about.
in fact, on phone unagi, 
the qcom genlock was disabled by Michael Wu
so android::GraphicBuffer::unlock/lock should be a problem.
But on our device tara, there are some display error that possible caused by GraphicBuffer reading and writing at one moment 

hardware/qcom/display/libgenlock
SHA ID : 6405d30f2fac7d8a1f2cb17b99fb7dd0a8bcfdac

#ifndef USE_GENLOCK
-#define USE_GENLOCK
+//#define USE_GENLOCK
 #endif
The libgenlock here is not the one that actually gets pushed to the device, in Unagi builds. So, indeed genlock is disabled there, but that doesn't affect the behavior of B2G on Unagi's, unless you manually push that particular file on the device. By default, the libgenlock.so under vendor/ is pushed instead, and it does have genlock.

I assume that this is not Unagi-specific (?)

In fact, the errors that we are seeing here (comment 0) would not be seen if genlock were disabled.
Note: genlock is irrelevant to Nexus S. genlock is a Qualcomm-specific library. The Nexus S uses a PowerVR chip instead.
This is a workaround only for people who require the nexus-s for development (NFC B2G is all I know of right now). It makes sure we always fall back to shmem instead of using gralloc, which means master m-c actually boots on the nexus s.
For making this change more permanent, we'd like to only use gralloc on qc chipsets, which means only using Adreno. The GL Context has this information in its mRenderer member, so if we can figure out a way to get to that, we can make something that should work everywhere.

Any fix for this should also be wrapped in 

#if ANDROID_VERSION <= 15

to make sure its only run on ICS, in hopes that this won't be a problem when we port to JB.
Er, meant mVendors in the last comment, not mRenderer
Seems to work, but is a tiny bit spammy due to printing every time we allocate a surface. I don't think it's enough to be an issue, but I could fix that with something that prints once if needed.
Attachment #758082 - Attachment is obsolete: true
Attachment #758218 - Flags: review?(bjacob)
Attachment #758218 - Flags: review?(mwu)
Comment on attachment 758218 [details] [diff] [review]
Patch 1 (v1) - Check for platform whenever we allocate a surface

qcom doesn't actually reliably identify a qualcomm chipset. The Nexus 4 is one example - ro.hardware is mako there.
Attachment #758218 - Flags: review?(mwu)
Assignee: nobody → kyle
Attachment #758780 - Flags: review?(mwu)
Comment on attachment 758780 [details] [diff] [review]
Patch 1 (v2) - Turn off gralloc if nexus s ("crespo" device) is detected

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

Hm, can we use some sort of tristate so we only need to check once? Though I don't know if we call this allocation enough for it to really matter.

::: gfx/layers/ipc/ShadowLayerUtilsGralloc.cpp
@@ +341,5 @@
> +  // earlier, in hopes that JB will work.
> +#ifdef ANDROID_VERSION <= 15
> +  char propValue[PROPERTY_VALUE_MAX];
> +  property_get("ro.product.device", propValue, "None");
> +  if (strcmp("crespo",propValue) == 0) {

nit: space after comma
Attachment #758780 - Flags: review?(mwu) → review+
Will turning off gralloc break video playback? When playing videos that use the hardware decoder with this patch I get:

I/OMXCodec(  506): [OMX.SEC.AVC.Decoder] AVC profile = 66 (Baseline), level = 13
I/OMXCodec(  506): [OMX.SEC.AVC.Decoder] video dimensions are 320 x 240
E/Gecko   (  341): mozalloc_abort: Redirecting call to abort() to mozalloc_abort
F/libc    (  341): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
Hmmm, I'll check that and see what kind of stack we get back. That said, I'll personally take "booting at all and filing a bug on video playback issues" over "black screen"?
Looks like comment 13 issue was bug 843599, sorry for the noise.
(In reply to Chris Double (:doublec) from comment #13)
> Will turning off gralloc break video playback?

If it does, that's a bug that needs fixing on all devices, as we can always run out of gralloc memory even on devices where we normally can use gralloc.
Attachment #758780 - Flags: review?(bjacob) → review+
Summary: nexus-s no longer starts b2g → gralloc doesn't work on the Nexus S
Summary: gralloc doesn't work on the Nexus S → gralloc in b2g doesn't work on the Nexus S
Hmm, I'm not getting a crash with video, but I do get a "WebGL failed to initialize" or just a white screen when trying to play it. Will file a followup to investigate further.
https://hg.mozilla.org/mozilla-central/rev/2f82ac9f123e
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
Please find attached a logcat output of the GraphicBufferMapper augmented with some debug on the lock/unlock operations.

What we can see is that when unlock() returns -EINVAL it matches to unlock() calls for pointers which have already been unlock() and not yet re lock().
Depends on: 885266
I've tried breakpointing on b2g18 when the GraphicBufferMapper's unregisterBuffer() gets an -EINVAL error, and get the stacktrace:

#0  android::GraphicBufferMapper::unregisterBuffer (this=0x0, handle=0x43f39c40) at frameworks/base/libs/ui/GraphicBufferMapper.cpp:64
#1  0x41931ce4 in android::GraphicBuffer::free_handle (this=0x43c30980) at frameworks/base/libs/ui/GraphicBuffer.cpp:103
#2  0x41931dd6 in ~GraphicBuffer (this=0x43c30980, __in_chrg=<value optimized out>) at frameworks/base/libs/ui/GraphicBuffer.cpp:96
#3  0x41931df8 in ~GraphicBuffer (this=0x41a094e0, __in_chrg=<value optimized out>) at frameworks/base/libs/ui/GraphicBuffer.cpp:98
#4  0x4086d558 in android::LightRefBase<android::GraphicBuffer>::decStrong (this=0x43f4c438, __in_chrg=<value optimized out>) at /home/alex/codaz/B2G/frameworks/base/include/utils/RefBase.h:172
#5  android::EGLNativeBase<ANativeWindowBuffer, android::GraphicBuffer, android::LightRefBase<android::GraphicBuffer> >::decStrong (this=0x43f4c438, __in_chrg=<value optimized out>)
    at /home/alex/codaz/B2G/frameworks/base/include/ui/egl/android_natives.h:67
#6  ~sp (this=0x43f4c438, __in_chrg=<value optimized out>) at /home/alex/codaz/B2G/frameworks/base/include/utils/StrongPointer.h:149
#7  0x40c96b74 in ~GrallocBufferActor (this=0x43f4c400, __in_chrg=<value optimized out>) at ../../dist/include/mozilla/layers/ShadowLayerUtilsGralloc.h:68
#8  0x40c96b9c in ~GrallocBufferActor (this=0x41a094e0, __in_chrg=<value optimized out>) at ../../dist/include/mozilla/layers/ShadowLayerUtilsGralloc.h:68
#9  0x404a6b2c in mozilla::net::NeckoParent::DeallocPCookieService (this=<value optimized out>, cs=0x43f39c40) at /home/alex/codaz/B2G/gecko/netwerk/ipc/NeckoParent.cpp:410
#10 0x40b8dda0 in mozilla::layers::PLayersChild::RemoveManagee (this=0x43f17fa0, aProtocolId=<value optimized out>, aListener=<value optimized out>)
    at /home/alex/codaz/B2G/objdir-gecko/ipc/ipdl/PLayersChild.cpp:437
#11 0x40b8a976 in mozilla::layers::PGrallocBufferChild::OnMessageReceived (this=0x43f4c400, __msg=<value optimized out>) at /home/alex/codaz/B2G/objdir-gecko/ipc/ipdl/PGrallocBufferChild.cpp:211
#12 0x40b895bc in mozilla::layers::PCompositorChild::OnMessageReceived (this=0x43707260, __msg=...) at /home/alex/codaz/B2G/objdir-gecko/ipc/ipdl/PCompositorChild.cpp:627
#13 0x40b02b02 in mozilla::ipc::AsyncChannel::OnDispatchMessage (this=0x4370726c, msg=...) at /home/alex/codaz/B2G/gecko/ipc/glue/AsyncChannel.cpp:471
#14 0x40b0797e in mozilla::ipc::RPCChannel::OnMaybeDequeueOne (this=0x4370726c) at /home/alex/codaz/B2G/gecko/ipc/glue/RPCChannel.cpp:402
#15 0x40ae8206 in DispatchToMethod<mozilla::dom::ContentParent, void (mozilla::dom::ContentParent::*)()> (this=<value optimized out>) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/tuple.h:383
#16 RunnableMethod<mozilla::dom::ContentParent, void (mozilla::dom::ContentParent::*)(), Tuple0>::Run (this=<value optimized out>) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/task.h:307
#17 0x40b06328 in mozilla::ipc::RPCChannel::RefCountedTask::Run (this=<value optimized out>) at ../../dist/include/mozilla/ipc/RPCChannel.h:425
#18 mozilla::ipc::RPCChannel::DequeueTask::Run (this=<value optimized out>) at ../../dist/include/mozilla/ipc/RPCChannel.h:448
#19 0x40c3542c in MessageLoop::RunTask (this=0xbefc38bc, task=0xbefc2ec4) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:337
#20 0x40c3625e in MessageLoop::DeferOrRunPendingTask (this=0x4370726c, pending_task=<value optimized out>) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:345
#21 0x40c36e3c in MessageLoop::DoWork (this=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:445
#22 0x40b05ce4 in mozilla::ipc::DoWorkRunnable::Run (this=<value optimized out>) at /home/alex/codaz/B2G/gecko/ipc/glue/MessagePump.cpp:42
#23 0x40c13476 in nsThread::ProcessNextEvent (this=0x41a068e0, mayWait=<value optimized out>, result=0xbefc2fa7) at /home/alex/codaz/B2G/gecko/xpcom/threads/nsThread.cpp:620
#24 0x40bf3846 in NS_ProcessNextEvent_P (thread=0x4370726c, mayWait=false) at /home/alex/codaz/B2G/objdir-gecko/xpcom/build/nsThreadUtils.cpp:237
#25 0x40b05df4 in mozilla::ipc::MessagePump::Run (this=0x41a02310, aDelegate=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/glue/MessagePump.cpp:82
#26 0x40b05ea6 in mozilla::ipc::MessagePumpForChildProcess::Run (this=0x41a02310, aDelegate=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/glue/MessagePump.cpp:231
#27 0x40c353e8 in MessageLoop::RunInternal (this=0x1000000) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:219
#28 0x40c35492 in MessageLoop::RunHandler (this=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:212
#29 MessageLoop::Run (this=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:186
#30 0x40a8abe4 in nsBaseAppShell::Run (this=0x437390a0) at /home/alex/codaz/B2G/gecko/widget/xpwidgets/nsBaseAppShell.cpp:163
#31 0x4041901c in XRE_RunAppShell () at /home/alex/codaz/B2G/gecko/toolkit/xre/nsEmbedFunctions.cpp:646
#32 0x40b05e74 in mozilla::ipc::MessagePumpForChildProcess::Run (this=0x41a02310, aDelegate=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/glue/MessagePump.cpp:198
#33 0x40c353e8 in MessageLoop::RunInternal (this=0x437390a0) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:219
#34 0x40c35492 in MessageLoop::RunHandler (this=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:212
#35 MessageLoop::Run (this=0xbefc38bc) at /home/alex/codaz/B2G/gecko/ipc/chromium/src/base/message_loop.cc:186
#36 0x404193c0 in XRE_InitChildProcess (aArgc=<value optimized out>, aArgv=<value optimized out>, aProcess=GeckoProcessType_Content) at /home/alex/codaz/B2G/gecko/toolkit/xre/nsEmbedFunctions.cpp:485
#37 0x00008532 in main (argc=5, argv=0xbefc3a24) at /home/alex/codaz/B2G/gecko/ipc/app/MozillaRuntimeMain.cpp:60

What I find suspicious are lines 2 and 3 ; 7 and 8: two calls, that would explain -EINVAL.
I've tried tracking this, on gecko master.

The following change gives nice results:

diff --git a/gfx/layers/client/TextureClient.cpp b/gfx/layers/client/TextureClient.cpp
index b568892..97abf09 100644
--- a/gfx/layers/client/TextureClient.cpp
+++ b/gfx/layers/client/TextureClient.cpp
@@ -123,19 +123,24 @@ TextureClientShmem::GetSurface()
 void
 TextureClientShmem::Unlock()
 {
+  printf_stderr("TextureClientShmem::Unlock(%p): IN", this);
   mSurface = nullptr;
   mSurfaceAsImage = nullptr;
 
   ShadowLayerForwarder::CloseDescriptor(mDescriptor);
+  printf_stderr("TextureClientShmem::Unlock(%p): OUT", this);
 }
 
 gfxImageSurface*
 TextureClientShmem::LockImageSurface()
 {
+  printf_stderr("TextureClientShmem::LockImageSurface(%p): IN", this);
   if (!mSurfaceAsImage) {
     mSurfaceAsImage = GetSurface()->GetAsImageSurface();
+    printf_stderr("TextureClientShmem::LockImageSurface(%p): GetAsImageSurface()", this);
   }
 
+  printf_stderr("TextureClientShmem::LockImageSurface(%p): OUT", this);
   return mSurfaceAsImage.get();
 }
 
diff --git a/gfx/layers/client/TextureClient.h b/gfx/layers/client/TextureClient.h
index cd45fe8..de70b39 100644
--- a/gfx/layers/client/TextureClient.h
+++ b/gfx/layers/client/TextureClient.h
@@ -162,7 +162,7 @@ public:
     return aType == TEXTURE_SHMEM || aType == TEXTURE_CONTENT;
   }
   virtual gfxImageSurface* LockImageSurface() MOZ_OVERRIDE;
-  virtual gfxASurface* LockSurface() MOZ_OVERRIDE { return GetSurface(); }
+  virtual gfxASurface* LockSurface() MOZ_OVERRIDE { printf_stderr("TextureClientShmem::LockSurface(%p): IN/OUT", this); return GetSurface(); }
   virtual void Unlock() MOZ_OVERRIDE;
   virtual void EnsureAllocated(gfx::IntSize aSize, gfxASurface::gfxContentType aType) MOZ_OVERRIDE;

-----> Result:

--------- beginning of /dev/log/main
I/power   (  984): *** set_screen_state 1
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gonk    (  984): Setting nice for pid 1029 to 1
I/Gonk    (  984): Changed nice for pid 1029 from 18 to 1.
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea01d0): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea01d0): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea0240): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea0240): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea0240): OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea0240): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea01d0): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea0240): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea0240): OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea01d0): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::LockSurface(0x43ea0240): IN/OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea01d0): OUT
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea0240): IN
I/Gecko   ( 1029): TextureClientShmem::Unlock(0x43ea0240): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452488d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452489b0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248c50): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452488d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248940): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452489b0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248a90): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248c50): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248e10): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fc20
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0fb88
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
W/GraphicBufferMapper(  984): unlock(...) failed -22 (Invalid argument)
I/Gecko   (  984): buffer->unlock() returned -EINVAL for 0xbed0faf0
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
E/GraphicBufferMapper(  984): INVALID BUFFER :( :( :(
W/GraphicBufferMapper(  984): unregisterBuffer(0x45216c40) failed -22 (Invalid argument)
E/GraphicBufferMapper(  984): INVALID BUFFER :( :( :(
W/GraphicBufferMapper(  984): unregisterBuffer(0x45216e80) failed -22 (Invalid argument)
E/GraphicBufferMapper(  984): INVALID BUFFER :( :( :(
W/GraphicBufferMapper(  984): unregisterBuffer(0x45219100) failed -22 (Invalid argument)
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452488d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452489b0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248c50): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452488d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248940): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452488d0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248940): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x452489b0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248a90): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x452489b0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248a90): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248c50): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x45248e10): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248c50): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x45248e10): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
E/GraphicBufferMapper(  984): INVALID BUFFER :( :( :(
W/GraphicBufferMapper(  984): unregisterBuffer(0x44f70380) failed -22 (Invalid argument)
E/GraphicBufferMapper(  984): INVALID BUFFER :( :( :(
W/GraphicBufferMapper(  984): unregisterBuffer(0x44f8e2c0) failed -22 (Invalid argument)
E/GraphicBufferMapper(  984): INVALID BUFFER :( :( :(
W/GraphicBufferMapper(  984): unregisterBuffer(0x451d3600) failed -22 (Invalid argument)
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/power   (  984): *** set_screen_state 0
I/Gonk    (  984): Setting nice for pid 1029 to 18
I/Gonk    (  984): Changed nice for pid 1029 from 1 to 18.
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f8d0): IN/OUT
I/Gecko   (  984): TextureClientShmem::LockSurface(0x4458f5c0): IN/OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f8d0): OUT
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): IN
I/Gecko   (  984): TextureClientShmem::Unlock(0x4458f5c0): OUT
I've added some more printf_stderr() debugging:

I/Gecko   ( 2538): ContentClientRemoteBuffer::BeginPaint() mTextureClient = 0x44591120
I/Gecko   ( 2538): AutoTextureClient::GetSurface() mTexture->LockSurface() = 0x44590080
I/Gecko   ( 2538): TextureClientShmem::LockSurface(0x44590080): IN/OUT
I/Gecko   ( 2538): mBufferProvider->LockSurface(0x452e997c)
I/Gecko   ( 2538): TextureClientShmem::LockSurface(0x44591120): IN/OUT
I/Gecko   ( 2538): AutoTextureClient::~AutoTextureClient() mTexture->Unlock() = 0x44590080
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44590080): IN
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44590080): OUT
I/Gecko   ( 2538): ContentClientRemoteBuffer::EndPaint() mTextureClient->Unlock() = 0x44591120
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44591120): IN
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44591120): OUT
I/Gecko   ( 2538): ContentClientRemoteBuffer::BeginPaint() mTextureClient = 0x44591120
I/Gecko   ( 2538): ContentClientRemoteBuffer::EndPaint() mTextureClient->Unlock() = 0x44591120
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44591120): IN
W/GraphicBufferMapper( 2538): unlock(...) failed -22 (Invalid argument)
I/Gecko   ( 2538): buffer->unlock() returned -EINVAL for 0xbeb84c20
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44591120): OUT
I/Gecko   ( 2538): ContentClientRemoteBuffer::BeginPaint() mTextureClient = 0x44591120
I/Gecko   ( 2538): ContentClientRemoteBuffer::EndPaint() mTextureClient->Unlock() = 0x44591120
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44591120): IN
W/GraphicBufferMapper( 2538): unlock(...) failed -22 (Invalid argument)
I/Gecko   ( 2538): buffer->unlock() returned -EINVAL for 0xbeb84c20
I/Gecko   ( 2538): TextureClientShmem::Unlock(0x44591120): OUT

One can see that when it all goes well (0x44591120):
We do ContentClientRemoteBuffer::BeginPaint(), then TextureClientShmem::LockSurface(0x44591120), then ContentClientRemoteBuffer::EndPaint().

When it fails, we skip the LockSurface() step.
As far as I can say, the missing LockSurface() is due to a missing call to ThebesLayerBuffer::EnsureBuffer() which gets called from ThebesLayerBuffer::GetContextForQuadrantUpdate().
(In reply to Alexandre LISSY :gerard-majax from comment #25)
> As far as I can say, the missing LockSurface() is due to a missing call to
> ThebesLayerBuffer::EnsureBuffer() which gets called from
> ThebesLayerBuffer::GetContextForQuadrantUpdate().

And in the case of the crash, ContentClientDoubleBuffered::SyncFrontBufferToBackBuffer() gets out early, in the "if (!mFrontAndBackBufferDiffer)" branch.
It seems like this change at least mitigates the issue:

diff --git a/gfx/layers/client/ContentClient.cpp b/gfx/layers/client/ContentClient.cpp
index 71be9f9..a9a5774 100644
--- a/gfx/layers/client/ContentClient.cpp
+++ b/gfx/layers/client/ContentClient.cpp
@@ -113,9 +113,11 @@ ContentClientRemoteBuffer::BeginPaint()
   // only be created by CreateBuffer.. which will deliver a locked surface!.
   if (mTextureClient) {
     SetBufferProvider(mTextureClient);
+    EnsureBuffer();
   }
   if (mTextureClientOnWhite) {
     SetBufferProviderOnWhite(mTextureClientOnWhite);
+    EnsureBufferOnWhite();
   }
 }
(In reply to Alexandre LISSY :gerard-majax from comment #27)
> It seems like this change at least mitigates the issue:
> 
> diff --git a/gfx/layers/client/ContentClient.cpp
> b/gfx/layers/client/ContentClient.cpp
> index 71be9f9..a9a5774 100644
> --- a/gfx/layers/client/ContentClient.cpp
> +++ b/gfx/layers/client/ContentClient.cpp
> @@ -113,9 +113,11 @@ ContentClientRemoteBuffer::BeginPaint()
>    // only be created by CreateBuffer.. which will deliver a locked surface!.
>    if (mTextureClient) {
>      SetBufferProvider(mTextureClient);
> +    EnsureBuffer();
>    }
>    if (mTextureClientOnWhite) {
>      SetBufferProviderOnWhite(mTextureClientOnWhite);
> +    EnsureBufferOnWhite();
>    }
>  }

It mitigates in the sense that I don't get the unlock() failure anymore, but I'm still having a black screen.
I'll try to use gfxASurface::DumpAsDataURL() to dump PNGs, as per mattwoodrow suggestion :)
Blocks: 892285
(In reply to Alexandre LISSY :gerard-majax from comment #29)
> I'll try to use gfxASurface::DumpAsDataURL() to dump PNGs, as per
> mattwoodrow suggestion :)

After applying patch from bug 892285 and doing some WriteAsPNG dumps with the following patch, I get PNGs that are not black but the screen is black:

diff --git a/gfx/layers/client/ContentClient.cpp b/gfx/layers/client/ContentClient.cpp
index b3991e3..510fb08 100644
--- a/gfx/layers/client/ContentClient.cpp
+++ b/gfx/layers/client/ContentClient.cpp
@@ -124,6 +124,7 @@ ContentClientRemoteBuffer::BeginPaint()
 void
 ContentClientRemoteBuffer::EndPaint()
 {
+  static int iter = 0;
   // XXX: We might still not have a texture client if PaintThebes
   // decided we didn't need one yet because the region to draw was empty.
   SetBufferProvider(nullptr);
@@ -131,11 +132,16 @@ ContentClientRemoteBuffer::EndPaint()
   mOldTextures.Clear();
 
   if (mDeprecatedTextureClient) {
+    char file[256];
+    sprintf(file, "/mnt/sdcard/paint/texture-%d.png", iter);
+    mDeprecatedTextureClient->LockSurface()->WriteAsPNG(file);
     mDeprecatedTextureClient->Unlock();
   }
   if (mDeprecatedTextureClientOnWhite) {
     mDeprecatedTextureClientOnWhite->Unlock();
   }
+
+  iter++;
 }
 
 void
FYI I also noticed this when I'm getting this in logcat:

I/Gecko   ( 5135): MobileConnection initialized
I/Gecko   ( 5135): ###################################### forms.js loaded
I/Gecko   ( 5135): ############################### browserElementPanning.js loaded
I/Gecko   ( 5135): ######################## BrowserElementChildPreload.js loaded
I/power   ( 5135): *** set_screen_state 1
I/GeckoDump( 5135): XXX FIXME : Got a mozContentEvent: system-message-listener-ready
F/<unknown>( 5074): stack corruption detected: aborted
I/Gonk    ( 5135): OnDisconnect
Attached file Textures being painted
This is the textures being created with the above patch. What do you think of it?
Attachment #773855 - Flags: feedback?(matt.woodrow)
It's hard to interpret the images without actually being the one actually debugging this.

Looks like a lot of frames containing only white or black, which seems unlikely to be what you actually wanted on the screen.

I think you need to identify if the brokeness that you see on screen is the same as what you see in the images (printing some sort of frame id number onto the screen as well as into the logs/image names might help here).

If it is the same, then you can eliminate the blitting of the gralloc surface -> window from the set of potential problems. If it isn't, then the reverse is true.

For putting a frame id on the screen, you could look at CompositorOGL.cpp, FPSState::DrawFPS. It currently draws the fps, but you could hijack that easily enough.
Blocks: b2g-nexuss
FYI I built Gecko master and installed it on a HTC Desire Z that has an Adreno 205 GPU, and I'm seeing those logcat -EINVAL errors. Yet, without tuning to bypass and going shmem, it's working.
Attachment #773855 - Flags: feedback?(matt.woodrow)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: