Closed
Bug 1395315
Opened 6 years ago
Closed 4 years ago
Move Canvas API drawing to the GPU Process
Categories
(Core :: Graphics, defect, P1)
Tracking
()
RESOLVED
DUPLICATE
of bug 1464032
People
(Reporter: Alex_Gaynor, Assigned: bobowen)
References
(Blocks 1 open bug)
Details
(Whiteboard: gfx-noted)
More in the "win32k syscalls in content" family: win32u!NtGdiDdDDIGetDeviceState d3d11!CDevice::GetDeviceRemovedReason+0x83 d2d1!CHwSurfaceRenderTarget::EndDrawCleanup+0x6b d2d1!DrawingContext::EndDrawCleanup+0x36 d2d1!DrawingContext::EndDraw+0xd5 d2d1!D2DDeviceContextBase<ID2D1DeviceContext5,ID2D1DeviceContext5,null_type>::EndDraw+0x10d xul!mozilla::gfx::DrawTargetD2D1::~DrawTargetD2D1+0x64 xul!mozilla::gfx::DrawTargetD2D1::`scalar xul!mozilla::detail::RefCounted<mozilla::gfx::DrawTarget,0>::Release+0x42 xul!mozilla::RefPtrTraits<mozilla::gfx::DrawTarget>::Release+0x8 xul!RefPtr<mozilla::gfx::DrawTarget>::ConstRemovingRefPtrTraits<mozilla::gfx::DrawTarget>::Release+0x8 xul!RefPtr<mozilla::gfx::DrawTarget>::assign_assuming_AddRef+0x13 xul!RefPtr<mozilla::gfx::DrawTarget>::operator=+0x13 xul!mozilla::layers::D3D11TextureData::~D3D11TextureData+0x29 xul!mozilla::layers::D3D11TextureData::`scalar xul!mozilla::layers::DestroyTextureData+0xb3 xul!mozilla::layers::TextureChild::ActorDestroy+0x57 xul!mozilla::layers::PTextureChild::DestroySubtree+0x27 xul!mozilla::layers::PTextureChild::OnMessageReceived+0x12f (There's a bunch of similar stacks, fundamentally they're all around DrawTargetD2D1)
Reporter | ||
Comment 1•6 years ago
|
||
There's also some direct3d, not sure if that's the same issue, or should be a separate one. Here's an example stack: win32u!NtGdiDdDDIAcquireKeyedMutex2 d3d11!NDXGI::CDevice::WaitForGPUSyncObject+0xa6 d3d11!NDXGI::CDevice::DXGIAcquireSync+0x84 d3d11!NDXGI::CResource::AcquireSync+0x1f xul!mozilla::layers::AutoTextureLock::AutoTextureLock+0x29 xul!mozilla::layers::SyncObjectD3D11Client::Synchronize+0x67 xul!mozilla::layers::ClientLayerManager::ForwardTransaction+0xd5 xul!mozilla::layers::ClientLayerManager::EndTransaction+0x60 xul!nsDisplayList::PaintRoot+0xaae xul!nsLayoutUtils::PaintFrame+0xc09 xul!mozilla::PresShell::Paint+0x524 xul!nsViewManager::ProcessPendingUpdatesPaint+0x168 xul!nsViewManager::ProcessPendingUpdatesForView+0x120 xul!nsViewManager::ProcessPendingUpdates+0x38 xul!nsRefreshDriver::Tick+0xb74 xul!nsRefreshDriver::DoTick+0xc1 xul!nsRefreshDriver::FinishedWaitingForTransaction+0x61
Comment 2•6 years ago
|
||
Bas, do we have the plan to remove Direct3D api calls from content process?
Flags: needinfo?(bas)
Comment 3•6 years ago
|
||
In short term, I think we don't have the plan to remove these APIs. Please correct me if I'm wrong.
Comment 4•6 years ago
|
||
No we don't.
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(bas)
Resolution: --- → WONTFIX
Comment 5•6 years ago
|
||
I guess maybe you want to keep this open to track the fact we're using D3D in the content process. I'm not sure. I'll leave it to you to close or open as you see fit. But I don't expect anything to happen here at least in the next 12 months, especially since there's also WebGL using the same things. I'm sure Jeff will happily argue while we shouldn't remove things there.
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
Comment 6•6 years ago
|
||
Fwiw, eventually WebRender may be able to provide most of this.
Updated•6 years ago
|
Priority: -- → P3
Whiteboard: gfx-noted
![]() |
||
Updated•6 years ago
|
status-firefox57:
affected → ---
Summary: Use of Direct2D drawing in content process → Remote or remove use of GDI calls by Direct2D/Direct3D drawing apis in the content process
Jim, did you really mean to suggest we should uplift this to 57?
status-firefox56:
--- → wontfix
status-firefox57:
--- → wontfix
status-firefox58:
--- → fix-optional
Flags: needinfo?(jmathies)
![]() |
||
Updated•6 years ago
|
Flags: needinfo?(jmathies)
Comment 8•5 years ago
|
||
https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Move_fix-optionals
status-firefox59:
--- → ?
![]() |
||
Comment 9•5 years ago
|
||
Lets morph this into canvas work.
Assignee: nobody → bobowencode
Priority: P3 → P1
Summary: Remote or remove use of GDI calls by Direct2D/Direct3D drawing apis in the content process → Move Canvas API drawing to the GPU Process
![]() |
||
Updated•4 years ago
|
Status: REOPENED → RESOLVED
Closed: 6 years ago → 4 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•