Various win32k type calls made during initialization through gfxWindowsPlatform
Categories
(Core :: Graphics, defect, P1)
Tracking
()
People
(Reporter: jimm, Assigned: jimm)
References
Details
(Whiteboard: [gfx-noted])
![]() |
Assignee | |
Updated•8 years ago
|
Updated•8 years ago
|
![]() |
Assignee | |
Comment 2•7 years ago
|
||
Lots of calls result from here we'll need to find a solution for - SystemParametersInfoW, NtUserEnumDisplayMonitors, NtUserGetDpiForCurrentProcess, NtUserQueryDisplayConfig, NtUserDisplayConfigGetDeviceInfo, NtUserEnumDisplayDevices, NtUserEnumDisplaySettings
![]() |
Assignee | |
Comment 3•7 years ago
|
||
Under xul!gfxPlatform::InitChild -
- xul!gfxWindowsPlatform::InitAcceleration
https://searchfox.org/mozilla-central/rev/3d469329a42644b41e66944d8da22d78d8c0f5ec/gfx/thebes/gfxPlatform.cpp#926
- only remainig calls are in xul!gfxWindowsPlatform::InitDWriteSupport - activity here related to clear type settings.
- xul!gfxPlatform::CreateCMSOutputProfile
https://searchfox.org/mozilla-central/rev/3d469329a42644b41e66944d8da22d78d8c0f5ec/gfx/thebes/gfxPlatform.cpp#2016
- win gdi stuff here.
Under xul!gfxPlatform::Init, which apparently gets called outside of InitChild based on the stacks -
- xul!gfxWindowsPlatform::CreateOffscreenSurface
https://searchfox.org/mozilla-central/rev/3d469329a42644b41e66944d8da22d78d8c0f5ec/gfx/thebes/gfxWindowsPlatform.cpp#667
gdi resource related activity here but it looks like this isn't needed and could be snipped out when webrender is enabled.
![]() |
Assignee | |
Comment 4•7 years ago
|
||
- xul!gfxWindowsPlatform::CreateOffscreenSurface
https://searchfox.org/mozilla-central/rev/
3d469329a42644b41e66944d8da22d78d8c0f5ec/gfx/thebes/gfxWindowsPlatform.
cpp#667gdi resource related activity here but it looks like this isn't needed and
could be snipped out when webrender is enabled.
Need to investigate the uses here. This creates a 1x1 surface used in a few metrics calculations. Some of these uses are in other process.
![]() |
Assignee | |
Updated•7 years ago
|
![]() |
Assignee | |
Updated•7 years ago
|
![]() |
Assignee | |
Comment 5•7 years ago
|
||
- xul!gfxWindowsPlatform::CreateOffscreenSurface
https://searchfox.org/mozilla-central/rev/3d469329a42644b41e66944d8da22d78d8c0f5ec/gfx/thebes/gfxWindowsPlatform.cpp#667
There's two places we consume this in content afaikt -
https://searchfox.org/mozilla-central/rev/3d469329a42644b41e66944d8da22d78d8c0f5ec/gfx/thebes/gfxFont.cpp#3331
https://searchfox.org/mozilla-central/rev/3d469329a42644b41e66944d8da22d78d8c0f5ec/layout/svg/SVGGeometryFrame.cpp#498
The svg code path of common and triggers in startup. I haven't triggered the font related code yet. I'm guessing that might come up during printing.
I switched to the a Cairo image surface and everything seems to work. Push this to try to see shows up -
https://treeherder.mozilla.org/#/jobs?repo=try&revision=05d94085668e112e2d812ba8c7405967ffe18d4a
![]() |
Assignee | |
Comment 6•7 years ago
|
||
Ah I forgot, PluginInstanceChild runs in conntet, so this change broke the plugin usage as well.
![]() |
Assignee | |
Comment 7•7 years ago
|
||
(In reply to Jim Mathies [:jimm] from comment #6)
Ah I forgot, PluginInstanceChild runs in conntet, so this change broke the
plugin usage as well.
Actually this is incorrect, the child is in the plugin process. We pass the reference surface type over to the child during ShowWindow calls, and this broke the child instance handling there.
Comment 8•5 years ago
|
||
I'm going to close this because the bugs that block it a fixed and the main stack in the description is for the creation of devices, which given the correct conditions (webrender, remote canvas, etc.) doesn't happen in the content process any more.
We might want a meta bug for the various gfx uses of win32k, but I think we should file a new bug if we do.
Description
•