Closed Bug 909000 Opened 12 years ago Closed 12 years ago

Crashes with gfx.content.azure.enabled set to false

Categories

(Core :: Graphics, defect)

26 Branch
x86_64
Windows 7
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla26
Tracking Status
firefox25 --- unaffected
firefox26 + verified

People

(Reporter: jmjjeffery, Assigned: mattwoodrow)

References

Details

(Keywords: regression)

Crash Data

Attachments

(2 files)

Starting with build from cset: https://hg.mozilla.org/mozilla-central/rev/fa56d4c9e630 The browser will crash when opening tabs, clicking links and sometimes during startup if you have the following pref set to 'false' gfx.content.azure.enabled set to false Setting the pref back to the default of 'true' there are no crashes. Regression range: good: http://hg.mozilla.org/mozilla-central/rev/fb2318875cd4 bad: https://hg.mozilla.org/mozilla-central/rev/fa56d4c9e630 I noted that these two patches landed in that range that affect 'Azure' from what I can tell. https://bugzilla.mozilla.org/show_bug.cgi?id=907926 <-Enable Azure content for windows BasicLayers https://bugzilla.mozilla.org/show_bug.cgi?id=907011 <- Enable Azure content for D3D9 This presents a problem for those that affected by bug https://bugzilla.mozilla.org/show_bug.cgi?id=812695 The 'work-around' for that bug for users that have AMD hardware/graphics is to set the pref to 'false'. Now that is not possible leaving those users with bad rendering. Need help finding which patch in range regressed the turning off of the pref. Link to crash-report: https://crash-stats.mozilla.com/report/index/531007fd-a01c-4906-806c-6cc042130824 Tested with Nightly build from cset: http://hg.mozilla.org/mozilla-central/rev/17143a9a0d83 win7 x64 Graphics info: Graphics -------- Adapter Description: ATI Radeon HD 3200 Graphics Adapter Drivers: aticfx64 aticfx64 aticfx32 aticfx32 atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64 Adapter RAM: 256 ClearType Parameters: DISPLAY1 [ Gamma: 2200 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 300 ] DISPLAY4 [ Gamma: 2200 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 ] Device ID: 0x9610 Direct2D Enabled: true DirectWrite Enabled: true (6.2.9200.16571) Driver Date: 7-28-2011 Driver Version: 8.881.0.0 GPU #2 Active: false GPU Accelerated Windows: 1/1 Direct3D 10 Vendor ID: 0x1002 WebGL Renderer: Google Inc. -- ANGLE (ATI Radeon HD 3200 Graphics Direct3D9Ex vs_3_0 ps_3_0) windowLayerManagerRemote: false AzureCanvasBackend: direct2d AzureContentBackend: direct2d AzureFallbackCanvasBackend: cairo AzureSkiaAccelerated: 0
Severity: normal → critical
The crash happens on Aero/AeroBasic, but not on Classic. Steps To Reproduce: 1. gfx.content.azure.enabled set to false with HWA on 2. Restart 3. Mouse move over any toolbutton in order to popup tooltip Ex. mouse over StarUI mouse over bookmarks item Actual Results: Crash There are 2 regressions: #1 No tooltips pop up #2 Crash #1 Regresson window(m-i) Good http://hg.mozilla.org/integration/mozilla-inbound/rev/3ab03b70a92c Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 ID:20130822221923 No tooltip http://hg.mozilla.org/integration/mozilla-inbound/rev/ed0b6a11532d Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 ID:20130822233723 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=3ab03b70a92c&tochange=ed0b6a11532d #2 Regresson window(m-i) No tooltip http://hg.mozilla.org/integration/mozilla-inbound/rev/1ad8a6674785 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 ID:20130823004123 Crash: http://hg.mozilla.org/integration/mozilla-inbound/rev/d46d0f4f4a8a Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 ID:20130823011323 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=1ad8a6674785&tochange=d46d0f4f4a8a Regressed by: Bug 907926
Blocks: 907926
Crash Signature: [@ mozilla::layers::RotatedBuffer::DrawBufferQuadrant(mozilla::gfx::DrawTarget*, mozilla::layers::RotatedBuffer::XSide, mozilla::layers::RotatedBuffer::YSide, mozilla::layers::RotatedBuffer::ContextSource, float, mozilla::gfx::SourceSurface*, mozilla::gfx…
Version: Trunk → 26 Branch
Crashing Thread Frame Module Signature Source 0 xul.dll mozilla::layers::RotatedBuffer::DrawBufferQuadrant(mozilla::gfx::DrawTarget *,mozilla::layers::RotatedBuffer::XSide,mozilla::layers::RotatedBuffer::YSide,mozilla::layers::RotatedBuffer::ContextSource,float,mozilla::gfx::SourceSurface *,mozilla::gfx::Matrix const *) gfx/layers/ThebesLayerBuffer.cpp 1 xul.dll mozilla::layers::RotatedBuffer::DrawBufferWithRotation(mozilla::gfx::DrawTarget *,mozilla::layers::RotatedBuffer::ContextSource,float,mozilla::gfx::SourceSurface *,mozilla::gfx::Matrix const *) gfx/layers/ThebesLayerBuffer.cpp 2 xul.dll mozilla::layers::ThebesLayerBuffer::DrawTo(mozilla::layers::ThebesLayer *,gfxContext *,float,gfxASurface *,gfxMatrix const *) gfx/layers/ThebesLayerBuffer.cpp 3 xul.dll mozilla::layers::BasicThebesLayer::PaintThebes(gfxContext *,mozilla::layers::Layer *,void (*)(mozilla::layers::ThebesLayer *,gfxContext *,nsIntRegion const &,nsIntRegion const &,void *),void *,mozilla::layers::ReadbackProcessor *) gfx/layers/basic/BasicThebesLayer.cpp 4 xul.dll mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext &,gfxContext *) gfx/layers/basic/BasicLayerManager.cpp 5 xul.dll mozilla::layers::BasicLayerManager::PaintLayer(gfxContext *,mozilla::layers::Layer *,void (*)(mozilla::layers::ThebesLayer *,gfxContext *,nsIntRegion const &,nsIntRegion const &,void *),void *,mozilla::layers::ReadbackProcessor *) gfx/layers/basic/BasicLayerManager.cpp 6 xul.dll mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext &,gfxContext *) gfx/layers/basic/BasicLayerManager.cpp 7 xul.dll mozilla::layers::BasicLayerManager::PaintLayer(gfxContext *,mozilla::layers::Layer *,void (*)(mozilla::layers::ThebesLayer *,gfxContext *,nsIntRegion const &,nsIntRegion const &,void *),void *,mozilla::layers::ReadbackProcessor *) gfx/layers/basic/BasicLayerManager.cpp 8 xul.dll mozilla::layers::BasicLayerManager::EndTransactionInternal(void (*)(mozilla::layers::ThebesLayer *,gfxContext *,nsIntRegion const &,nsIntRegion const &,void *),void *,mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/basic/BasicLayerManager.cpp 9 xul.dll mozilla::layers::BasicLayerManager::EndEmptyTransaction(mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/basic/BasicLayerManager.cpp 10 xul.dll PresShell::Paint(nsView *,nsRegion const &,unsigned int) layout/base/nsPresShell.cpp 11 xul.dll nsViewManager::Refresh(nsView *,nsIntRegion const &) view/src/nsViewManager.cpp 12 xul.dll nsViewManager::PaintWindow(nsIWidget *,nsIntRegion) view/src/nsViewManager.cpp 13 xul.dll nsView::PaintWindow(nsIWidget *,nsIntRegion) view/src/nsView.cpp 14 xul.dll nsWindow::OnPaint(HDC__ *,unsigned int) widget/windows/nsWindowGfx.cpp 15 xul.dll nsWindow::ProcessMessage(unsigned int,unsigned int &,long &,long *) widget/windows/nsWindow.cpp 16 xul.dll nsCOMPtr_base::assign_from_qi(nsQueryInterface,nsID const &) obj-firefox/xpcom/build/nsCOMPtr.cpp 17 xul.dll nsWindow::WindowProcInternal(HWND__ *,unsigned int,unsigned int,long) widget/windows/nsWindow.cpp 18 xul.dll CallWindowProcCrashProtected xpcom/base/nsCrashOnException.cpp 19 xul.dll xul.dll@0xf8d70 20 user32.dll InternalCallWinProc 21 user32.dll GetRealWindowOwner 22 user32.dll DispatchClientMessage 23 user32.dll __fnDWORD 24 ntdll.dll KiUserCallbackDispatcher 25 ntdll.dll KiUserApcDispatcher 26 xul.dll nsWindow::Show(bool) widget/windows/nsWindow.cpp 27 xul.dll nsXULWindow::SetVisibility(bool) xpfe/appshell/src/nsXULWindow.cpp 28 xul.dll nsXULWindow::OnChromeLoaded() xpfe/appshell/src/nsXULWindow.cpp 29 xul.dll nsWebShellWindow::OnStateChange(nsIWebProgress *,nsIRequest *,unsigned int,tag_nsresult) xpfe/appshell/src/nsWebShellWindow.cpp 30 xul.dll nsDocLoader::DoFireOnStateChange(nsIWebProgress * const,nsIRequest * const,int &,tag_nsresult) uriloader/base/nsDocLoader.cpp 31 xul.dll nsDocLoader::doStopDocumentLoad(nsIRequest *,tag_nsresult) uriloader/base/nsDocLoader.cpp 32 xul.dll nsDocLoader::DocLoaderIsEmpty(bool) uriloader/base/nsDocLoader.cpp 33 xul.dll nsDocLoader::OnStopRequest(nsIRequest *,nsISupports *,tag_nsresult) uriloader/base/nsDocLoader.cpp 34 xul.dll nsLoadGroup::RemoveRequest(nsIRequest *,nsISupports *,tag_nsresult) netwerk/base/src/nsLoadGroup.cpp 35 xul.dll nsDocument::DoUnblockOnload() content/base/src/nsDocument.cpp 36 xul.dll nsUnblockOnloadEvent::Run() content/base/src/nsDocument.cpp 37 xul.dll nsThread::ProcessNextEvent(bool,bool *) xpcom/threads/nsThread.cpp 38 xul.dll NS_ProcessNextEvent(nsIThread *,bool) obj-firefox/xpcom/build/nsThreadUtils.cpp 39 xul.dll nsXULWindow::ShowModal() xpfe/appshell/src/nsXULWindow.cpp 40 xul.dll nsContentTreeOwner::ShowAsModal() xpfe/appshell/src/nsContentTreeOwner.cpp 41 xul.dll nsWindowWatcher::OpenWindowInternal(nsIDOMWindow *,char const *,char const *,char const *,bool,bool,bool,nsIArray *,nsIDOMWindow * *) embedding/components/windowwatcher/src/nsWindowWatcher.cpp 42 xul.dll nsWindowWatcher::OpenWindow(nsIDOMWindow *,char const *,char const *,char const *,nsISupports *,nsIDOMWindow * *) embedding/components/windowwatcher/src/nsWindowWatcher.cpp 43 xul.dll NS_InvokeByIndex xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp 44 xul.dll XPC_WN_CallMethod(JSContext *,unsigned int,JS::Value *) js/xpconnect/src/XPCWrappedNativeJSOps.cpp 45 mozjs.dll js::Invoke(JSContext *,JS::CallArgs,js::MaybeConstruct) js/src/vm/Interpreter.cpp 46 mozjs.dll Interpret js/src/vm/Interpreter.cpp 47 mozjs.dll js::Invoke(JSContext *,JS::Value const &,JS::Value const &,unsigned int,JS::Value *,JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 48 mozjs.dll js::CrossCompartmentWrapper::call(JSContext *,JS::Handle<JSObject *>,JS::CallArgs const &) js/src/jswrapper.cpp 49 mozjs.dll proxy_Call js/src/jsproxy.cpp 50 mozjs.dll js::Invoke(JSContext *,JS::CallArgs,js::MaybeConstruct) js/src/vm/Interpreter.cpp 51 mozjs.dll Interpret js/src/vm/Interpreter.cpp 52 mozjs.dll js::Invoke(JSContext *,JS::Value const &,JS::Value const &,unsigned int,JS::Value *,JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 53 mozjs.dll JS_CallFunctionValue(JSContext *,JSObject *,JS::Value,unsigned int,JS::Value *,JS::Value *) js/src/jsapi.cpp 54 xul.dll nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS *,unsigned short,XPTMethodDescriptor const *,nsXPTCMiniVariant *) js/xpconnect/src/XPCWrappedJSClass.cpp 55 mfreadwrite.dll CMFTWrapperAsync::ProcessEvent(unsigned long,IMFMediaEvent *) 56 xul.dll nsXPCWrappedJS::CallMethod(unsigned short,XPTMethodDescriptor const *,nsXPTCMiniVariant *) js/xpconnect/src/XPCWrappedJS.cpp 57 mozglue.dll arena_dalloc_small memory/mozjemalloc/jemalloc.c 58 mozglue.dll je_free memory/mozjemalloc/jemalloc.c 59 xul.dll nsTArray_base<nsTArrayInfallibleAllocator,nsTArray_CopyElements<ObserverRef> >::ShiftData(unsigned int,unsigned int,unsigned int,unsigned int,unsigned int) obj-firefox/dist/include/nsTArray-inl.h 60 xul.dll nsObserverList::FillObserverArray(nsCOMArray<nsIObserver> &) xpcom/ds/nsObserverList.cpp 61 xul.dll NS_InvokeByIndex
Looks like SupportsAzureContentForType ignores the prefs and just uses the compiled bitmask.
Attachment #795196 - Flags: review?(ncameron)
Comment on attachment 795196 [details] [diff] [review] Correctly check if azure is enabled Review of attachment 795196 [details] [diff] [review]: ----------------------------------------------------------------- We should change SupportsAzureContentForType so that it does the right thing rather than modifying the callers. The right thing is probably keeping a record of backends in the pref string and checking against that as well as the mask.
Attachment #795196 - Flags: review?(ncameron)
Hope this doesn't break the existing caller of SupportsAzureContentForType!
Attachment #795203 - Flags: review?(ncameron)
Comment on attachment 795203 [details] [diff] [review] Correctly check if azure is enabled v2 Review of attachment 795203 [details] [diff] [review]: ----------------------------------------------------------------- I think if it does break the callers, then it should break the callers and we need to fix them. r=me with the formatting nits fixed. ::: gfx/thebes/gfxPlatform.h @@ +636,5 @@ > /** > * returns the first backend named in the pref gfx.content.azure.backend > * which is a component of aBackendBitmask, a bitmask of backend types > */ > + static mozilla::gfx::BackendType GetContentBackendPref(uint32_t &aBackendBitmask); nit uint32_t& here and elsewhere
Attachment #795203 - Flags: review?(ncameron) → review+
Flags: in-testsuite?
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Assignee: nobody → matt.woodrow
New nightlies triggered to pick up this fix.
I had reproduced the initial issue on Nightly 26 (2013-08-24) https://crash-stats.mozilla.com/report/index/71afc9b4-1c3c-47ac-954e-b7f042131022 I can confirm the fix is verified on Latest Aurora 26 (20131020004007) on Windows 7 x64, Mac OSX 8.4 and Ubuntu 13.04 x86.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: