Comment #77 on issue 121780 by
bsalo...@google.com: 2d canvas drawImage
When the SGC3D is created the GPU process actually shuts down a GL channel
/ context.
The GPU process is here:
#2 0x029a5194 in gpu::gles2::GLES2DecoderImpl::Destroy (this=0x59663fb0,
have_context=true)
at ../../gpu/command_buffer/service/gles2_cmd_decoder.cc:2756
#3 0x060d3df0 in GpuCommandBufferStub::Destroy (this=0x59663920)
at ../../content/common/gpu/gpu_command_buffer_stub.cc:219
#4 0x060d3a34 in GpuCommandBufferStub::~GpuCommandBufferStub
(this=0x59663920) at ../../content/common/gpu/gpu_command_buffer_stub.cc:77
#5 0x060d395b in GpuCommandBufferStub::~GpuCommandBufferStub
(this=0x59663920) at ../../content/common/gpu/gpu_command_buffer_stub.cc:76
#6 0x060d38fe in GpuCommandBufferStub::~GpuCommandBufferStub
(this=0x59663920) at ../../content/common/gpu/gpu_command_buffer_stub.cc:76
#7 0x060c9154 in IDMap<GpuCommandBufferStub,
(IDMapOwnershipSemantics)1>::Releaser<(IDMapOwnershipSemantics)1,
0>::release_all (table=0x132716b0) at id_map.h:184
#8 0x060c9070 in IDMap<GpuCommandBufferStub,
(IDMapOwnershipSemantics)1>::~IDMap (this=0x13271658) at id_map.h:52
#9 0x060c2c4b in IDMap<GpuCommandBufferStub,
(IDMapOwnershipSemantics)1>::~IDMap (this=0x13271658) at id_map.h:47
#10 0x060c07f0 in GpuChannel::~GpuChannel (this=0x13271590)
at ../../content/common/gpu/gpu_channel.cc:245
#11 0x060c073b in GpuChannel::~GpuChannel (this=0x13271590)
at ../../content/common/gpu/gpu_channel.cc:245
#12 0x060c06de in GpuChannel::~GpuChannel (this=0x13271590)
at ../../content/common/gpu/gpu_channel.cc:245
#13 0x060cf15d in base::RefCountedThreadSafe<GpuChannel,
base::DefaultRefCountedThreadSafeTraits<GpuChannel> >::DeleteInternal
(x=0x13271590) at ref_counted.h:151
#14 0x060cf0fb in
base::DefaultRefCountedThreadSafeTraits<GpuChannel>::Destruct
(x=0x13271590) at ref_counted.h:116
#15 0x060cf0ad in base::RefCountedThreadSafe<GpuChannel,
base::DefaultRefCountedThreadSafeTraits<GpuChannel> >::Release
(this=0x13271598) at ref_counted.h:145
#16 0x060d0b85 in scoped_refptr<GpuChannel>::~scoped_refptr
(this=0x132719f8) at ref_counted.h:243
#17 0x060cd79b in scoped_refptr<GpuChannel>::~scoped_refptr
(this=0x132719f8) at ref_counted.h:241
#18 0x060cec51 in std::pair<int const, scoped_refptr<GpuChannel> >::~pair
(this=0x132719f4) at stl_pair.h:68
#19 0x060cebfb in std::pair<int const, scoped_refptr<GpuChannel> >::~pair
(this=0x132719f4) at stl_pair.h:68
#20 0x060ce9f2 in __gnu_cxx::new_allocator<std::pair<int const,
scoped_refptr<GpuChannel> > >::destroy (this=0xc008cdf0, __p=0x132719f4) at
new_allocator.h:110
#21 0x060ce917 in __gnu_cxx::hashtable<std::pair<int const,
scoped_refptr<GpuChannel> >, int, __gnu_cxx::hash<int>,
std::_Select1st<std::pair<int const, scoped_refptr<GpuChannel> > >,
std::equal_to<int>, std::allocator<scoped_refptr<GpuChannel> >
>::_M_delete_node (this=0x13270ea0, __n=0x132719f0) at hashtable.h:621
#22 0x060d14df in __gnu_cxx::hashtable<std::pair<int const,
scoped_refptr<GpuChannel> >, int, __gnu_cxx::hash<int>,
std::_Select1st<std::pair<int const, scoped_refptr<GpuChannel> > >,
std::equal_to<int>, std::allocator<scoped_refptr<GpuChannel> > >::erase
(this=0x13270ea0, __key=@0xc008cea8) at hashtable.h:897
#23 0x060ccdd9 in __gnu_cxx::hash_map<int, scoped_refptr<GpuChannel>,
__gnu_cxx::hash<int>, std::equal_to<int>,
std::allocator<scoped_refptr<GpuChannel> > >::erase (this=0x13270ea0,
__key=@0xc008cea8) at hash_map:239
#24 0x060cba7f in GpuChannelManager::RemoveChannel (this=0x13270e80,
client_id=2) at ../../content/common/gpu/gpu_channel_manager.cc:35
#25 0x060c12d5 in GpuChannel::OnCloseChannel (this=0x13271590)
at ../../content/common/gpu/gpu_channel.cc:428
#26 0x060c3098 in IPC::Message::Dispatch<GpuChannel, GpuChannel>
(msg=0x13272ef8, obj=0x13271590, sender=0x13271590, func={ptr = 101454496,
ptr = 0}) at ipc_message.h:158
#27 0x060bf2e7 in GpuChannel::OnControlMessageReceived (this=0x13271590,
msg=@0x13272ef8) at ../../content/common/gpu/gpu_channel.cc:263
#28 0x060bec81 in GpuChannel::OnMessageReceived (this=0x13271590,
message=@0x13272ef8) at ../../content/common/gpu/gpu_channel.cc:102
#29 0x0243b2b9 in IPC::ChannelProxy::Context::OnDispatchMessage
(this=0x132717f0, message=@0x13272ef8) at ../../ipc/ipc_channel_proxy.cc:249
while at the same time the renderer proc is here:
#0 0x9a8a083e in __psynch_cvwait ()
#1 0x99315e21 in _pthread_cond_wait ()
#2 0x992c642c in pthread_cond_wait$UNIX2003 ()
#3 0x0288539d in base::ConditionVariable::Wait (this=0xc0010650)
at ../../base/synchronization/condition_variable_posix.cc:37#4 0x02887d95
in base::WaitableEvent::WaitMany (raw_waitables=0xc0010958, count=2)
at ../../base/synchronization/waitable_event_posix.cc:273
#5 0x023d59a3 in IPC::SyncChannel::WaitForReply (context=0x6d327900,
pump_messages_event=0x0) at ../../ipc/ipc_sync_channel.cc:470
#6 0x023d58b8 in IPC::SyncChannel::SendWithTimeout (this=0x6d3276f0,
message=0x6b473490, timeout_ms=-1) at ../../ipc/ipc_sync_channel.cc:454
#7 0x023d54e2 in IPC::SyncChannel::Send (this=0x6d3276f0,
message=0x6b473490) at ../../ipc/ipc_sync_channel.cc:417
#8 0x05e0da22 in ChildThread::Send (this=0x6d327784, msg=0x6b473490)
at ../../content/common/child_thread.cc:101
#9 0x05cb10f6 in RenderThreadImpl::Send (this=0x6d327780, msg=0x6b473490)
at ../../content/renderer/render_thread_impl.cc:351
#10 0x05cb5799 in RenderThreadImpl::EstablishGpuChannelSync
(this=0x6d327780,
cause_for_gpu_launch=content::CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE)
at ../../content/renderer/render_thread_impl.cc:920
#11 0x05cb5b39 in non-virtual thunk to
RenderThreadImpl::EstablishGpuChannelSync(content::CauseForGpuLaunch) ()
at ../../content/renderer/render_thread_impl.cc:960
#12 0x06031890 in WebGraphicsContext3DCommandBufferImpl::Initialize
(this=0x132e0ca0, attributes=@0xc0011170, bind_generates_resources=false,
cause=content::CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE)
at ../../content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc:184
#13 0x06124683 in
content::WebKitPlatformSupportImpl::createOffscreenGraphicsContext3D
(this=0x132489e0, attributes=@0xc0011170)
at ../../content/common/webkitplatformsupport_impl.cc:77
#14 0x024d6d1a in WebCore::GraphicsContext3D::create (attrs=
{alpha = true, depth = false, stencil = true, antialias = false,
premultipliedAlpha = true, preserveDrawingBuffer = false, noExtensions =
false, shareResources = true, preferDiscreteGPU = true},
renderStyle=WebCore::GraphicsContext3D::RenderOffscreen)
at ../../third_party/WebKit/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:1002
#15 0x01db0b89 in WebCore::SharedGraphicsContext3DImpl::createContext
(this=0x132dc1e0)
at ../../third_party/WebKit/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:66
#16 0x01db0a0b in WebCore::SharedGraphicsContext3DImpl::getOrCreateContext
(this=0x132dc1e0)
at ../../third_party/WebKit/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:45
#17 0x01db0547 in WebCore::SharedGraphicsContext3D::get ()
at ../../third_party/WebKit/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:76
#18 0x01dfac6d in WebCore::createAcceleratedCanvas (size=@0x1328529c,
data=0x13282d50, deferralMode=WebCore::NonDeferred)
at ../../third_party/WebKit/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:99
#19 0x01dfa947 in WebCore::ImageBuffer::ImageBuffer (this=0x13282d50,
size=@0x1328529c, renderingMode=WebCore::Accelerated,
deferralMode=WebCore::NonDeferred, success=@0xc0011483)
at ../../third_party/WebKit/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:154