Closed Bug 1395315 Opened 3 years ago Closed 2 years ago

Move Canvas API drawing to the GPU Process

Categories

(Core :: Graphics, defect, P1)

Unspecified
Windows
defect

Tracking

()

RESOLVED DUPLICATE of bug 1464032
Tracking Status
firefox56 --- wontfix
firefox57 --- wontfix
firefox58 --- wontfix
firefox59 --- ?

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)
See Also: → 1395238
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
Bas, do we have the plan to remove Direct3D api calls from content process?
Flags: needinfo?(bas)
In short term, I think we don't have the plan to remove these APIs. Please correct me if I'm wrong.
No we don't.
Status: NEW → RESOLVED
Closed: 3 years ago
Flags: needinfo?(bas)
Resolution: --- → WONTFIX
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 → ---
Fwiw, eventually WebRender may be able to provide most of this.
Priority: -- → P3
Whiteboard: gfx-noted
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?
Flags: needinfo?(jmathies)
Flags: needinfo?(jmathies)
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
Status: REOPENED → RESOLVED
Closed: 3 years ago2 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: canvas-ipc
You need to log in before you can comment on or make changes to this bug.