Closed Bug 896889 Opened 12 years ago Closed 1 year ago

canvas layers invalidated too aggressively on focus change

Categories

(Core :: Graphics: Layers, defect)

defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: vlad, Unassigned)

Details

While trying to debug some stuff on win32, I notice that while in the debugger we're basically constantly recreating the CanvasLayer. The layer builder seems to have mInvalidateAllLayers set to true always. It's being set due to focus changes as the debugger steps over functions (see stack trace below). I can see why we'd do this in some cases, but it seems extremely aggressive for "heavy" layers like canvas layers, not to mention making debugging somewhat painful. Of course a better solution might be to stop making canvas layers so heavy (D3D10 texture creation etc. happens). xul.dll!mozilla::FrameLayerBuilder::InvalidateAllLayersForFrame(nsIFrame * aFrame) Line 3002 C++ xul.dll!PresShell::DocumentStatesChanged(nsIDocument * aDocument, nsEventStates aStateMask) Line 4008 C++ > xul.dll!nsDocument::DocumentStatesChanged(nsEventStates aStateMask) Line 4728 C++ xul.dll!NotifyDocumentTree(nsIDocument * aDocument, void * aData) Line 8253 C++ xul.dll!SubDocHashEnum(PLDHashTable * table, PLDHashEntryHdr * hdr, unsigned int number, void * arg) Line 7612 C++ xul.dll!PL_DHashTableEnumerate(PLDHashTable * table, PLDHashOperator (PLDHashTable *, PLDHashEntryHdr *, unsigned int, void *) * etor, void * arg) Line 713 C++ xul.dll!nsDocument::EnumerateSubDocuments(bool (nsIDocument *, void *) * aCallback, void * aData) Line 7624 C++ xul.dll!NotifyDocumentTree(nsIDocument * aDocument, void * aData) Line 8252 C++ xul.dll!nsGlobalWindow::SetActive(bool aActive) Line 8261 C++ xul.dll!nsGlobalWindow::ActivateOrDeactivate(bool aActivate) Line 8245 C++ xul.dll!nsFocusManager::WindowRaised(nsIDOMWindow * aWindow) Line 703 C++ xul.dll!nsWebShellWindow::WindowActivated() Line 407 C++ xul.dll!nsWindow::DispatchFocusToTopLevelWindow(bool aIsActivate) Line 4029 C++
Severity: normal → S3

Unable to reproduce

Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.