Various win32k type calls made during initialization through gfxWindowsPlatform
Categories
(Core :: Graphics, defect, P1)
Tracking
()
People
(Reporter: jimm, Assigned: jimm)
References
(Blocks 1 open bug)
Details
(Whiteboard: [gfx-noted])
00 00000069`2d3fac18 00007ffb`82aa6e2a win32u!NtUserDisplayConfigGetDeviceInfo 01 00000069`2d3fac20 00007ffb`7e36d37c USER32!DisplayConfigGetDeviceInfo+0xa 02 00000069`2d3fac50 00007ffb`7e36c32e dxgi!GetAdapterAndSourceInfo+0x34 03 00000069`2d3fac80 00007ffb`7e36f75d dxgi!SAdapterDesc::SAdapterDesc+0x20a 04 00000069`2d3fb640 00007ffb`7e36f4ef dxgi!CDXGIFactory::SampleAdaptersWorker+0x1b9 05 00000069`2d3fb9c0 00007ffb`7e36fa13 dxgi!CDXGIFactory::SampleAdapters+0xb7 06 00000069`2d3fba30 00007ffb`7e368136 dxgi!CDXGIFactory::Initialize+0x87 07 00000069`2d3fbaa0 00007ffb`7e367ce2 dxgi!CreateDXGIFactoryImpl+0x72 08 00000069`2d3fbad0 00007ffb`7e367c71 dxgi!CreateDXGIFactoryActualImpl1+0x32 09 00000069`2d3fbb10 00007ffb`2d8f79b7 dxgi!CreateDXGIFactory1+0x61 0a 00000069`2d3fbb90 00007ffb`2d8e8865 xul!mozilla::gfx::DeviceManagerDx::GetDXGIAdapter+0x73 [c:\mozilla-source\mozilla-central\gfx\thebes\devicemanagerdx.cpp @ 226] 0b 00000069`2d3fbd20 00007ffb`2d8e8de8 xul!mozilla::gfx::DeviceManagerDx::CreateContentDevice+0x31 [c:\mozilla-source\mozilla-central\gfx\thebes\devicemanagerdx.cpp @ 531] 0c 00000069`2d3fbea0 00007ffb`2d8d3353 xul!mozilla::gfx::DeviceManagerDx::CreateContentDevices+0x34 [c:\mozilla-source\mozilla-central\gfx\thebes\devicemanagerdx.cpp @ 201] 0d 00000069`2d3fbed0 00007ffb`2d8d3925 xul!gfxWindowsPlatform::InitializeD3D11+0x3f [c:\mozilla-source\mozilla-central\gfx\thebes\gfxwindowsplatform.cpp @ 1474] 0e 00000069`2d3fc010 00007ffb`2d8d28c3 xul!gfxWindowsPlatform::InitializeDevices+0xb5 [c:\mozilla-source\mozilla-central\gfx\thebes\gfxwindowsplatform.cpp @ 1440] 0f 00000069`2d3fc080 00007ffb`2d8a3404 xul!gfxWindowsPlatform::InitAcceleration+0xa7 [c:\mozilla-source\mozilla-central\gfx\thebes\gfxwindowsplatform.cpp @ 358] 10 00000069`2d3fc0b0 00007ffb`2d8a489c xul!gfxPlatform::Init+0x6a8 [c:\mozilla-source\mozilla-central\gfx\thebes\gfxplatform.cpp @ 749] 11 00000069`2d3fc340 00007ffb`2f6327b4 xul!gfxPlatform::InitChild+0x28 [c:\mozilla-source\mozilla-central\gfx\thebes\gfxplatform.cpp @ 566]
Assignee | ||
Updated•7 years ago
|
Updated•7 years ago
|
Comment hidden (spam) |
Assignee | ||
Comment 2•5 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•5 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•5 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•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 5•5 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•5 years ago
|
||
Ah I forgot, PluginInstanceChild runs in conntet, so this change broke the plugin usage as well.
Assignee | ||
Comment 7•5 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•3 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
•