WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
236607
[GTK][WPE] Use drm render nodes in GbmDevice and make the fd global to the process
https://bugs.webkit.org/show_bug.cgi?id=236607
Summary
[GTK][WPE] Use drm render nodes in GbmDevice and make the fd global to the pr...
Alejandro G. Castro
Reported
2022-02-14 13:14:42 PST
We just need to use render nodes from the library, we do not need the other apis of the primary device file.
Attachments
Patch
(3.36 KB, patch)
2022-02-14 13:22 PST
,
Alejandro G. Castro
no flags
Details
Formatted Diff
Diff
Patch
(3.63 KB, patch)
2022-02-15 11:21 PST
,
Alejandro G. Castro
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Alejandro G. Castro
Comment 1
2022-02-14 13:22:02 PST
Created
attachment 451937
[details]
Patch
Zan Dobersek
Comment 2
2022-02-14 23:23:38 PST
Comment on
attachment 451937
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=451937&action=review
> Source/WebCore/platform/graphics/gbm/GBMDevice.cpp:61 > + if (globalFd == -1) > + getDeviceFd();
This is now open to cross-thread race conditions.
> Source/WebCore/platform/graphics/gbm/GBMDevice.cpp:75 > -int GBMDevice::getDeviceFd() > +void GBMDevice::getDeviceFd()
This should be moved out into a standalone static function that internally uses std::call_once() to protect against separate threads racing to open the render node.
Zan Dobersek
Comment 3
2022-02-14 23:32:49 PST
Comment on
attachment 451937
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=451937&action=review
> Source/WebCore/platform/graphics/gbm/GBMDevice.cpp:81 > if (numDevices <=0)
Poor spacing.
> Source/WebCore/platform/graphics/gbm/GBMDevice.cpp:89 > + globalFd = open(device->nodes[DRM_NODE_RENDER], O_RDWR);
O_CLOEXEC should also be used.
Alejandro G. Castro
Comment 4
2022-02-15 00:31:56 PST
(In reply to Zan Dobersek from
comment #2
)
> Comment on
attachment 451937
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=451937&action=review
> > > Source/WebCore/platform/graphics/gbm/GBMDevice.cpp:61 > > + if (globalFd == -1) > > + getDeviceFd(); > > This is now open to cross-thread race conditions. >
Good point, we need to protect the first access.
> > Source/WebCore/platform/graphics/gbm/GBMDevice.cpp:75 > > -int GBMDevice::getDeviceFd() > > +void GBMDevice::getDeviceFd() > > This should be moved out into a standalone static function that internally > uses std::call_once() to protect against separate threads racing to open the > render node.
Thanks for the comments! I'll update the patch.
Alejandro G. Castro
Comment 5
2022-02-15 11:21:49 PST
Created
attachment 452063
[details]
Patch
Zan Dobersek (Reviews)
Comment 6
2022-02-15 21:57:55 PST
Comment on
attachment 452063
[details]
Patch Great, thanks.
EWS
Comment 7
2022-02-16 02:57:13 PST
Committed
r289885
(
247323@main
): <
https://commits.webkit.org/247323@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 452063
[details]
.
Radar WebKit Bug Importer
Comment 8
2022-02-16 02:58:15 PST
<
rdar://problem/89016322
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug