Bug 277796
| Summary: | [GTK][WPE][GPUProcess] Assertion failure during initialization | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Adrian Perez <aperez> |
| Component: | WebKit Process Model | Assignee: | Adrian Perez <aperez> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | alex, cgarcia, nham, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Adrian Perez
To reproduce:
% build-webkit --wpe --debug --gpu-process
% WPE_BROWSER=minibrowser run-minibrowser --wpe --debug -- \
--features=UseGPUProcessForWebGL --use-wpe-platform-api \
http://webglsamples.org/blob/blob.html
ASSERTION FAILED: isMainThread()
/app/webkit/Source/WebCore/platform/graphics/gbm/DRMDeviceNode.cpp(67) : struct gbm_device *WebCore::DRMDeviceNode::gbmDevice() const
1 0x76e17cfd3004 WebCore::DRMDeviceNode::gbmDevice() const
2 0x76e17cfd2f50 WebCore::DRMDeviceManager::mainGBMDeviceNode(WebCore::DRMDeviceManager::NodeType) const
3 0x76e17cfc98dc WebCore::GraphicsContextGLGBM::platformInitializeContext()
4 0x76e178a9977a WebCore::GraphicsContextGLANGLE::initialize()
5 0x76e17cfc8f03 WebCore::GraphicsContextGLGBM::create(WebCore::GraphicsContextGLAttributes&&)
6 0x76e174c215e2 WebKit::RemoteGraphicsContextGLGBM::platformWorkQueueInitialize(WebCore::GraphicsContextGLAttributes&&)
7 0x76e174bc8bfc WebKit::RemoteGraphicsContextGL::workQueueInitialize(WebCore::GraphicsContextGLAttributes&&)
8 0x76e174c0eee9 WebKit::RemoteGraphicsContextGL::initialize(WebCore::GraphicsContextGLAttributes&&)::$_0::operator()()
9 0x76e174c0eeb9 WTF::Detail::CallableWrapper<WebKit::RemoteGraphicsContextGL::initialize(WebCore::GraphicsContextGLAttributes&&)::$_0, void>::call()
10 0x76e174b99b57 WTF::Function<void ()>::operator()() const
11 0x76e1751f6f9e IPC::StreamConnectionWorkQueue::processStreams()
12 0x76e1752022c0 IPC::StreamConnectionWorkQueue::startProcessingThread()::$_0::operator()()
13 0x76e175202299 WTF::Detail::CallableWrapper<IPC::StreamConnectionWorkQueue::startProcessingThread()::$_0, void>::call()
14 0x76e174b99b57 WTF::Function<void ()>::operator()() const
15 0x76e178746ca9 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
16 0x76e1788dbfa5 WTF::wtfThreadEntryPoint(void*)
17 0x76e1689b8e39 start_thread
18 0x76e168a408c4 clone
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Adrian Perez
This is because we need to initialize the gbm_device for the
DRMDeviceNode being used in the main thread. There is already
a call do DRMDeviceManager::initializeMainDevice(...) inside
GPUProcess::initializeGPUProcess(), but that does not initialize
the gbm_device for the DRM render node, which then we attempt
to lazily initialize from one of the WebGL worker threads.
Adrian Perez
Pull request: https://github.com/WebKit/WebKit/pull/31886
EWS
Committed 281990@main (1428634a53f4): <https://commits.webkit.org/281990@main>
Reviewed commits have been landed. Closing PR #31886 and removing active labels.
Radar WebKit Bug Importer
<rdar://problem/133460686>